-         

Ergebnis 1 bis 7 von 7

Thema: AVR reagiert nicht auf Tastendruck

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.06.2005
    Beiträge
    108

    AVR reagiert nicht auf Tastendruck

    Anzeige

    Hallo

    Ich habe das Problem dass mein AVR den Tastendruck vollkommen kalt lässt...

    Die Taster sind zwischen Masse und AVR Eingang geschalten.
    Hier der Code

    Code:
    Declare Sub t_0
    Declare Sub t_1
    
    Portd.4 = 1                                                 
    Portd.5 = 1
    
    Do 
    
    Debounce Pind.4 , 0 , t_0 , Sub                     
    Debounce Pind.5 , 0 , t_1 , Sub
    
    Loop
    End
    
    
    Sub t_0
         Waitms 2000
    End Sub
    
    Sub t_1
         Waitms 4000
    End Sub

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    15.01.2005
    Ort
    Niederdorfelden / Hessen
    Alter
    49
    Beiträge
    368
    Hi quad,

    abgesehen vom entprellen und warten macht Dein Programm nichts.
    Welche Reaktion hast Du erwartet ?

    Zu den Tastern fällt mir das Thema Pull-Up-Widerstände ein. Die wurden vor kurzem hier ausreichend diskutiert.
    Port d.4 und d.5 sind definiert, werden aber nicht weiter verwendet. Welche Funktion sollten diese Pin's ausführen ??

    Gruß Klaus
    Eine verrückte Idee ist besser als keine

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.06.2005
    Beiträge
    108
    Ich habe die Aktionen die der AVR machen sollte absichtlich durch Waitms xxxx ersetzt. Spielt ja keine Rolle und das ist übersichtlicher als wenn ich nun 10 Zeilen Code einsetze.

    PC4 und PC5 sind meine Eingänge für die 2 Taster

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    15.01.2005
    Ort
    Niederdorfelden / Hessen
    Alter
    49
    Beiträge
    368
    Hi quad,

    sorry wegen der Pins, da war ich wohl von Blindheit erschlagen.

    Das Beispielprogramm DEBOUN.BAS ist folgendermasen aufgebaut.

    '-----------------------------------------------------
    ' DEBOUN.BAS
    ' Demonstrates DEBOUNCE
    '-----------------------------------------------------
    Config Debounce = 30 'when the config statement is not used a default of 25mS will be used


    'Debounce Pind.0 , 1 , Pr 'try this for branching when high(1)
    Debounce Pind.0 , 0 , Pr , Sub
    Debounce Pind.0 , 0 , Pr , Sub

    'When Pind.0 goes low jump to subroutine Pr
    'Pind.0 must go high again before it jumps again
    'to the label Pr when Pind.0 is low

    Debounce Pind.0 , 1 , Pr 'no branch
    Debounce Pind.0 , 1 , Pr 'will result in a return without gosub
    End

    Pr:
    Print "PIND.0 was/is low"
    Return
    Demnach liegt Dein Problem in der Definition der Subroutine.

    Der Anfang der Subroutine beginnt mit einer Markendefinition und endet mit einem Return.

    mit :
    Code:
    Declare Sub t_0 
    Declare Sub t_1 
    
    Portd.4 = 1                                                  
    Portd.5 = 1 
    
    Do 
    
    Debounce Pind.4 , 0 , t_0 , Sub                      
    Debounce Pind.5 , 0 , t_1 , Sub 
    
    Loop 
    End 
    
    t_0 :
         Waitms 2000 
    Return
    
    t_1 :
         Waitms 4000 
    Return
    müsste es funktionieren.

    Gruß Klaus
    Eine verrückte Idee ist besser als keine

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.06.2005
    Beiträge
    108
    Mein Programm sieht nun so aus aber es geht immer noch nicht?!

  6. #6
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Sag was du willst, aber es muß was mit den Tastenanschlüssen auf sich haben. Das Programm kann da nichts dafür.
    Wenn die Pins nicht wenigstens EINMAL auf High stehen, tut der debounce nix.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.06.2005
    Beiträge
    108
    Wie meinst du das?
    Also wie gesagt, ich bin Anfänger in der Sache ich kenne mich da noch nicht so super aus.

    Die Taster sind an den richtigen Pins angeschlossen und hängen, ich sags nochmal kurz, auf Masse.
    Oder muss ich die an 5V hängen?

Berechtigungen

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