PIC24F ilk proje

Merhaba,
Pic24F serisi için port kullanımı ve delay işlemlerini kapsayan led on/off fonksiyonunu gerçekleştiren uygulama programı aşağıdadır.
/*
Port pini set / reset
Aykut ULUSAN,Elektronik Mühendisi,IZMIR
www.uicroarm.com
Uygulama boardu : EX16L-A (16bit development board)
www.expkits.com'dan temin edebilirsiniz.
*/
/*
ilkönce işlemcinin registerleri , register bitleri ve bazı tanımlamamlar programa dahil edilmeli
bu işleme header ekleme diyoruz
*/
// işlemci: PIC24F64GA002
#include <p24Fxxxx.h> // burada PIC24F serisi kullanacağımızı ifade ettik ama işlemciyi MPLAB içinde seçilir
// JTAG, WDF, flash memory'ye yazma kullanılmayacak
_CONFIG1(JTAGEN_OFF & GCP_OFF & GWRP_OFF & BKBUG_OFF & ICS_PGx1 & WINDIS_OFF & FWDTEN_OFF)
// Dahili fast rc osc enable, xtal uçları boş olacak
_CONFIG2(FNOSC_FRC & POSCMOD_NONE & OSCIOFNC_OFF & FWDTEN_OFF )
#define NOP() {__asm__ volatile ("nop");}
#define CLRWDT() {__asm__ volatile ("clrwdt");}
#define SLEEP() {__asm__ volatile ("pwrsav #0");}
#define IDLE() {__asm__ volatile ("pwrsav #1");}
#define LED1 PORTAbits.RA0
void DLY_10US(unsigned int us);
void DLY_MS(unsigned int ms);
unsigned int asm_reg;
int
main(void){
// unsigned int c=0xffff;
PORTA=0; // latch'leri temizle
AD1PCFG=0xFFFF; // portlar dijital
TRISA=0; asm("NOP"); // A portu çıkış
while(1) {
LED1=0;DLY_MS(100);
LED1=1;DLY_MS(100);
}
}
// X*10US
void
DLY_10US(unsigned int us){
while(us--) {
__asm__ volatile ("repeat #33");
__asm__ volatile ("nop");
}
}
// 65536ms'ye kadar
void
DLY_MS(unsigned int ms){
while(ms--){
DLY_10US(100);
}
}