为什么我的PIC没有闪烁它的LED?

时间:2010-11-23 04:40:52

标签: c++ embedded pic microchip

我正在尝试开始使用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++);
    }

}

3 个答案:

答案 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的配置编辑器中设置它们时效果都很好。

感谢您的帮助!