- LiFePO4 Speicher Test         
Ergebnis 1 bis 5 von 5

Thema: Verständniss für Interrupts?!?! völlige verwirrung!!

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.12.2004
    Beiträge
    206

    Verständniss für Interrupts?!?! völlige verwirrung!!

    Anzeige

    LiFePo4 Akku selber bauen - Video
    hallo!

    also, ich bastel grad an was, und verwende einen Atmega32.

    ich hab da ein programm, das eine temp.sensor abrfage durchführt, 5Sek wartet, taster abfrage und dann weiterläuft. den 2. sensor abfrägt, 5 Sek wartet, und dann wird ein tastet abgefragt, der dann den sprung in ein auswahlmenü durchführt, oder wenn nicht gedrückt, die schleife neu startet.

    mein prolbem ist es jetzt, daß das 5-10 sekunden dauert, bis der taster erkannt wird. ich will aber jetzt, daß der taster immer erkannt wird, wenn er gedrückt wird.

    dachte also, das geht mit interrupt. oder nicht??
    hab jetzt ewig im forum gesucht und gelesen. jetzt versteh ich weniger als vorher.

    wie ist das jetzt, wenn die schleife läuft, und ich den interrupt auslöse (wird doch über die interrupt eingönge gemacht) dann springt er immer in die isr??? oder nur, wenn das programm an einer stelle vorbeikommt, wo der interrupt dann abgefragt wird??? wo wäre dann der sinn eines interrupts? das hab ich ja jetzt auch schon so, daß ich mit gosub oder so in eine subroutine spring.

    unterbricht der interrupt das programm nicht IMMER?
    egal wo es sich befindet? und wird der interrupt nicht durch einen interruptcontroller erkannt, der das dann mit der vrktoren mcht??

    erklärt mir das doch bitte einer. und zwar in klartext.


    dank euch!!

  2. #2
    Gast
    Hi,

    wenn du einen Taster an z.B. INT0 ranbaust und den Interrupt aktivierst und die richtige Bedingung einstellst dann wird beim Tastendruck die ISR "sofort" angesprung. Ist diese Routine abgearbeitet, dann springt der MC zurück und wartet die restliche Zeit.

    Gruß Bernd

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.12.2004
    Beiträge
    206
    und wie muß die bedingung aussehen?
    wir dann der int0 (stell mir vor, daß der bei einer steigenden flanke kommen soll) "automatisch" ausgelöst, ode muß es da noch sowas wie "IF pin*.* ....then.." geben, oder reicht die aktivirung des interrupt bereits?
    denke, daß der interrupt reicht, weil ja der pin int0 gesetzt wird...oder?

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    27.05.2005
    Beiträge
    6
    Ein Interrupt wird nur bei zeitkritischen Aufgaben sinnvoll eingesetzt. Bei dieser Aufgabe von 5 bis 10 sek. bietet sich an den Tastereingang einfach öffter abzufragen, z.B. innerhalb der Warteschleife. Wenn du nur z.B. alle 10 ms abfragst und dann nach 10 ms nochmal, dann beides gleich sein muß dann ist der Taster auch gleich entprellt( für sicheres schalten).

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.01.2004
    Beiträge
    2.441
    wir dann der int0 (stell mir vor, daß der bei einer steigenden flanke kommen soll) "automatisch" ausgelöst, ode muß es da noch sowas wie "IF pin*.* ....then.." geben, oder reicht die aktivirung des interrupt bereits?
    denke, daß der interrupt reicht, weil ja der pin int0 gesetzt wird...oder?
    Es reicht, wenn du den Interrupt aktivierst, den entsprechenden Pin musst du nicht mehr selber abfragen.
    Ob der Interrupt auf steigende oder fallende Flanke reagiert, kannst du vorgeben.
    Beispielcode für Bascom Basic findest du in der Online-Hilfe und den mitgelieferten Beispielen.

Berechtigungen

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

Labornetzteil AliExpress