0

我正在尝试开始使用 pic24,特别是 PIC24FJ64GA002,我查看了寄存器的数据表等等,但我仍然无法让它闪烁 LED。当我通过调试运行它时,它运行正确,但是当我尝试在图片上实际运行它时,它似乎根本没有运行。

我正在使用一个外部振荡器,特别是一个 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++);
    }

}

4

3 回答 3

7

你需要打个招呼,等等,然后瞧,等等……你只是打个招呼,等等,你好,等等。

   while(1)    //Loop forever
   {
  LATAbits.LATA0 = 1; //RA0 = 1
  Wait();
  LATAbits.LATA0 = 0; //RA0 = 1
  Wait(); 
   }
于 2010-11-23T04:45:42.597 回答
0

您正在编译什么优化级别?如果它仅在调试中工作,则优化器可能会将整个Wait()功能减少为无操作。尝试声明'volatile int i'。

于 2010-11-30T18:26:56.140 回答
0

谢谢大家的帮助,但是当我在 mplab 的配置编辑器中设置它们时,我将配置位设置错了,一切正常。

谢谢你的帮助!

于 2010-11-30T20:52:44.637 回答