问题标签 [pic18]

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 投票
1 回答
1225 浏览

embedded - PIC18f45k22 64Mhz 时钟的串行帧错误

我正在尝试通过 pic18f45k22 eusart 外围设备传输串行。当时钟以 16Mhz 运行时,消息完全按预期发送,但如果我将 PLL 设置为打开(以便振荡器以 64Mhz 运行),则会出现帧错误。

我已经更改了 SPBRG 寄存器以考虑新的时钟频率,并尝试将波特率发生器更改为 16 位和 8 位模式,但没有任何乐趣。

当前代码:

提前致谢, Huggzorx

0 投票
1 回答
551 浏览

infrared - 如何在PIC​​18F中接收IR信号

我需要接收来自红外发射器 LED 的信号。我不确定如何对微控制器进行编程。我正在寻找一些概念,如何做到这一点。我是否必须使用 A/D 转换?如何同步发射器和接收器?未来的数据会有什么结构?假设我在编写发射器时假设 0(二进制 0)为 600us,1(二进制 1)为 1200us。PIC18F单片机接收红外发射的常用步骤是什么?

0 投票
1 回答
526 浏览

c - 跨端口拆分时的 PIC18 读/写数据

由于设计限制,我有一个内存控制器的地址线,它分布在 PIC 18F4550 的 3 个不同端口上。映射:

我想将其作为单个变量 ADDRESS 访问,并尝试使用联合来执行此操作,但只需通过以下方式获得“语法错误”:

我该怎么做呢?

0 投票
2 回答
1150 浏览

c - 图片 18F4550:局部变量问题,

我将 pic18F4550 与 microchip v8.63 和 C 18 编译器一起使用。我正在使用一个 LDR 来检索 LED 的值(不在我的 picdem 板上)(红色、绿色和蓝色),这些值在每次转换后都存储在一个变量中。之后,当我按下按钮 S2 时,我进入了 ISR 方法:这部分有效。

但是现在:我尝试比较 if 中的变量 red、green 和 blue:但我认为这不会发生,他只是去我的“else”(我的 picdem 板上的 LED RB3 烧毁)。

0 投票
1 回答
686 浏览

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

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

0 投票
2 回答
2483 浏览

microcontroller - Microchip C18 上的正常中断延迟和上下文保存时间是多少?

我正在使用 Microchip C18 编译器,在发生中断时,我在 ISR 代码开始运行之前经历了相当长的延迟。

作为一个实验,这是我的主要功能:

作为中断处理程序,我使用的是从一些示例中复制的代码(我不知道为什么要这样做):

我通过 SPI 接收字节,在收到一个字节后不久,主循环停止。然后在 ISR 代码开始运行之前有 16.5 µs 的延迟。那是165个指令周期!

中断时间 放大图片

我知道有一些与中断相关的上下文保存,而且低优先级中断更糟。我禁用了IPEN,我只使用了高优先级向量。165条指令是上下文保存的正常持续时间吗?

0 投票
5 回答
2661 浏览

c - 在 Microchip C18 中,为什么插入 NOP 会导致更大的代码?

我在 ISR 中有一些代码。代码是为了完整性而给出的,问题只是关于注释掉的 __asm_ 块。

如果没有 __asm_ 块,它会被编译成 82 条指令。使用 __asm_ 块,结果是 107 条指令长。为什么差别很大?

这是C代码:

没有 NOP:

使用 NOP:

这是部分差异的屏幕截图(点击放大): 差异

0 投票
1 回答
1670 浏览

assembly - 汇编指令到机器码

我正在尝试转换MOVFF 0x10, 0x15为机器代码。微控制器是 Microchip PIC 18F1220。参考手册说:

编码:
第一个字:1100 ffff ffff ffffs
第二个字:1111 ffff ffff ffffd

解决方案是:

但我得到的解决方案是

你能解释一下如何得到正确的答案吗?

谢谢

0 投票
2 回答
3993 浏览

linker - 如何在访问库中放置变量 - PIC 18 MPASM 链接描述文件

我有一个链接器脚本,它启动

我希望我的中断服务变量进入 ACCESS 库。(我的程序目前很小,但可能在未来......)。所以

这导致:

检查包含的文件,我相信它是。要么,要么我在扩展模式下工作,“gpre”是。我可以使用#IFDEF 来检查,我试过了。结果,它试图使用“accessram”而不是“gpre”。

也许如果我尝试通过复制包含文件中的行来明确定义访问库:

这会导致错误

这让我很困惑。根据汇编器/链接器文档,我将 SECTION 与 RAM 选项一起使用,其中 RAM 先前已使用 ACCESSBANK、SHAREBANK 或 DATABANK 声明。它应该工作。

谢谢 - 理查德

0 投票
1 回答
2276 浏览

assembly - how to do interrupt service routine in pic18

actually this coding is for people counter and display in 7 segment. but the problem is when running this program,it's did'nt function and i don't know where is the problem. i think i had do it correctly..