potřebuji měřit čas překlopení komparatoru.
program je v Bascomu.
Kód: Vybrat vše
...
start adc
Timer1 = 0
Bitwait Acsr.aco , Reset
Start Timer1
Bitwait Acsr.aco , Set
Stop Timer1
Index_1 = Timer1
stop adc
...jak by to vypadalo s přerušením?
Moderátor: Moderátoři
Kód: Vybrat vše
...
start adc
Timer1 = 0
Bitwait Acsr.aco , Reset
Start Timer1
Bitwait Acsr.aco , Set
Stop Timer1
Index_1 = Timer1
stop adc
...Kód: Vybrat vše
$regfile = "m644def.dat"
$crystal = 20000000
$sim
Config Lcd = 16 * 2
Config Adc = Single , Prescaler = 16 , Reference = Avcc
Config Timer1 = Timer
Acsr.acbg = 1 'ain na interni ref
Dim Strt As String * 5 , Index_1 As Word , Ad As Word
Do
Start Adc
Ad = Getadc(0)
Strt = Str(ad)
Strt = Format(strt , " ")
Locate 1 , 1
Lcd "ADC 0 ="
Locate 1 , 10
Lcd Strt
Timer1 = 0
Bitwait Acsr.5 , Reset
Start Timer1
Bitwait Acsr.5 , Set
Stop Timer1
Stop Adc
Index_1 = Timer1
Strt = Str(index_1)
Strt = Format(strt , " ")
Locate 2 , 1
Lcd "Timer1 ="
Locate 2 , 10
Lcd Strt
Loop
EndKód: Vybrat vše
Config Timer1 = TimerKód: Vybrat vše
Config Timer1 = Timer, prescale = 1Kód: Vybrat vše
Timer1 = 0
Bitwait Acsr.5 , Reset
Start Timer1
Bitwait Acsr.5 , Set
Stop Timer1Kód: Vybrat vše
Start Adc
Bitwait Acsr.5 , Set
For Poz_x = 1 To 132
Ad_w(poz_x) = Getadc(0)
Next
Stop Adc
Timer1 = 0
Bitwait Acsr.5 , Set
Start Timer1
Bitwait Acsr.5 , Reset
Stop Timer1
Index_1 = Timer1
...
...Nevím jestli jsi mi rozumněl.přesnost měření není moc velká