Hallo,
ich versuche gerade hinzubekommen das mir mein mC die Länge eines an
einem Port ankommenden Impulses ausgibt.
Hab dazu mal folgendes Programmiert :
$prog , 255 , &B11011001 , 'Quarz an /
Teiler aus / Jtag aus
$regfile = "m2560def.dat"
$hwstack = 82 '80
$framesize = 68 '64
$swstack = 68 '44
$crystal = 16000000
'Quarzfrequenz
Config Com4 = 9600 , Synchrone = 0 , Parity = None , Stopbits = 1 ,
Databits = 8 , Clockpol = 0
Open "com4:" For Binary As #4 'USB Buchse
Dim I As Integer
Config Portd.0 = Input '
Do
I = 0
While Portd.0 = 1
Waitms 1
I = I + 1
Wend
Print #4 , I
I = 0
Wait 2
Loop
End
Leider Bekomme ich immer nur 0 ausgegeben.
Zu dem angeschlossenen Port habe ich folgendes aus dem Datenblatt meines
mC :
Pin 40 PD0 / SCL /INT0 (I2C-Bus)
Bei meinem mC handelt es sich um einen rnmega2560.
Ich hoffe ihr könnt mir da weiter helfen ?
Oder wenn jemand eine bessere Methode kennt um so etwas umzusetzen.
Lass mich raten: Du hast einen Taster angeschlossen und misst das Prellen aus? (Zum Basic-Programm kann ich nichts sagen - mein letztes ist 30 Jahre her und ich dachte, diese "Sprache" sei längst gegessen.)
> Do > I = 0 > While Portd.0 = 1 > Waitms 1 > I = I + 1 > Wend Wie wäre es, wenn du zunächst mal abwarten würdest, bis der Puls überhaupt anfängt? > Oder wenn jemand eine bessere Methode kennt um so etwas umzusetzen. Timer mit Input Capture
@Hazeh Zimmerer Nein es handelt sich um ein Echolot das einen Init-Impuls von 5ms länge sendet. @Karl heinz Buchegger > Do > If Portd.0 = 1 Then > I = 0 > While Portd.0 = 1 > Waitms 1 > I = I + 1 > Wend > EndIf meinst du das so ?
Dennis schrieb:
> meinst du das so ?
Nein.
Abwarten bis der Puls beginnt.
Solange der Pind.0 auf 0 ist hat der Puls nicht begonnen.
Irgendwann wird er 1. Das ist für dich das Zeichen, dass der Puls
anfängt. Ab diesem Zeitpunk überwachst du dein Eingang und solange der 1
ist, zählst du dein I hoch.
Ok so gehts
Do
If Pind.0 = 1 Then
I = 0
While Pind.0 = 1
Waitms 1
I = I + 1
Wend
Print #4 , I
I = 0
Waitms 1
End If
Loop
End
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.