Witam.
Chciałbym obliczyć czas trwania całego cyklu PWM (nie wiem czy dobrze napisałem; chodzi mi o czas trawnia wszystkich kroków, czyli w tym przypadku od 0 do 255). Bardzo proszę o wytłumaczenie mi jakie obliczenia trzeba wykonać.
oto mój kod (dla ATmega8):
Chciałbym obliczyć czas trwania całego cyklu PWM (nie wiem czy dobrze napisałem; chodzi mi o czas trawnia wszystkich kroków, czyli w tym przypadku od 0 do 255). Bardzo proszę o wytłumaczenie mi jakie obliczenia trzeba wykonać.
oto mój kod (dla ATmega8):
#include <avr/io.h>
#include <util/delay.h>
#define F_CPU 8000000
#define PWMout OCR2 //makro na OCR2
int main(void)
{
int ipwm;
DDRB =0x00; //portB jako wyjscie
TCCR2 =0b01101001; //fast PWM, non-inverted, bez preskalera
TCNT2 =0x00; //zainicjowanie licznika
while(1) //pętla nieskończona
{
ipwm=0;
while (ipwm <= 255)
{
PWMout = (ipwm++);
_delay_ms(5);
}
ipwm=255;
while (ipwm >= 0)
{
PWMout= (ipwm--);
_delay_ms(5);
}
} //koniec pętli nieskończonej
}