0

pic24、特に PIC24FJ64GA002 を使い始めようとしています。データシートでレジスタなどを調べましたが、まだ LED を点滅させることができません。デバッグ経由で実行すると正しく実行されますが、実際に pic で実行しようとすると、まったく実行されないようです。

私は、ピン 9 (OSCI) と 10 (OSCO) に接続された外部オシレータ、具体的には 8MHZ オシレータを使用しています。コンパイラは 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

Thank you guys for all your help, but it was that I set the config bits wrong, when I set them in the config editor in mplab all works well.

Thank you for all your help!

于 2010-11-30T20:52:44.637 に答える