Arduino frekansı(hz) = 16000000,
Prescalar = 1024,
Timer bitiş değeri = 255,
Timer başlangıç değeri = 0, ise:
OCnB Frekansı(Hz)= 61,04
OCnA Frekansı(Hz)= 61,04 olur.
Program Kodları
//AÇIKLAMA
//uygulamada Timer2 kullanıldı. OCR2A ve OCR2B karşılaştırma kayıtçılarının OC2A ve OC2B çıkışlarının
//invert(tersleme) olmayan, Timer2 sayacının maximum değerine kadar saydığı Fast PWM modunu etkinleştirdik.
//Uygulama Proteustaki Arduino kartında tam olarak çalışmadığı için Atmega328p'de yapıldı.
//Üretilen frekans "Fast_PWM-1 timer frekans formülü.xlsx" dosyasındaki formülle hesaplanır.
void setup()
{
pinMode(3, OUTPUT); //Arduino pin3 = ATMEGA328 pin5
pinMode(11, OUTPUT); //Arduino pin11 = ATMEGA328 pin17
TCCR2A = 0; //TCCR2A register 0'lanıyor
TCCR2B = 0; //TCCR2B register 0'lanıyor
OCR2A = 150; //OCR2A bitiş/karşılaştırma değeri belirlendi
OCR2B = 100; //OCR2B bitiş/karşılaştırma değeri belirlendi
TCCR2A |= (1 << COM2A1) | (0 << COM2A0) | (1 << COM2B1) | (0 << COM2B0) | (1 << WGM21) | (1 << WGM20);
TCCR2B |= (1 << CS22) | (1 << CS21) | (1 << CS20) | (0 << WGM22);
}
void loop()
{
}
0 comments:
Yorum Gönder