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.