我正在尝试开始使用pic24,特别是PIC24FJ64GA002,我已经查看了数据表中的寄存器和诸如此类的东西,但我仍然无法让它闪烁LED。当我通过调试运行它时它运行正常,但是当我尝试在pic上实际运行它时,它似乎根本不运行。
我正在使用外部振荡器,一个8MHZ振荡器,专门连接到引脚9(OSCI)和10(OSCO)。编译器是Mplab中的C30。
数据表链接是:http://ww1.microchip.com/downloads/en/DeviceDoc/39881D.pdf
代码在
之下//include basic header definition
#include <p24FJ64GA002.h>
//config
_CONFIG2(0x0200);
_CONFIG1(0x0800);
int i;
//main loop
int main(void)
{
OSCCON = 0x2280; //select external OSC, no PLL
AD1PCFG = 0xFFFF; //set to all digital I/O
TRISA = 0x0000; //configure all PortA as output
while(1) //Loop forever
{
LATAbits.LATA0 = 1; //RA0 = 1
Wait();
LATAbits.LATA0 = 1; //RA0 = 1
Wait();
}
}
int Wait(void) // gives me a nice delay of 1/3rd a second or so
{
for (int i = 0; i < 30000; i++)
{
for (int i = 0; i < 30; i++);
}
}
答案 0 :(得分:7)
你需要去嗨,等等,然后等等......你只是打个招呼,等等,嗨,等等。
while(1) //Loop forever
{
LATAbits.LATA0 = 1; //RA0 = 1
Wait();
LATAbits.LATA0 = 0; //RA0 = 1
Wait();
}
答案 1 :(得分:0)
您正在编译什么优化级别?如果它只在调试中工作,那么优化器可能会将整个Wait()
函数减少为无操作。尝试声明`volatile int i'。
答案 2 :(得分:0)
谢谢大家的帮助,但是我设置的配置位错误,当我在mplab的配置编辑器中设置它们时效果都很好。
感谢您的帮助!