Hi !
Zum projekt : ich möchte die laufzeit des von einem beeper ausgegeben schalls zum micro messen. Daraus liese sich dann leicht über die schallgeschwindigkeit die enfernung errechnen.
dazu habe ich hier mal ein programm geschrieben:
Allerdings funktioniert das noch nicht so ganz... Erg und Ti sind irgendwie immer null. und das programm endet nie, so wie es eigentlich sollte... Könnte das daran liegen, das der Timer weiterhin fleisig überleuft und interrupts produziert ? und dann natürlich wieder zurück in die Schleife springt ?Code:$regfile = "m32def.dat" $crystal = 16000000 $baud = 9600 Dim X As Integer Dim Ti As Word Dim Xsave As Integer Dim Erg As Long Dim Zwierg As Long Config Pind.7 = Output Config Lcdbus = 4 Config Lcdpin = Pin , Db4 = Pinc.7 , Db5 = Pina.5 , Db6 = Pina.6 , Db7 = Pina.4 , E = Pinc.6 , Rs = Pinc.5 Config Lcd = 16 * 4 Config Timer1 = Timer , Prescale = 1 Config Adc = Single , Prescaler = Auto Start Adc On Timer0 Tim1_isr Enable Timer1 Enable Interrupts Sound portd.7 , 200 , 450 Do If Getadc(2) > 614 Then Ti = Timer0 Xsave = X Exit Do End If Loop Sound Portd.7 , 2000 , 1000 Erg = Ti * 63 Zwierg= Xsave * 65536 Erg = Erg + Zwierg Cls Lcd "berechnung:" Lowerline Lcd Erg ; " // " ; Ti Tim1_isr: X = X + 1 Return End
Würde mich interessieren, was ihr dazu sagt ! (sonst hätte ichs auch net hier rein gestellt ^^)
mfg Javik







Zitieren

Lesezeichen