keruseykaryu pisze:I pamiętać o wyłączeniu prologu i epilogu przerwań jaki dodaje Bejzik.
Możesz napisać jaśniej o co chodzi?
Pikczu idąc po Twoich wskazówkach napisałem coś takiego
Kod: Zaznacz cały
$regfile = "m8def.dat"
$crystal = 16000000
Config Lcd = 16 * 2
Enable Interrupts
Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5
Config Timer1 = Timer , Prescale = 64 'maks=0,261s, min=0,000004s
Enable Timer1
Config Int0 = Falling
On Int0 Poczatek
Enable Int0
config int1 = rising
on int1 koniec
enable int1
Stop Timer1
Timer1 = 0
Dim Wynik As Word
Dim Flaga As Bit
Dim Wynikczas As Single
Cls
Cursor Off
Do
Wynikczas = Wynik * 0.000004
Locate 1 , 1
Lcd Wynikczas ; Spc(6)
Waitms 100
Loop
End
Poczatek:
Load Timer1 , 0
Start Timer1
Return
koniec:
Stop Timer1
Wynik = Timer1
Load Timer1 , 0
Return
Wygląda na to że dobrze działa, na wyświetlaczu nie przebija mi żadna wartość, wynik pomiaru też jest poprawny.
Sprawdzam To moim generatorkiem (kod w pierwszym poście). Tyle że na wyświetlaczu jest stały wynik (0,0002; 0,0004; 0,0006; 0,0008 lub 0,0001s w zależności którą opcję wybiorę). Boję się żeby nie okazało się że wynik się nie zmienia. Bedę musiał przerobić kod w generatorku żeby to sprawdzić.
Dziekuję Ci bardzo
Pikczu za pomoc.