2010-11-23 138 views
0

我想開始使用pic24's,特別是PIC24FJ64GA002,並且我已經查看了數據表中的寄存器以及whatnot,但是我仍然無法讓它閃爍LED。當我通過調試運行它時,它運行正常,但是當我嘗試在圖片上實際運行它時,它似乎根本無法運行。爲什麼我的PIC不閃爍它的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++); 
    } 

} 

回答

0

謝謝大家的幫助,但是當我在配置編輯器中將它們設置在mplab中時,我設置的配置位錯誤。

謝謝你的幫助!

7

你需要去喜,等待,再看哪,等待...你只是喜,等待嗨,等一下。

while(1) //Loop forever 
    { 
    LATAbits.LATA0 = 1; //RA0 = 1 
    Wait(); 
    LATAbits.LATA0 = 0; //RA0 = 1 
    Wait(); 
    } 
+0

聽起來非常合乎邏輯+ 1 – Chubsdad 2010-11-23 04:47:20

+0

@Chubsdad根據定義,編程是合乎邏輯的:) – ruslik 2010-11-23 04:49:28

0

你在編譯什麼優化級別?如果它只用於調試,那麼優化器可能會將整個Wait()函數減少爲空操作。嘗試聲明`volatile int i'。