问题标签 [mplab]

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 回答
679 浏览

c - printf 在 C32 编译器上不起作用

为什么 printf 不能像 PIC18 那样在 PIC32 上工作?

例如,此代码在 PIC18 上运行良好,但在 PIC32 上运行良好,

使用 C32 编译器没有输出消息,我错过了什么?

0 投票
1 回答
867 浏览

pic - 设置定时器-寄存器名称的初始值

我在 XC8 MPlab 中有一个运行良好的 PIC16F690 计时器。

我想改变它的初始值。我找不到如何将一个值设置到它的寄存器中,所以它从那个值开始。

我正在寻找该寄存器的语法来填充数据。

0 投票
2 回答
1771 浏览

c - For循环不递增

我今天一直在研究这个代码类,并向你保证我已经经历了很多次。出于某种原因,每当我设置断点来确定“channelsel”的值时,我得到的都是“0”。我从来没有得到 1、2、3 或 4(我的 MAXCHANNELS 是 5)。

我正在使用:P18F45K22 微控制器和 mplab c18。

请看下面的代码,提前谢谢

0 投票
1 回答
1255 浏览

mplab - 为什么 RB 中断例程运行两次?

我下面有一些代码有一个小错误,我不知道如何修复。基本上发生的事情是我的高 ISR 在设置标志后运行了两次。它只运行两次并且是一致的。子例程应该只运行一次,因为当 RB 上的输入更改时设置了标志,并且例程在 RB 的输入更改一次后运行两次。测试是在 MPLAB v8.6 中使用工作簿功能进行的。

0 投票
2 回答
255 浏览

mplab - 几个小时后 PIC32 变得无响应

我有另一家公司为我们开发的 PIC32MX340F512 板,该板有一个 DS1338 RTCC 和 24LC32A eeprom,以及 I2C 总线上的显示单元,在这条总线上我包括一个 TSL2561 I2C 光传感器,我用 c 编写代码来轮询光传感器连续,当光传感器达到一定水平时,我将时间和日期以及光传感器值保存在 SD 卡上。这一切都很好,但是如果我离开系统时没有暴露在隧道内的光线下,隧道一端的入射光应该被监控,无论你应用多少光,然后如果我关闭电源,系统都会变得无响应然后重新开始,一切都开始正常工作。我是一个单人开发团队,几个月来一直试图找出问题所在,我激活了看门狗定时器以防止系统挂起,但问题仍然存在。然后我决定通过包含一个按钮来激活光测量来确定传感器是否存在问题,但是当 4-5 小时过去后,PIC 甚至无法检测到输入引脚的变化。给人的印象是硬件重置会覆盖正在发生的任何事情,我包括了一个重置​​按钮,并且在最初的几个小时内它也可以正常工作,之后 PIC 似乎没有响应任何事情,包括重置。我确信固件没有问题,而且所有这些都发生了,I2C 上的显示单元(pic16f1933 和 lcd)与主单元共享电源并且没有 似乎没有受到影响,因为它不断在不同的消息之间交替出现有没有人知道可能出了什么问题(硬件/固件或我的传感器)。我使用的是单独购买的 24v 直流电源。尽管我没有在我的代码中实现任何类型的睡眠模式,但 PIC 似乎进入了深度睡眠。注意我们在许多其他项目中使用相同的板,我没有遇到过这样的问题。提前致谢。

0 投票
3 回答
2445 浏览

c - PIC24H 中的高速 UART 中断导致 FreeRTOS 错误

我已经FreeRTOS在一些嵌入式项目中使用了一年的时间,直到现在它工作得非常完美。目前我面临一个与使用高速中断FreeRTOS移植到相关的难题PIC24H,希望大家能帮助我解决这个问题。提前致谢

我创建了一个小型演示项目以便于测试:

两个任务:

任务执行:

为了让上述两个任务运行,我使用一个Timer和一个UART给他们信号量:

我的定时器每 100us 中断一次,UART 以 230400 bps 的波特率工作。

