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

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir