-         

Ergebnis 1 bis 3 von 3

Thema: Picaxe aufeinander folgende flanken am eingang erkennen

  1. #1
    gast mirco13
    Gast

    Picaxe aufeinander folgende flanken am eingang erkennen

    Anzeige

    Hallo Leute.

    Ich möchte am picaxe 08M an einem Eingang 3 aufeinander folgende Flanken erkennen. Wenn nach der ersten Flanke weitere ausbleiben, soll das programm aber wieder an den Anfang zurückspringen.

    Kann mir da mal jemand ne Hilfestellung bieten?
    hatte es bisher so versucht um erstmal die 3 Flanken zu erkennen. Wenn es dann klappen würde, würd ich mich daran machen bei Ausbleiben folgender Pulse zurück zum Anfang zu springen. Ergibt aber bisher nicht meine Anforderung:

    loop1:
    b1 =0 `setze b1 auf 0 zurueck
    goto loop

    loop:
    readadc 4,b0 `lese den Analogwert in b0
    if b0 < 50 then goto zaehlen `wenn der Wert in b0 kleiner 50 ist gehe zu zaehlen
    goto loop


    zaehlen:
    for b1 = 1 to 3 `vom 1. bis zum 3. Takt
    pause 1000 `(Pause 1sec)
    goto loop `springe zurück zu loop
    next b1 `b1 +1
    goto timer `wenn 3 Takte eingegangen sind gehe zu timer



    timer:

    high 1
    wait 5
    low 1
    goto loop1
    Hat einer von Euch schonmal etwas ähnliches gemacht und kann mir Tipps geben? Vielleicht bin ich ja auch voll auf dem falschen Weg. Denn momentan scheiter ich noch an der Erkennung der 3 Pulse

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    05.01.2006
    Beiträge
    18
    Hi Mirco,

    wie sieht's denn mit Deinem IR-Sender aus?

    In diesem Fall wäre es vielleicht sinnvoller, den Interrupt zu nutzen. Außerdem dürfen bei einem PICAXE die Flanken natürlich nicht zu schnell aufeinander folgen ... Du weißt ja jetzt, wie lange die Abarbeitung eines Basicbefehls in etwa dauert ...

    Nice week,
    Zardoz

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.08.2004
    Alter
    38
    Beiträge
    105
    Den Ir Sender habe ich leider noch immer nicht hinbekommen (Den RC5 Code).

    Das Problem mit den aufeinander folgenden Flanken habe ich gelöst:

    loop:
    readadc 4,b0 `lese den Analogwert in b0
    if b0 < 150 then goto takt2 `wenn der Wert in b0 kleiner 150 (ca kleiner 3 Volt) ist gehe zu zaehler 2
    goto loop


    takt2:
    Wait 4 `warte 4 sec


    `4 Mal pruefen im 500ms Takt ob ein neues Signal ankommt wenn nicht, zurück zu loop

    readadc 4,b0 `lese den Analogwert in b0
    if b0 < 150 then goto timer `wenn der Wert in b0 kleiner 150 (ca kleiner 3 Volt) ist gehe zu zaehler 2
    pause 500
    readadc 4,b0
    if b0 < 150 then goto timer `wenn der Wert in b0 kleiner 150 (ca kleiner 3 Volt) ist gehe zu zaehler 2
    pause 500
    readadc 4,b0
    if b0 < 150 then goto timer `wenn der Wert in b0 kleiner 150 (ca kleiner 3 Volt) ist gehe zu zaehler 2
    pause 500
    readadc 4,b0
    if b0 < 150 then goto timer `wenn der Wert in b0 kleiner 150 (ca kleiner 3 Volt) ist gehe zu zaehler 2
    pause 500

    readadc 4,b0
    if b0 > 205 then goto loop `wenn der Wert in b0 groesser 205 (ca 4 Volt) ist gehe zurueck zu loop


    timer:

    high 1
    wait 3
    low 1
    wait 3
    goto loop
    Problem ist also damit gelößt.

Benutzer, die dieses Thema gelesen haben: 0

Derzeit gibt es keine Benutzer zum Anzeigen.

Berechtigungen

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