Künye

Okuduğunuz yazı PIC24F dsPIC30F dsPIC33F Uygulamaları Kategorisi altında 16/04/2010 Tarihinde Tarafından Yazıldı - 6.525 kez okunmuş

Yazı Seçenekleri : | Pdf Kayıt | Arkadaşına Gönder | Yazıyı Paylaş | Geri izleme | Yorum takibi

Etiketler : , , , , , , ,

Bu örneğimizde PWM uygulaması yapacağız. Program aşağıdaki gibidir.

/*
Aykut ULUSAN
Elektronik Mühendisi 
IZMIR

www.uicroarm.com

JP5 ve JP19 on konumda olacak
 
PWM özelliğini kullanacağız
*/


#include <p24Fxxxx.h>

_CONFIG1(0x3F20)  // JTAG, WDF, flash memory'ye yazma kullanılmayacak
_CONFIG2(0x78EF)	// Dahili fast rc osc enable, xtal uçları boş olacak


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

volatile unsigned char duty=0;


int 
main(void){
	
	AD1PCFG=0xFFFF;				// portlar dijital
	TRISB = 0x1FFF;   
	_LATB14=1;
	_LATB13=1; 
	RPOR7bits.RP15R = 18;  // rb15 pwm portu
	T2CON = 0;
	TMR2 = 0;
	PR2 = 255;
	OC1CON = 0x0006;   
	OC1RS = duty;			//duty cycle'ı bir reg ile değiştireceğiz.
	T2CON = 0x8000;   
	T3CON = 0;
	TMR3 = 0;
	PR3 = 143;                       
	T3CON = 0x8030;   

	while(1){
		DLY_MS(20);
		OC1RS = ++duty;
	}
	
	return 0;
}

/*************************************************************/