Witam!
Mam problem z programem w bascom'ie. Chce generować przebieg prostokątny na jednym z wyjść mikrokontrolera, lecz częstotliwość przebiegu wygenerowanego ni jak się ma do częstotliwości która powinna być wygenerowana.
Częstotliwość obliczam dzieląc częstotliwość taktowania kwarcu (w moim przypadku 8MHz) przez podział pleksera ustawiony w timer0 (256).
Do licznika wpisuje 1 tak więc powinien zliczać 1 impuls i generować przerwanie, które steruje zmianami na wyprowadzeniu mikrokontrolera.
Częstotliwość przebiegu = (8 000 000 \ 256) \ 2 = 15625 Hz
A ja otrzymuje częstotliwość przebiegu ok 8 Hz
Mógłby mi ktoś wyjaśnić dlaczego tak jest ??
Lisning programu poniżej:
Mam problem z programem w bascom'ie. Chce generować przebieg prostokątny na jednym z wyjść mikrokontrolera, lecz częstotliwość przebiegu wygenerowanego ni jak się ma do częstotliwości która powinna być wygenerowana.
Częstotliwość obliczam dzieląc częstotliwość taktowania kwarcu (w moim przypadku 8MHz) przez podział pleksera ustawiony w timer0 (256).
Do licznika wpisuje 1 tak więc powinien zliczać 1 impuls i generować przerwanie, które steruje zmianami na wyprowadzeniu mikrokontrolera.
Częstotliwość przebiegu = (8 000 000 \ 256) \ 2 = 15625 Hz
A ja otrzymuje częstotliwość przebiegu ok 8 Hz
Mógłby mi ktoś wyjaśnić dlaczego tak jest ??
Lisning programu poniżej:
$crystal = 8000000
Config Portd = Output
Portd = 1
Config Portb = Output
Portb = 0
Config Portc = &B111000
Portc.0 = 0
Portc.1 = 0
Portc.2 = 0
Portc.3 = 0
Config Timer0 = Timer , Prescale = 256
On Timer0 przerwanie
Pwm_a Alias Portc.4
Enable Interrupts
Enable Timer0
Start Timer0
Do
Loop
przerwanie:
Load Timer0 = 1
Toggle Pwm_a
Return