Witam,
wzorując się na książce "Mikrokontrolery AVR w praktyce" powstał taki oto kod
czyli zlicza mi 100 razy po 250 taktów = 25000 taktów na każdy stan na wyjściu (tzn 25000 taktów na "1" i 25000 na "0", cały okres trwa 50000 taktów)
Czas trwania tych 25000 taktów to ~5 sekund. Patrząc na uzyskne wyniki daje to ok 50kHz.
Pytanie brzmi jak to się ma do zainstalowanego 16MHz kwarcu?
Używam zestawu minimodułu MMnet02 na płytce EVBnet02 (z Propoxu)
wzorując się na książce "Mikrokontrolery AVR w praktyce" powstał taki oto kod
#include <io.h>
#define tau0 6
int main(void){
char licznik = 100;
DDRB = 0x01; //wyjsciem generatora bedzie PB0
TCNT0 = tau0; //stala czasowa
TCCR0 = 1; //timer0 bedzie pracowal bez preskalera
while(1){
while((inp(TIFR) & 0x02) != 0x02); //czekaj na ustawienie flagi TOV0 (przekrecenie licznika)
TCNT0 = tau0; //odnawiamy stala czasowa
if(--licznik == 0){
PORTB ^= 0x01; //zmiana stanu wyjscia na przeciwny
licznik = 100;
}
TIFR=1<<TOV0; // kasujemy flage przepelnienia
}
}czyli zlicza mi 100 razy po 250 taktów = 25000 taktów na każdy stan na wyjściu (tzn 25000 taktów na "1" i 25000 na "0", cały okres trwa 50000 taktów)
Czas trwania tych 25000 taktów to ~5 sekund. Patrząc na uzyskne wyniki daje to ok 50kHz.
Pytanie brzmi jak to się ma do zainstalowanego 16MHz kwarcu?
Używam zestawu minimodułu MMnet02 na płytce EVBnet02 (z Propoxu)