- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 10 von 10

Thema: INT0 funktioniert nicht

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    73
    Beiträge
    11.077
    Hallo!

    Ich bin ASMan und kenne "Cäh" gar nicht. Ich habe das Problem beim PIC per Verbinden des INT0 Pins mit anderem Pin gelöst: https://www.roboternetz.de/community...l=1#post559630 .
    MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2009
    Beiträge
    437
    Nur weil Du SE im MCUCR setzt, schläft da noch lange nix, das würde erst nach dem Opcode SLEEP passieren. Unter C gibt's für die Powermodes 'ne Lib, verwende am Besten die Lib.

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    08.07.2008
    Beiträge
    49
    Oh total überlesen im Datenblat...

    Aber das erklärt doch noch nicht warum er den Code in der INT0 ISR nicht ausführt. Er soll ja eigentlich genau das machen was auch beim Timer1 passiert und mit dem Timer1 geht es....

  4. #4
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    73
    Beiträge
    11.077
    Sorry, aber ich mache nur das minimalste, was ich brauche.
    MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2009
    Beiträge
    437
    Da im Sleep der Hauptcode des uC nicht weiter ausgeführt wird, dürfte sich der tatsächliche Ablauf vom gedachten Ablauf doch deutlich unterscheiden. Damit ist natürlich möglich, dass der INT0 an anderer Stelle disabled wird. Bring doch erst mal Deinen Code so in Ordnung, dass er vom Powermode her so klappt, wie gedacht.
    Es macht keinen Sinn sich über das wie und warum eines anderen Fehlers Gedanken zu machen, wenn der offensichtlichste Fehler noch nicht behoben ist.
    Ob der INT0 dann später tatsächlich anspricht, lässt sich durch Wacklen eines Pins in der ISR testen.

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    08.07.2008
    Beiträge
    49
    OK sehr vielen dank werde ich morgen mal machen. Werde einfach überall da wo ich vorher das se Bit gesetzt habe die Funktionen:

    set_sleep_mode(SLEEP_MODE_IDLE);
    sleep_mode();

    nutzen. In den beiden ISR werde ich auch das löschen des SE Bits entfernen.

    Mich würde aber schon einmal interessieren wo ich im Datenblatt die so genannte SLEEP instruction finde.
    Weiß das jemand?

  7. #7
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    73
    Beiträge
    11.077
    Normaleweise befindet sich der "sleep" Befehl in "Instruction Set Summary" vom Datenblatt (DB).
    MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2009
    Beiträge
    437
    SLEEP ist wie schon geschrieben ein Opcode, Du könntest den per Inline Assembler einfügen, oder eben die entsprechenden Funktionen der Lib verwenden, die das alles für Dich machen.

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    08.07.2008
    Beiträge
    49
    OK nun weiß ich was du da mit Opcode meintest. Fehler ist nun auch weg hat Wunderbar geklappt. Noch einmal vielen vielen Dank

Ähnliche Themen

  1. INT0 Interrupt funktioniert nicht
    Von Jason07 im Forum Assembler-Programmierung
    Antworten: 12
    Letzter Beitrag: 22.03.2013, 06:58
  2. Int0 wird bei direkt bei 'Enable Int0' ausgelöst - Warum?
    Von malthy im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 30.08.2010, 18:10
  3. RC5 Abfrage funktioniert per Polling, aber nicht per INT0
    Von luvat im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 17.03.2008, 04:10
  4. Int0 will einfach nicht - oder bin ich zu b....
    Von Raimond im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 9
    Letzter Beitrag: 27.11.2006, 20:28
  5. int0 bei Atmega162 will nicht
    Von MarkusH im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 07.01.2005, 19:49

Berechtigungen

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

Solar Speicher und Akkus Tests