Wenn PinChange den AVR aus den SLEEPmode holen soll, muss auch PINCHANGE aktiviert sein
GIMSK -> PCINT aktivieren seite 19/20
POWER-DOWN lesen Seite 24
http://ww1.microchip.com/downloads/e...oc/doc1187.pdf
Wenn PinChange den AVR aus den SLEEPmode holen soll, muss auch PINCHANGE aktiviert sein
GIMSK -> PCINT aktivieren seite 19/20
POWER-DOWN lesen Seite 24
http://ww1.microchip.com/downloads/e...oc/doc1187.pdf
@avr_racer sofern ich das Bascom richtig deute, hat er exakt das gemacht
Das Problem ist ein technisches, irgendwas in dem Wakeup dauert bei einem Pin Change Interrupt zu kurz und löst deswegen nicht erfolgreich den WakeUp aus (ich kann nur das Errata dazu nicht mehr finden)
Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
nicht.
@coes Bascom ?? Er schreibt es doch in ASM und nur darauf bin ich eingegangen. Deine Aussage findest sich in meinen ersten POST im LINK Power Down Seite 24![]()
Bascom und ASM sehen für mich gleichartig aus, sorry für das Missverständnis
Mir war klar dass du darauf eingegangen bist, aber ich meinte mit meiner Aussage ja, dass er genau das Flag auch gesetzt hat oder nicht?!
in TMP1, GIMSK ; Interrupt an INT0 (Taster Aus/Ein) freigeben
sbr TMP1, 1<<INT0
out GIMSK, TMP1 ; und speichern.
Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
nicht.
WAHTT?? Gleichartig ?? Niemals Do/IF ELSE ist deutlich anders als genau zu wissen was welcher Befehl tut und NUR dann macht!
Es wird nur der INT0 als Interrupt freigegeben aber nicht PCIE
siehe Code
Code:.include "tn15def.inc" ;--------------------- ; Interrupt Vektoren ;--------------------- .cseg .org $0000 ; Interrupt Vektoren rjmp Init_int0 ;oder _PCIE .org $0001 rjmp INT0_addr .org $0002 rjmp PCI0_addr ;--------------------- init_INT0: ;PINB 2 im Simulator setzen in r16,GIMSK ori r16,(1<<INT0) out GIMSK,r16 in r16,MCUCR ori r16,( 1<<ISC01 | 1<<ISC00 ) ;Hier Flanken/levelaktivität aktivieren NUR FÜR INT0 out MCUCR,r16 sei rjmp start init_PCIE: ;PINB 0-5 kann gesetzt werden wird immer die gleiche Routine angesprungen in r16,GIMSK ori r16,(1<<PCIE) out GIMSK,r16 sei rjmp start start: rjmp start INT0_addr: nop nop nop nop reti PCI0_addr: nop nop nop nop nop reti
Geändert von avr_racer (01.10.2019 um 18:21 Uhr) Grund: Rechtschreibung
Lesezeichen