- 3D-Druck Einstieg und Tipps         
Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 28

Thema: Ext. Interrupt löst nur unregelmässig aus

  1. #1
    Murus
    Gast

    Ext. Interrupt löst nur unregelmässig aus

    Anzeige

    Praxistest und DIY Projekte
    Hallo zusammen,

    ich habe ein Lichtschranke, die am Int1 Eingang eines Mega16 hängt.
    Solange nichts die Lichtschranke durchfährt, liegt eine 0 am Eingang an. Ist was dazwischen, gibts ne 1.
    Ich hab den Interrupt so eingestellt, dass er bei einer L==>H Flanke auslösen soll. Also sobald etwas durch die Schranke rauscht. Hier die Initialisierung:

    On Int1 Lichtschranke
    Mcucr.2 = 1
    Mcucr.3 = 1
    Enable Interrupts
    Enable Int1

    Doch... Der Interrupt löst nur sehr unregelmässig aus... Eigentlich fast immer nur jedes zweite Mal, wenn etwas durch die Schranke geht. (Das 1 liegt an, aber es gibt keinen Interrupt)...
    Ändere ich die Auslösecharakteristik des Interrupts auf "Change", also dass er triggern soll, sobald die Flanke wechselt, dann löst er jedes mal korrekt aus, einfach zwei mal, was ich vermeiden möchte... Die Hardware scheint mir in Ordnung, nur: wieso löst er nicht immer aus.. ?
    Dasselbe Phänomen des "nicht immer auslösens" hab ich, wenn ich ihm sage, er soll von H zu L triggern... Funktioniert auch nicht immer... Komishce Sache.. Sobald er auf einen Flankenwechsel triggern soll, triggert er erfolgreich auf beide Flanken, und zwar immer.
    Hab ich was vergessen?

    Herzlichen Gruss
    Mario

  2. #2
    Murus
    Gast
    Hmm, vielleicht doch noch die Hardware der Lichtschranke.
    Siehe Anhang. Hab halt das Case eines Optokopplers genommen, aber man wird wohl drauskommen...
    Die Lichtschranke ist eine KTIR0621DS.
    DB: http://www.datasheetcatalog.com/dat.....shtml
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken lichtschranke_-_ansteuerung.jpeg  

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Hallo,

    bei der URL kommt nur "Not Found", weil die Punkte so mit drinstehen !

    Kann es evtl. sein, das die Flanke nicht Steil genug ist, weiss jetzt nicht wie das genau zu sein hat, das der AVR das auch als solches erkennt
    Evtl. mal einen Schmitt-Trigger dazwischen bauen.

  4. #4
    Murus
    Gast
    Nunja... bei Triggerung auf beide Flanken erwischt er diese immer..

    Hier das Linktier:
    http://www.datasheetcatalog.com/data...IR0621DS.shtml

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.188
    Versuchs doch mal nicht mit dem Interrupt, sondern mit dem Analog Komperator.
    Sollte es Wirklich an der Flankensteilheit liegen, müsste es damit eigentlich funktionieren.
    Es sei denn du brauchst den Komperator anderweitig...

  6. #6
    Murus
    Gast
    Geht net... Chip schon verlötet (SMD) und auf der Unterseite der Platine, die bereits eingebaut ist...

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.188
    Kommst Du noch an den Optokoppler ran ?
    Eventuell kannst Du dem Teil ja noch einen Komperator oder Transistor nachschalten um die Flankensteilheit zu erhöhen ?

  8. #8
    Murus
    Gast
    Oh, bei mir ists ne Lichtschranke, hab nur den Optokoppler als Symbol genommen.
    Hab nochmals nachgeschauen - auch wenn er auf beide Flanken triggern soll, dann erwischt er die fallende fast nie...
    Aber das ist doch doof... Erkennt der AVR nun die Flanke, oder ein Wechsel von 0/1 oder 1/0? Erkennt er am Interrupteingang langsame Zustandswechsel nicht?

  9. #9
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.188
    Erkennt er am Interrupteingang langsame Zustandswechsel nicht?
    Ich fürchte fast das es so ist, auch wenn ich im Datenblatt auf die schnelle keine Angabe darüber gefunden hab.
    Da steht nur vom Timing bei Wakeup was drin.
    Eventuell kann man ja mal im Datenblatt von nem ATMEGA 8 oder ATMEGA 32 schauen.
    Ich denk nicht das die Interruptschaltungen bei den Chips wesentlich anders sind.

    Der INT 2 ist anscheinend intern anders aufgebaut, wenn Du da rankommst kannst Du ja mal die beiden Pins brücken und den INT 0 softwaremäßig abschalten und deine Routine im INT 2 ausführen.

  10. #10
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    30.07.2005
    Beiträge
    569
    Ich denke eher, das der Wurm in der Software liegt.
    Viel zu lange Interupt Routinen zeigen beispielsweise exakt diese Symtome. Allerdings kann man da ohne Code nicht allzuviel machen.
    Grundregeln des Forenpostings:
    1. Nutze niemals die Suchfunktion!
    2. Überprüfe niemals die Topics nach Ähnlichkeiten!
    3. Schreibe alles in hellgelb!

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

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

LiFePO4 Speicher Test