kwarc 4 megaherce
Kod: Zaznacz cały
Config Timer1 = Timer , Prescale = 256
Enable Interrupts
Enable Timer1
On Timer1 T1
Timer1 = 15625
do
loop
T1:
toggle portb.0
returnKod: Zaznacz cały
Config Timer1 = Timer , Prescale = 256
Enable Interrupts
Enable Timer1
On Timer1 T1
Timer1 = 15625
do
loop
T1:
toggle portb.0
returnKod: Zaznacz cały
Config Timer1 = Timer , Prescale = 256
Enable Interrupts
Enable Timer1
On Timer1 T1
Timer1 = 49911
do
loop
T1:
toggle portb.0
returnKod: Zaznacz cały
Config Timer1 = Timer , Prescale = 256
Enable Interrupts
Enable Timer1
On Timer1 T1
Timer1 = 49911
do
loop
T1:
Timer1 = 49911
toggle portb.0
returnOwszem można i tak. W BASCOMie niestety jego stosowanie i konfigurowanie jest bardzo mgliście opisane. Jest dodatkowa opcja w poleceniu CONFIG TIMER: CLEAR TIMER = 0 | 1 która go włącza, ale nie ma dalszych informacji jak tego używać. Np. w ATTiny26 tryb CTC współpracuje tylko z rejestrem OCR1C! Nie ma też zdefiniowanych przyjaznych zmiennych: COMPARE1C.Ddevil pisze:Jest jeszcze inna metoda: tryb CTC.
Więcej! Nie trzeba nawet używać przerwań i pisać do nich programów obsługi gdyż odpowiednio ustawiając bity COMnx1 licznik sam będzie zmieniał stan końcówki OC1x w każdym spełnionym porównaniu.Ddevil pisze:Włączasz CTC, wpisujesz ową wartość do rejestru np. COMPARE1A, i wywołujesz wtedy przerwanie On Compare1a Etykieta (zrównanie zawartości licznika z zawartością rejestru Compare1a).
Kod: Zaznacz cały
$regfile = "m8515.dat"
$crystal = 1000000
Config Timer1 = Timer , Prescale = 1 , Compare A = Toggle , Clear Timer = 1
Compare1a = 15625
Do
Loop