PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Laufzeitmessung für Ultraschall



globe
10.05.2005, 12:24
Hallo Leute!

Ich hab da ein kleines Problem:
Ich hab mir einen Ultraschallsensor mit Hilfe zweier Us-Kapseln zwei OP und nem Controller gebaut . Die Sache ist dieser aus den Artikeln sehr ähnlich.

www.roboternetz.de/phpBB2/zeigebeitrag.php?t=3412

Dazu mal mein Code:


$regfile = "m8def.dat"
$crystal = 8000000
$baud = 19200
Adcsr = &B11101111 'free mode, prescale 128 interrupt enable
Admux = &B01000000 'adlar =0

On Adc Onadc


Dim Value(400) As Word
Dim X As Word

Dim A As Byte At &H60 Overlay
Dim B As Byte At &H61 Overlay
Dim C As Word At &H60 Overlay

Print "Gleich geht es los:"
Wait 2
Sound Portb.1 , 40 , 15

Enable Interrupts
Enable Adc


Do

If X > 399 Then
Disable Interrupts
For X = 1 To 400
Print Value(x) 'end program
Next
End
End If



Loop





Onadc:

X = X + 1
B = Adch
A = Adcl
Value(x) = C

Return

globe
10.05.2005, 12:31
Oh upps da fehlt ein Teil:

Das Problem bei dem Code ist das der ADC nur eine Wandlung macht und diese dann 400 mal ausgibt. Wenn ich Print c direkt in den Interrupt schreibe geht es aber ich denke, dass das nicht die Lösung sein kann. Denn Interrupt brauch ich um daraus dann die Laufzeit anhand der Abtastrate berechnen zu können, aber irgendwie will der code das Ergebnis nicht in das Array schreiben.

Ich hoffe ihr versteht was ich meine.

Gruß Georg

PicNick
10.05.2005, 15:57
Ich glaub' du mußt adcl zuerst lesen, weil sonst adch gesperrt ist.

globe
10.05.2005, 16:58
Ja super das war es. Danke!