运行几秒钟或几分钟后,程序崩溃并且程序跳转到 Traps:

_AddressError或者

_StackError

我不知道这个问题怎么会发生。经过长时间的调查和测试,我认为问题发生在程序运行和运行中断服务例程(ISR)时。看来我们需要几个SAVE_CONTEXT()&RESTORE_CONTEXT()函数。但是在 PIC24 端口上没有这样的。

请你给我一些关于这个问题的建议

谢谢你们 !


我想我已经发现了我的问题。当 PIC24H 进入和退出中断服务程序时会引入问题,这里它们是 UART RX、TX、定时器中断。

目前我不使用这样的 ISR:

无效属性((中断,auto_psv))

我用汇编代码自己创建了一个机制,而不是它:

__U1RX中断:;将 CPU 寄存器推入堆栈

UART1_RxISRHandler 是我的 ISR 实现。我对 TX、定时器中断也是如此。

结果是我的程序运行更顺畅,时间更长 1 小时(仅在 1-5 分钟后程序崩溃)。但最后它在运行1-2小时后仍然崩溃。这意味着我的方法是正确的,但仍然有问题。可能是我错过了上面的代码。

如果大家对这种情况有任何理想,请告诉我。

谢谢

0 投票
1 回答
2793 浏览

c - 在 MPLab X IDE 上用 C 语言读取和写入 IO 引脚

我最近开始使用 PIC32MX764F128H 单片机,我习惯在 PIC18 和 PIC24 上做事。。AKA 使用 CCS C 编译器,所以我很好奇是否有人知道如何在 MPLab X 中为 32 位芯片做一些真正基本的 C 代码。我只希望代码从模拟引脚获取输入并将相反的值放在输出中别针。

例如,如果输入 PIN_B0 并且我插入了 3.3v(此芯片使用 3.3 而不是 5v)我想将 PIN_C0 读取为 0v,但如果 PIN_B0 接地,我希望 PIN_C0 读取 3.3 的高信号v

在如此低级的应用程序中,我对此非常生疏,不记得如何在 C 中这样做。以下是我目前在 C 中的一些内容,但它没有编译,MPLab 在协助代码问题方面很糟糕。

0 投票
0 回答
298 浏览

c - 使用 PIC18F27J53 的 USB 驱动程序

我正在尝试使用 PIC18F27J53 对任天堂娱乐系统控制器的输出进行解码,并将其用作 USB 兼容的 HID 操纵杆。

我已经成功地能够每秒读取 60 次输出并将每个按钮的状态存储为 8 位无符号字符的一位。我将 USB 的 5V 和 Gnd 用于 PIC 和 NES 控制器,我通过 RB1 发送锁存信号,通过 RB2 发送时钟,并通过 RB0 读取数据。

http://www.mit.edu/~tarvizo/nes-controller.html

http://ww1.microchip.com/downloads/en/DeviceDoc/39964B.pdf

这是我需要帮助的地方:弄清楚如何与 USB 数据线连接。我已经下载了 Microchip USB C 库,但不知道从哪里开始。我正在使用 C18 编译器在 MPLAB X IDE 中编程。

0 投票
1 回答
4570 浏览

fonts - 如何将编辑器的默认字体更改为系统上安装的字体?

编辑器默认为等宽字体,看起来像 Courier New。我想改用 Consolas 之类的东西,但我只看到一些固定选项,它们看起来像是映射到系统字体。有没有办法选择安装的字体作为编辑器的默认字体?

0 投票
1 回答
609 浏览

mplab - 如何在 mplab ipe 中查看全图?

我在 Linux 上使用 MPLABX IPE 1.95。出于某种原因,程序员决定使主窗口不可调整大小。

在此处输入图像描述

所以不可能正确地看到内存视图。如果内存视图没有打开,我什至看不到输出窗口的底部。

有什么技巧可以使窗口大小合适吗?否则,有人可以给开发人员提供大于 640x480 的显示器吗?

我希望状态不重要

在此处输入图像描述