问题标签 [pic]

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.

0 投票
2 回答
2523 浏览

pic - PICkit2 带按钮的闪烁 LED

我正在使用带有 16f690 芯片的 PICkit2 低引脚数演示板。我已经能够编写简单的代码来打开和关闭 LED,但是在尝试使用按钮来更改 LED 的状态时,无法这样做。我的代码如下,以及设备原理图的链接。

演示板用户指南

0 投票
3 回答
5137 浏览

assembly - clearing memory locations with pic microcontroller

I am a beginner with asm and embedded systems. I was looking at code which is meant to clear memory locations using the "indirection" register (or something like that - not sure). The code goes like:

I don't get the incf FSR, F part. The instruction incf takes two operands; it increments value in the first location, and stores the result in the 2nd. In this case F will have the incremented value, then why do we do a test on FSR?

0 投票
2 回答
3014 浏览

c - 我可以在 Microchip C18 中创建一个同时接受 ram 和 rom 指针的函数吗?

当我声明一个接受的函数const char*并传递一个字符串文字时,我得到一个

警告:[2066] 分配中的类型限定符不匹配

因为字符串文字是rom const char*. 反过来也是一样。

虽然 PIC 是哈佛架构,但内存被映射到一个连续的地址空间,所以理论上应该可以以相同的方式同时支持 ram 和 rom 指针。可能我必须使用 rom 指针,因为它们是 24 位的,而 ram 指针是 16 位的。

但是,仅将 aconst char*转换为 aconst rom char*是行不通的。

0 投票
1 回答
190 浏览

arm - 微控制器的软调试器

是否有任何用于微控制器(比如 PIC24)的软调试器,例如 GDB。我的平台不运行 Linux,所以不能使用 GDB。我需要的不仅仅是一个调试器来记录数据,就像 CCP 所做的那样。

我有一个 PICKit2,但它不支持运行时监视窗口更新,仅在断点上更新我的监视变量。

有没有人尝试使用 MODBUS RTU 进行运行时数据记录?

0 投票
1 回答
416 浏览

button - pic18f4520 与 picos18- 中断问题

我正在编程 PIC18F4520,并使用 picos18 进行多任务处理。我需要用 PORTB 控制按钮。我正在使用中断,但我遇到了问题。

突然间(当我没有按下按钮时),我的中断处理程序执行了。我的图片处理了许多中断。

可能是什么原因??

0 投票
2 回答
1386 浏览

c - 为什么 uint16_t 在这里有所作为?

在 Linux 上使用 gcc 编译代码时,r7.
当 Microchip C18 编译相同的代码时,r0.
为什么?

如果我将其更改为:

rC18也变成7了。

C18手册中有关于整数提升的部分,但我认为它与我的问题无关。无论如何,这里是:

ISO 要求以 int 或更高的精度执行所有算术运算。默认情况下,MPLAB C18 将以最大操作数的大小执行算术运算,即使两个操作数都小于 int。ISO 强制行为可以通过 -Oi 命令行选项设置。

0 投票
1 回答
829 浏览

inline-assembly - 语法错误图片 18:RCNT EQU 0x20 和 MYREG EQU 0x21

我将 pic 18F4550 与 microchip v8.63 的 C 编译器一起使用。我正在使用“Pic 微控制器和嵌入式系统使用汇编和 c for pic18”一书中的以下代码。

在以下行代码中,我收到一个语法错误:RCNT EQU 0x20 和 MYREG EQU 0x21。

0 投票
2 回答
2073 浏览

c - Doug Lea 分配器的奇怪 malloc 行为

我有一个非常小的系统,只有 16kb 的堆,没有 mmap,没有交换。我正在使用 Doug Lea 分配器ftp://g.oswego.edu/pub/misc/malloc-2.8.5.c的最新版本 2.8.5

更新我做了一个更小的测试用例,更容易理解,看看我的问题是什么

如果我分配 8kb,释放它,分配 12kb,它正在工作(i!= NULL),我可以分配 12kb:

显示:

如果我首先分配了一个太大的缓冲区(30kb),然后我分配了 8kb,释放它,分配 12kb,它正在工作(i == NULL),我无法分配 12kb:

显示:

每时每刻,在分配另一个块之前只进行一次分配和释放,因此内存永远不会碎片化。

0 投票
1 回答
686 浏览

audio - 将 .wav 文件中的数据放入 pic18F4550 的闪存中

我是硬件编程的新手:我使用 pic18F4550 和 microchip 8.63 版的 C 编译器。我的问题是:是否有人将 .wav 文件(二进制数据)写入 pic18F4550 的闪存的示例代码?

0 投票
2 回答
411 浏览

c - 其他声音,然后是原始 .wav 文件

我正在使用来自 microchip v8.63 的 pic18F4550:我为 picdem 使用了 C 程序语言:我们创建了以下程序:我们检索转换为 8 位 8000Hz 的 .wav 文件的二进制数据(声音是:有人说是“ red"),我们将数据写入 picdem 的 'rom'。每个值都将写入端口 => 有一个连接到的盒子。

问题:我不能在这里听到原始声音(有人说:“红色”),而不是听到一个响亮的其他声音(没有噪音或爆裂声),而是一个响亮的其他声音。

那是代码: