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 .![]()
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!
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.
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....
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!
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.
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?
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!
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.
OK nun weiß ich was du da mit Opcode meintest. Fehler ist nun auch weg hat Wunderbar geklappt. Noch einmal vielen vielen Dank
Lesezeichen