-         

Ergebnis 1 bis 6 von 6

Thema: Einschaltdauer einer LED oder Pulsbreite messen.

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    18.06.2005
    Alter
    34
    Beiträge
    17

    Einschaltdauer einer LED oder Pulsbreite messen.

    Anzeige

    Hallo Leute, ich versuch seit tagen das dcf 77 Singnal für meine Nixi Uhr zu decodieren.
    Jedoch leider ohne Erfolg.
    Ich verwende den At 90S8515.
    Das dcf Singnal habe ich auf Port.b1 (T1) gelegt. (ohne vorwiederstand).
    Also, meine Led angeschlossen am dcf77 singnal blinkt im sekundentakt. Verwende ich diesen Tackt für meine Programierte Uhr, so leuft sie genau. Man mus sie halt noch von Hand stellen.
    So weit ich das jetzt verstanden habe Blinkt die Led jede Sekunde entweder 100ms(0) oder 200ms(1). Zum decodieren muß man also die lange Low pause(felende Sekundenmarke) abwarten und nach weiteren 20 sekunden begint mit einem high die BCD Codierte Minute(1erStelle).
    Jetzt verwendet man den Timer 1 zum Messen der Impule.
    Und das bekomme ich nicht hin.
    Könnte mir jemand erklären wie das funktioniert.
    Ich lade meinen Programentwuf hoch. Ich weis er ist recht umständlich.
    Aber für mehr reichen leider meine Kenntnisse noch nicht.
    Ich hoffe sehr jemand kann mir helfen.

    Danke im vorraus , Gruß Michael,
    Angehängte Dateien Angehängte Dateien

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    18.06.2005
    Alter
    34
    Beiträge
    17

    Noch ein Paar Bilder .

    Hier sind noch ein paar Bilder von der Hardware.
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken dscn0066.jpg   dscn0065.jpg  

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    03.11.2004
    Beiträge
    370
    Hallo, wenn du eine bestimmte signaldauer messen willst (in diesem fall 100/200ms) dann brauchst du einen takt der mindestens zwei mal so schnell ist (also 50ms) damit die ganze geschichte genauer wird würde ich sogar bis auf 25ms runter gehen. dann nimmst du dir ein byte, welches du zu jedem intervall erhöhst. im hauptprogramm vergleichst du nun den eingang mit 0/1 und wenn du wieder 0 hast weisst du das dein byte ca.4 oder 8 ist. (bit0/1). Damit hast du die impulslänge gemessen.


    Ich empfehle dir erstmal die nixies as debug zu nutzen, damit du siehst ob es wirklich geht...

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    18.06.2005
    Alter
    34
    Beiträge
    17
    Das habe ich schon im Programm ausprobiert:
    Im Simulator fuktionirt das eigentlich so:

    Dim a as Byte
    Dim b as Byte
    Dim i as Byte
    Config Pinb.1 = Input
    Portb.1 = 1

    Pause:
    If Pinb.1 = 1 Then Incr I |'erhöhen um 1
    If I = 100 Then Goto L |' 100 ms Warten habe es auch mit höeren weren Probiert
    Waitms 1
    Gosub 21 | Debag ausgabe auf NIxi
    Goto Pause

    L:
    I = 0
    If Pinb.1 = 1 Then Goto H | Pausen länger als = 100 ms sprung zu Variable a = 1
    A = 0
    Goto Pause1

    H:
    I = 0
    A = 1
    Goto Pause1

    Den wert für I habe ich auch schon verändert gröser b.z.w. kleiner.
    jedoch kommt als Ergebnis immer nur 1 herraus.
    Ich habe mir Überlegt das selbst wenn ich die Minutenmakierung nicht treffe und durch Zufall an irgendeiner stelle des DCF Cods Pausen messe, so müsten doch mindestens 1 oder 2 Nullen Impulse unter 200ms dabei sein.

    Nomalerweise müste man doch den Timer1 verwenden können.
    Habe auch schon mal rumexperimentiert.
    Wo kann ich aber den Wert des Timers auslesen.
    Im Simmulator erhot sich weder der Wert des Timers noch einer zugeordneten
    Variablen.
    Start Timer
    Stop Timer
    Timer = a


  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    03.11.2004
    Beiträge
    370
    Den timer selber würde ich nicht auslesen. Aber mit dem Programm rnavr lässt sich ein timer prima berechnen, und es erzeugt beispielcode. der timer ruft dann ne routine auf in der du eine variable erhöhen kannst (incr x)

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    18.06.2005
    Alter
    34
    Beiträge
    17
    Wo gibt ws denn dieses Programm ?
    Mavr ?

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •