我想编写一个 function,它返回指向两个特殊 function 寄存器 (SFR) 之一的指针。 这些 SFR 具有不同的类型,但除了名称不同外,它们的类型是相同的: ( __sfr__属性告诉编译器变量地址由 linker 脚本设置。) 这些 typedef 位于我不拥有的 header ...
我想编写一个 function,它返回指向两个特殊 function 寄存器 (SFR) 之一的指针。 这些 SFR 具有不同的类型,但除了名称不同外,它们的类型是相同的: ( __sfr__属性告诉编译器变量地址由 linker 脚本设置。) 这些 typedef 位于我不拥有的 header ...
我正在尝试将 PIC24FJ256GB412 配置为将 SPI 接口与 ADC 模块 (ADS114S08) 一起使用。 现在,我可以通过示波器查看数据(通过测量 SDI 引脚)。 但是 SPI1BUFL 没有收到正确的数据(总是收到 0x01)。 下面是我用来配置 SPI 的相关代码。 粗斜体 ...
美好的一天,我正在使用 PIC24FJ64GA002 微控制器,并且正在努力让 PWM 为我想使用的伺服系统工作。 我的代码如下: 我将 T1CON 编程为具有 2 ms 的周期,将 OC1R 编程为该周期的一半,这将导致占空比为 50%。 我使用的是 FRC 振荡器 (8MHz),我的预分频器值为 ...
我试图在 C 中将 float 转换为按位 int。这是我的代码片段: 我收到以下错误: 在尝试编译时。 这里, temperature_offset 是一个浮点类型,我试图将它转换为高整数和低整数,因为我试图将数据以 16 位块的形式保存在 EEPROM 中(因为我使用的是 16 位微控制 ...
我一直试图将我的 PIC controller 从深度睡眠中唤醒,但我无法唤醒它。 根据数据表,它说有 3 种方法可以唤醒它:1)RTCC 警报 2)外部中断 3)深度睡眠看门狗定时器(DSWDT) 我正在使用第三个选项,因为 RTCC 有点难以初始化并且外部中断不适合我的项目,所以我决定使用 DS ...
我正在开发一个使用 Microchip PIC24FJ256GA702 的项目。 几天来,我一直在寻找一些 UART 代码的间歇性错误。 它使用中断服务例程 (ISR) 来传输名为char txBuff[]的缓冲区及其长度int txLen 。 在主要(即不是 ISR)代码中,我偶尔会访问缓冲区以 ...
I am making a USB Bootloader for PIC24FJ128GC006 and I am going to map part of the flash memory for the Bootloader and the Application code. 我将 Micr ...
我目前正在将PIC24与UART配合使用,并且能够接收(Rx)和发送(Tx)字符。 当尝试接收连续的字符流时,开始和停止位之间没有延迟,就会出现问题。 UART已设置; 1200baud时有7个数据位,1个奇偶校验位和1个停止位 在终端上显示接收到的字符时,表明只有某些字符可以正 ...
我试图将Printf重定向到UART以输出到CoolTerm等控制台,但没有成功,我将PIC24FJ128GA204,MPLAB X v5.25,MCC v3.85.1与“ PIC24F Curiosity Development Board”结合使用 在搜索google和microchi ...
我目前正在解决“微控制器第二版”中的一些问题,问题是: mov [ W1],W0 初始寄存器存储内容 W0 = 0x1004 W1 = 0x1006 W3 = 0xF0A2 0x1000 = 0x382A 0x1002 = 0xFB80 0x1004 = 0x ...
我想为我的项目获取反汇编( listing.disasm )文件。 我当前的编译命令生成.elf,.map和.hex文件。 我如何(或使用什么命令)产生单个listing.disasm ? 注意:我有多个C文件,但是我需要一个反汇编文件。 我知道MPLAB X IDE中有一个在构建时 ...
下面是以下C代码的反汇编: 拆卸: 无法理解while循环是如何实现的。 假设[W14 + 6]指向存储Counter位置RAM。 注:为PIC24FV32KA304生成的代码 ...
我正在使用需要引导程序的PIC24上的非独立项目,并且我想使用引导程序对其进行调试。 我能够通过引导加载程序生成一个包含应用程序代码的.hex文件,注册一个在编译后执行的自定义脚本。 如果现在我在菜单中选择“启动调试器主项目”,则调试器通常会执行摘要代码,甚至到达应用程序启动时,但不会显 ...
我有一个PIC24F好奇心板(PIC24FJ128GA204),我正在尝试使用TIM1获得准确的第二时序。 作为源,我使用的是辅助振荡器,该振荡器使用32678 kHz xtl。 计时器配置为32个周期,对应于1毫秒 void TMR1_Initialize (void) { ...
我最近在以下功能中遇到了spi2statbits: 我将以上内容与PIC24FJ128GA010项目结合使用。 我一直在寻找有关SPI2STATbits的更多信息,但没有找到实际的文档。 我认为这是一个相当基本的要求。 有人可以指导我找到正确的文档吗? ...
我刚刚(再次!)开始用C编程16位微控制器,学习如何使用PIC24 自上次使用以来,MPLAB发生了一些变化! 我要做的第一件事就是安装C30或XC16编译器。 我安装了XC16编译器,不久后,我被指示如下: 从MPLAB X主菜单中,选择:File> NewFil ...
我想配置PIC24F16KA102的timer1对其进行计数。 时钟源必须是8 MHz的内部时钟。 我配置了寄存器T1CON并将TON位设置为高电平以启动定时器。 将Timer1设置为每100 us溢出一次,然后在一段时间内我将增加变量计数。 我不明白,因为timer1不起作用,我发现它 ...
可以对我说什么,为什么在XC16 MPLAB中使用此代码时会出错? PIC24FJ64GA004 错误:此目标不支持空格(eedata) 对不起,初学者的问题。 ...
我正在编写在以下7段LCD上显示温度的代码: LCD-H301C31TF资料表 我正在使用PIC24FJ64GA006 Micro。 我只能使用PORTB [13:6],PORTD [0:7],PORTE [0:7]端口引脚。 您能帮我找到更优雅的方式替换以下代码吗? ...
有没有一种方法可以设置特定的端口引脚,而不影响同一端口上的其他引脚? 例如: 我将LATB [13:6]用于7段LCD,其余的LATB位则用于其他目的。 现在,我需要为显示“ 0”设置LATB = 0x003F ,如果我这样做,其余的位将被更改。 有人可以帮我吗? ...