- LiFePO4 Speicher Test         
Ergebnis 1 bis 5 von 5

Thema: Eingangsimpulse zählen

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    23.07.2004
    Ort
    Regensburg
    Alter
    40
    Beiträge
    366

    Eingangsimpulse zählen

    Anzeige

    Powerstation Test
    Hallo,
    weiß einer von euch wie ich das in Bascom Programmieren muss, dass er einen Eingangsimpuls zählt, und sich diese in einer Variablen merkt.
    Nach z.B. Tausend solcher Impulse, soll er dann auf einem Disp immer von '0' beginnend um eins erhöhen.

    Wär um jede Hilfe dankbar

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.01.2004
    Beiträge
    2.441
    weiß einer von euch wie ich das in Bascom Programmieren muss, dass er einen Eingangsimpuls zählt, und sich diese in einer Variablen merkt.
    Guck dir einfach mal das Beispielprogramm Int0.bas an, das bei Bascom dabei ist. Das macht schon fast genau das was du haben willst.

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    23.07.2004
    Ort
    Regensburg
    Alter
    40
    Beiträge
    366
    Danke, aber wie Funzt des genau,

    -dass er die Impulse am Eingang zählt.

    - Wie mach ich das, dass sich die Zahl nach tausend Impulsen um eins erhöt??

  4. #4
    Gast
    Indem du die Impulse in einer Variablen in der ISR hoch zählst und bei 1000 einfach du Variable auf Null setzt und eine zweite Variable inkrementierst.
    So schwierig?
    Kann zwar kein Bascom sondern nur C, das Prinzip sollte aber funktionieren.

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.01.2004
    Beiträge
    2.441
    Danke, aber wie Funzt des genau,
    -dass er die Impulse am Eingang zählt.
    Genau das wird doch in dem Beispiel int0.bas gemacht, nur halt bis 2 statt bis 1000. Die 2 durch eine 1000 zu ersetzen bekommst du doch sicher alleine hin.


    Code:
    Rem The Interrupt Handler For The Int0 Interrupt
    Int0_int:
       Incr Count
       If Count = 2 Then
          Print "Int 0 occured"
          Count = 0
       End If
    Rem You Can Perform More Actions Here
    Return

    - Wie mach ich das, dass sich die Zahl nach tausend Impulsen um eins erhöt??
    Indem du statt dem Befehl Print "Int 0 occured" einfach deine Zählervariable um 1 erhöhst.
    Wenn deine Zählervariable z.B. zaehler heisst, heissst der entsprechende Befehl Incr zaehler


    Die ganze Aktion funktioniert natürlich nur, wenn due als Eingang einen Pin mit Hardware Interrupt verwendest.
    Wenn an diesem Pin dann das Signal wechselt wird immer automatisch die Routine Int0_int: aufgerufen.

    Bau einfach erst mal deine Schaltung auf und lade das Beispiel int0.bas in den Controller. Wenn das dann funktioniert kannst du das Programm weiter anpassen.

Berechtigungen

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

Solar Speicher und Akkus Tests