PWM ÖRNEĞİ YANLIŞ MI?

Başlatan cooldoubtless, 28 Ağustos 2012, 01:26:40

cooldoubtless

Bunalmış hocamızın yaptığı pwm örneğinden aldığım bir kısımı sormak istiyorum...


RCC->APB1ENR|=0x00000020;       // Timer7 CLK'u aktif edelim (84 Mhz)
     TIM7->CR1=0x0080;               // Otomatik Reload
     TIM7->PSC =839;                 // Prescaler degerimiz 839, Count frekansimiz = fCK_PSC / (Yuklenen Deger + 1) 84E6 / (840) = 100 KHz
     TIM7->ARR =1;                   // Counter, Decimal 1 olunca basa donsun. Her 20 mikrosaniye de bir timer int olusacak.
     TIM7->DIER=0x0001;              // Update Int enable
     NVIC->ISER[1] = 0X00800000;     // NVIC de Timer 7 interrupta izin verelim
     TIM7->CR1|=0x0001;              // Counter Enable
     
}



burada arr 1 olduğunda başa dönsün derken sadece 0 dan 1 e geçiş süresi var demektir..yani 1/100 Khz den 10us oluyor..ama bunalmış hocamız 20 us demiş..hatayı nerede yapıyorum acaba?:s

JKramer

1'den 0'a geçiş süresi yok mu?

cooldoubtless

1 olunca başa dönsün denmiş..acaba 1 olduğu anda resetlenip 0 olmaz mı?yoksa dediğiniz gibi 1 den sonra yine 10 us işletip 0 a mı geçer?

Klein

#3
Rehber s:459' da zaman çizelgesi var. Oraya dikkat edersen, 
conter reload değerine eşit olunca  saat darbesinin yükselen kenarında kesme bayrağı çekiliyor. Ancak counter içeriğinin 0 olması, sonraki saat darbesinin yükselen kenarında gerçekleşiyor.
O örnek, yazılımla PWM üretmek için. Örnek uygulama olarak değerlendirilebilir. Ama bu kadar HW PWM çıkışı varken sofrware pwm biraz anlamsız olur.

cooldoubtless

çok teşekkür ederim hocam anladım ne demek istediğinizi..