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); } }