-         

Ergebnis 1 bis 9 von 9

Thema: Probleme mit Interrupts

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    18.05.2005
    Beiträge
    53

    Probleme mit Interrupts

    Anzeige

    Hallo,
    wie muss ich generell einen Taster an einem Interrupteingang anschließen? Kann ich über die Pull-up Widerstände des ATMegas die Pins auf high ziehen und dann über einen Taster auf Ground? Kann ich hier die fallende Flanke nehmen? Oder was wäre den besser? Brauche ich auch eine externe Beschaltung??

    Kann es sein, dass ein Befehlssatz in einer Interruptschleife nur eine gewisse Zeit dauern darf? Kann man in einer Interruptschleife auf alle Variablen zugreifen?

    ich hoffe ihr könnt mir weiterhelfen.
    mfg

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.112
    Du kannst den Taster sicherlich so anschliessen. Beim Drücken kommt dann die fallende Flanke, beim Loslassen die steigende. Wie du das machst hängt meistens davon ab, wie man die äußere Schaltung am einfachsten hinbekommt.
    Im Interrupt ist es immer gut, so schnell wie möglich fertig zu sein, weil der µC so lange auf nichts anderes reagiert. Aber wenn er nichts anderes machen muss, kannst du auch für immer da drin bleiben.
    Auf welche Variablen du zugreifen kannst, hängt wohl mal von der verwendeten Programmiersprache ab. Bascom z.B. ist da sehr freizügig, weil alle Variablen automatisch global sind, wenn sie nicht explizit in einer Sub oder Funktion als LOCAL dimensioniert wurden. In C ist das etwas anders, aber das können die Experten sicherlich besser erklären.

    Gruß Rolf

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    18.05.2005
    Beiträge
    53
    vielen dank für die Antwort.
    Brauche ich als externe Beschaltung irgendwelche Widerstände, Kondensatoren, ... ?
    Ja, ich verwende Bascom. Wieso ist es zum Beispiel nicht möglich einen Port (LED am Ausgang) über einen Interrupt zu togglen?? Es funktioniert bei mir nicht!!! Wie könnte ich den den Taster entprellen? Schaltung?

    mfg

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.112
    Nein, nur für die Taster brauchst du nichts an externen Bauelementen.
    Zum Entprellen schau mal in der Help unter DEBOUNCE. Das kannst du auch software-mäßig machen.
    Der Interrupt kann sicherlich den Ausgang toggeln.
    Poste mal den Code, dann kann man sehen, was falsch ist. Und gib ein paar Details zu der Beschaltung der LED und woher der Interrupt kommt.

    Gruß

    Rolf

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    18.05.2005
    Beiträge
    53
    On Int0 Taste_rot
    On Int1 Taste_gruen

    Enable Interrupts

    Enable Int1
    Enable Int0

    Config Int0 = Falling
    Config Int1 = Falling

    ----

    Taste_rot:
    Toggle Portd.5
    Return

    ich schalte mit dem Ausgang nur eine LED, aber es funktioniert nicht. Man kann die LED nur einschalten, aber nicht mehr ausschalten.

    Wie funkt. das mit dem DEBOUNCE? muss ich das in eine schleife tun?

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    18.05.2005
    Beiträge
    53
    kann mir bitte wer die "debounce" Funktion erklären?

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    27.01.2005
    Ort
    München
    Beiträge
    20
    Ist in der Hilfe perfekt beschrieben.

    MfG

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    18.05.2005
    Beiträge
    53
    stimmt der Code so:
    Config Debounce = 30

    Debounce Pind.2 , 0 , Taste_gruen
    Debounce Pind.3 , 0 , Taste_rot

    es funktioniert nicht!! Muss ich das in eine While Schleife schreiben?

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    18.05.2005
    Beiträge
    53
    funktioniert die "debounce" Funktion auch bei interrupts?

Berechtigungen

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