Kod bu şekilde. frekans 16 kHz'de sabit. duty cycle'ı istediğim gibi değiştirebiliyorum. Sorunum şu frekans devre için yetersiz kalıyor. Frekansı 32kHz yada 64 kHz'e arttırmam gerekiyor. nasıl yapabilirim ?
quote:
//MK
const int pot_pin = A0; const int feedback = A1; int pot = 0; int cikti = 0; int vout = 0; int vpot = 0; int duty = 1; int bosluk = 510; int i=0;
void setup() { cli(); // stop interrupts TCCR1A = 0xF2 ; // phase correct (mode 1010, ICR1 controls period) TCCR1B = 0x01 ; // prescale by 1, change to 0x12 for prescale by 8 TIMSK1 = 0x01 ; // overflow interrupt ICR1 = 500 ; // 31.25us cycle time, 32kHz PWM but 64kHz drive pulses (differential) OCR1A = 125-100 ; // example U drive OCR1B = 125 ; GTCCR = 0x83 ; // clear and halt prescalers TCNT1 = 0xFFFF ; // synchronize counters exactly. GTCCR = 0x00 ; // allow prescalers to fly sei(); // allow interrupts pinMode(pot_pin, INPUT); pinMode(feedback, INPUT); pinMode(9, OUTPUT); pinMode(10, OUTPUT); Serial.begin(9600);
}
ISR(TIMER1_OVF_vect){
OCR1A=bosluk; //dutyi buradan ayarla OCR1B=511-bosluk; }
void loop(){
oku(); //potansiyometreden istenen gerilim ve cikistan alinan gerilimi okutuyoruz
Sorunum şu frekans devre için yetersiz kalıyor.
Frekansı 32kHz yada 64 kHz'e arttırmam gerekiyor. nasıl yapabilirim ?
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.