-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: Zähler mit Bascom

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    27.01.2006
    Beiträge
    82

    Zähler mit Bascom

    Anzeige

    hallo!

    ich möchte einen Zähler proggen.
    habe im Internet leider keine Beispielprogramme gefunden.
    also wenn am einem Pin 3 mal (innerhalb von 10 sekunden) high gemessen wird, soll an einem anderen Pin high signal für anliegen.
    wie mache ich das?
    Ein Beipiel vielleicht?
    Danke

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.112
    Hallo,
    was hat das mit einem Zähler zu tun? Oder meinst du, jeweils 3 Impulse an einem Pin sollen durch einen Puls an einem anderen ersetzt werden, also praktisch ein Teiler : 3?
    Wie lange soll das high am Ausgang erhalten bleiben?
    Kommen die Eingangsimpulse von einem Taster (Prellen!) oder von einer Art Impulsgeber?

    Gruß

    Rolf

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    27.01.2006
    Beiträge
    82
    ok, ich erzähle es genauer.
    Ich bin dabei einen GSM-pager für das auto zu bauen. das Handy im auto soll mich anrufen, wenn die Alarmanlage losgeht.
    Dazu wollte ich den Signal von der Sirene verwenden.
    also wenn die Sirene angeht (wird mit pin von AVR verbunden), soll das handy einen At-Befehl ans Handy über UART senden, dass das handy mich anruft.
    soweit, so gut. aber die Sirene macht auch Töne bei Schärfen, entschärfen der Alarmanlage. Peep und peep-peep (typisch, kennt wohl jeder).
    Dann soll das handy mich natürlich nicht anrufen. Sondern erst wenn es dauerhaft peept. Vorwarnung peep-peep-peep-peep, alarm uuuuuuuuaaaaaaaaa-uuuuuuuuuuaaaaaaaa
    Verstehst du?

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    46
    Beiträge
    765
    Das wäre eine Möglichkeit. Allerdings nicht getestet...
    Code:
    Dim Sek As Byte
    Dim Ms As Integer
    Dim Zaehler As Byte
    
    Config Pinb.0 = Input
    Config Portb.1 = Output
    Config Portb.2 = Output
    
    Alarmeing Alias Pinb.0
    Ausgang Alias Portb.1
    Led Alias Portb.2
    
    Do
       Gosub Msek
    
       If Alarmeing = 1 Then
          If Zaehler = 0 Then
             Ms = 0
             Sek = 0
          End If
    
          Zaehler = Zaehler + 1
    
          If Zaehler = 3 Then
             Set Ausgang
             Sek = 0
          End If
          Do
             Gosub Msek
          Loop Until Alarmeing = 0
       End If
    
    Loop
    End
    
    
    Msek:                                                       'Jede Millisekunde
        Waitms 1
        Ms = Ms + 1
        If Ms = 1000 Then
           Sek = Sek + 1
           Ms = 0
        End If
        If Sek > 10 Then
          Zaehler = 0
          Sek = 0
          Toggle Led
          Reset Ausgang
        End If
    
    Return
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    27.01.2006
    Beiträge
    82
    Danke, werde ich mal probieren

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    27.01.2006
    Beiträge
    82
    Also ich werde dein code etwas bearbeiten, und jemand guckt, ob das so richtig ist:



    Dim Sek As Byte
    Dim Ms As Integer
    Dim Zaehler As Byte

    Config Pinb.0 = Input


    Alarmeing Alias Pinb.0


    Do


    Alarmeing = Alarmeing + 1

    If Alarmeing = 3 Then
    Gosub Alarm
    End If


    Loop
    End


    Alarm:
    wait 1
    print 'ausgabe über UART
    Input "atd+49xxxxxxxx;"
    wait 40
    print 'zur Sicherheit, falls handy Handy nicht gewählt hat
    Input "atd+49xxxxxxxx;"
    wait 10

    Return

    kann das so funktionieren?

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    27.01.2006
    Beiträge
    82
    Hier der code:


    $regfile = "m16def.dat"
    $crystal = 4000000
    $baud = 19200

    Config Pinb.0 = Input
    Alarming Alias Pinb.0
    Dim Alarming As Byte

    Do

    Alarming = Alarming + 1 '!!!!!!!!!!!!!!

    If Alarming > 2 Then
    Gosub Alarm
    End If

    Loop
    End



    Alarm:
    Wait 1
    Print
    Input "atd+49xxxxxxx;"
    Wait 40

    Return

    Bei der Zeile mit !!!!!!!!!! mekert der Compiler.
    kann das einer vielleicht korriegieren?
    Danke

  8. #8
    Erfahrener Benutzer Roboter Genie Avatar von Michael
    Registriert seit
    17.01.2004
    Ort
    Karlstadt
    Alter
    48
    Beiträge
    1.254
    Hallo Alexander,

    der Compiler meckert nicht nur, er sagt dir sogar was ihm nicht passt. Nur lesen mußt du es selber.
    Warten wir mal ab, was die Jungs vom µC.net dazu sagen.

    Gruß, Michael

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    27.01.2006
    Beiträge
    82
    Er sagt invalid datatyp.
    Ich weiss, es sieht auch komisch aus, aber ich weiss nicht, wie es richitg ist.
    Vielleicht kann mir einer dabei helfen

  10. #10
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    18.12.2006
    Ort
    Oderberg
    Alter
    25
    Beiträge
    870
    Alarming Alias Pinb.0
    Dim Alarming As Byte
    und
    Alarming = Alarming + 1

    Macht irgendwie wenig Sinn
    kannst ja gleich PortB.0 = 2 schreiben
    MfG Christopher \/


Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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