Witam.
Panowie walczę jakiś czas i nie mogę poradzić sobie z dość prostą sprawą.
Nie działa mi instrukcja Load na timer1
Wyczytałem że wartość jaką podaję czyli 250 zostanie odliczona do 0 i ma nastąpić przerwanie i tak w koło.
Czyli licząc
Q=8Mhz
250 impulsów daje - 0,000032s czyli 31250 Hz
31250 / 100 =~310Hz
Natomiast dioda Toggle Ledd1 zmienia się prawie co sekundę.
Czyli wygląda że polecenie load jest ignorowane licząc.
przerwanie co 0,00819200s czyli 122Hz/100 =1.2s.
Nie istotne jest co wpiszę w:
Load Timer1 , 250 czy też Load Timer1 , 65000
liczy tak samo.
Proszę o rady
.
Pozdrawiam.
$regfile = "ATTINY44.dat"
$crystal = 8000000
Config Timer1 = Timer , Prescale = 1
Load Timer1 , 250
On Timer1 Prztimer1
Enable Timer1
Enable Interrupts
Config Portb.2 = Output
Ledd1 Alias Portb.2
Reset Portb.2
Config Portb.0 = Output
Wyj1 Alias Portb.0
Reset Portb.0
Dim Flaga1 As Byte
Dim Licznik As Byte
Dim Led1 As Byte
Flaga1 = 1
Do
Led1 = 50
Wait 1
Led1 = 80
Wait 1
Led1 = 10
Wait 1
Loop
Prztimer1:
Incr Licznik
If Licznik > 100 Then
Licznik = 0
Toggle Ledd1
End If
If Flaga1 = 1 Then
If Licznik < Led1 Then
Set Wyj1
Else
Reset Wyj1
End If
End If
Return
Panowie walczę jakiś czas i nie mogę poradzić sobie z dość prostą sprawą.
Nie działa mi instrukcja Load na timer1
Wyczytałem że wartość jaką podaję czyli 250 zostanie odliczona do 0 i ma nastąpić przerwanie i tak w koło.
Czyli licząc
Q=8Mhz
250 impulsów daje - 0,000032s czyli 31250 Hz
31250 / 100 =~310Hz
Natomiast dioda Toggle Ledd1 zmienia się prawie co sekundę.
Czyli wygląda że polecenie load jest ignorowane licząc.
przerwanie co 0,00819200s czyli 122Hz/100 =1.2s.
Nie istotne jest co wpiszę w:
Load Timer1 , 250 czy też Load Timer1 , 65000
liczy tak samo.
Proszę o rady
Pozdrawiam.
Kod: text
$regfile = "ATTINY44.dat"
$crystal = 8000000
Config Timer1 = Timer , Prescale = 1
Load Timer1 , 250
On Timer1 Prztimer1
Enable Timer1
Enable Interrupts
Config Portb.2 = Output
Ledd1 Alias Portb.2
Reset Portb.2
Config Portb.0 = Output
Wyj1 Alias Portb.0
Reset Portb.0
Dim Flaga1 As Byte
Dim Licznik As Byte
Dim Led1 As Byte
Flaga1 = 1
Do
Led1 = 50
Wait 1
Led1 = 80
Wait 1
Led1 = 10
Wait 1
Loop
Prztimer1:
Incr Licznik
If Licznik > 100 Then
Licznik = 0
Toggle Ledd1
End If
If Flaga1 = 1 Then
If Licznik < Led1 Then
Set Wyj1
Else
Reset Wyj1
End If
End If
Return
Kod: text