问题标签 [microchip]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - Pic18 micro最好的c编译器是什么
我们正在开始一个基于微芯片 PIC18F252 的新项目。最好使用的“c”编译器是什么?
embedded - 如何在 C 中重置 PIC18?
使用 C 代码和 HiTech Pic18 C 编译器重置 PIC18 的最佳方法是什么?
编辑:
我正在使用
但必须有更好的方法
memory - 如何在 MPLAB 中增加内存块的大小?
Microchip PIC MPLAB (MCC18) 编译器将其内存分段为 256 个块 (0x100)。
如何创建大于 256 字节的数组?
为了达到 256,我需要用一个单独的段#pragma
所以我可以强制 MCC18 分配更大的缓冲区吗?还是结合两个内存段?
embedded - 我可以在不重置电路板的情况下重置 Microchip 的 TCP/IP 堆栈吗?
我在 8 位微控制器上使用 Microchip 的免费 TCP/IP(4.55 版)堆栈。
我正在尝试在不使用 asm("RESET") 进行全板重置的情况下重置堆栈。
关于如何重新启动此堆栈的任何想法。
更新
我通过以下步骤重置堆栈
- 将复位引脚切换到 Microchip 以太网芯片上
- 调用 StackInit();
- 手动重置 UDP 通告状态机
这似乎从我遇到的致命 SPI 错误中恢复过来。
embedded - 微芯片链接器问题
当我尝试在 MPLAB 中构建我的项目时,我收到了此构建错误消息..
我检查了链接器库的路径是否正确。我怀疑它与我的源代码有关......非常感谢任何帮助。
这是我的源代码.. http://cl1p.net/mplabc18
embedded - 使用定时器计时会中断嵌入式微控制器
这个问题是关于在没有操作系统的情况下对小型微控制器进行编程。特别是,我目前对图片感兴趣,但问题很笼统。
我已经多次看到以下模式来保持时间:
定时器中断代码(比如定时器每秒触发一次):
主线代码(非中断):
主线代码可能会重复,将计数器设置为各种值(不仅仅是秒)等等。
在我看来,当sec_counter
主线代码中的分配不是原子的时,这里有一个竞争条件。例如,在 PIC18 中,分配被转换为 4 个 ASM 语句(同时加载每个字节并在此之前从存储区中选择正确的字节)。如果中断代码出现在中间,则最终值可能已损坏。
奇怪的是,如果分配的值小于 256,则分配是原子的,所以没有问题。
我对这个问题是否正确?您使用什么模式来正确实现此类行为?我看到几个选项:
- 在每次分配给 sec_counter 之前禁用中断并在之后启用 - 这并不漂亮
- 不要使用中断,而是使用一个单独的计时器,该计时器启动然后轮询。这是干净的,但会用完整个计时器(在前一种情况下,1 秒触发计时器也可以用于其他目的)。
还有其他想法吗?
delphi - 如何使用 Delphi 2009 调用 Microchip PIC USB DLL
这不是一个问题,只是一个声明,以帮助任何可能花费数小时让 Microchip PIC USB DLL 与 Unicode 正常工作的人。
它需要几个字符串,虽然这些很简单PAnsiChar
,但获得 DLL 调用约定的正确组合却花了我很多时间。网上有很多人使用带有此 DLL 的 Delphi(非 Unicode)并逃脱谋杀。
enums - C18 编译器 typedef 枚举数据大小
我正在尝试移植代码以使用 Microchip 的 C18 编译器为 PIC 微控制器进行编译。该代码包括分配了大值(> 8 位)的枚举。它们工作不正常,说明例如 0x02 与 0x2002 相同。
如何强制将枚举值引用为 16 位值?
c - 将 ASM 转换为 C(不是逆向工程)
我用谷歌搜索,我看到大量轻率的回答基本上是在嘲笑提问者提出这样的问题。
Microchip免费提供一些源代码(我不想在这里发布它以防万一。基本上,谷歌AN937,点击第一个链接,有一个“源代码”链接及其压缩文件)。它在 ASM 中,当我看到它时,我开始对视。我想将其转换为类似于 ac 类型语言的东西,以便我可以跟进。因为诸如以下的行:
可能很简单,但它们对我来说毫无意义。
那里可能有一些自动 ASM 到 C 的翻译器,但我能找到的只是人们说这是不可能的。坦率地说,它不可能是不可能的。两种语言都有结构,而且这种结构肯定可以翻译。
c++ - 从 C++ 程序访问 ASM 文件中的函数?
在这里,我询问了将 ASM 文件翻译成 C 的问题,从回复来看,似乎没有合理的方法可以做到这一点。美好的。因此,其中一个回复建议我只是按原样使用这些功能并完成它。听起来不错。
但是怎么做?
天哪,我已经尝试了我能想到的一切!我使用的是 Microchip 品牌的 MCU (PIC18F4480) 和 Microchip 品牌的 IDE (MPLAB IDE),ASM 文件是 Microchip 创作的……所以你会认为我会找到一些使用它们的方法!到目前为止,一点运气都没有。
我对 ASM(汇编)一无所知。我用 C++ 编写代码,坦率地说,这不会改变。必须有一种方法可以访问 Microchip ASM 文件中的函数,而无需用新语言重写我的所有代码。
如果有人想看一看,ASM 文件和应用说明在这里。