Mahlzeit, ich dachte immer, daß ich den PIC aus dem Sleep Mode mit dem IRQ wieder aufwecken kann. Das scheint jetzt aber nicht zu funktionieren. Kennt jemand die Problematik? Gruß Binnesmann
Hast du denn die Interrupt abhandlung aktiviert und den Externen Interrup auch? Es funktioniert auch nur mit einem Externen Interrupt, glaub ich! mfg
Hi, ich habe nur die externen IRQ's belegt. Habe dabei den normalen ext. IRQ und den Upper 4 Pin IRQ aktiviert. Geht leider nicht. Wenn ich in einer Endlosschleife laufe, dann komme ich in die IRQ Routine rein. Im Sleep Mode nicht. Ich möchte damit eine Fernbedienung bauen. Möchte aber zeitgleich keine große ext. Hardware haben. Soll eine Fernbedienung für den Schlüsselbund mit max. 5 Tasten werden. Somit würden die 5 IRQ Leitungen reichen und ich bräuchte nur die Taster als ext. Hardware. Im Sleep Mode reicht die Batterie dann auch 10 mal so lange. Gruß Binnesmann
Hallo, das geht sogar aus mehreren Zuständen herraus! Einer davon ist der gut zu nutzende Change On Port IRQ auf Portb. Allerdings ist zu beachten, daß das Anlaufen dauert (bis zu Sekunden). Mit dem Scope mal den Osz Pin beobachten und die Zeit ablesen. Steht aber alles im Datenblatt gut beschrieben. MfG Manfred Glahe
Es ist bestimmt nicht schädlich wenn du deinen Quell-Code veröffentlichst, oder? denn aus der fehrne zu sagen wo der fehler sitzt ist kaum möglich.
Habe endlich meinen Internetzugang wieder hinbekommen.
;Pic Initialisierung
org 0 ;Programmstart
jmp Init
org 4 ;Start nach Interrupt
jmp senden
Init mov !ra,#00000b ;Port A Ausgabe
mov !rb,#0ffh ;Port B Eingabe
mov ra,#00000b ;Port A alles low
mov rb,#00h ;Port B alles low
setb ActivLED ;Ich bin wach
setb DataOut ;Breakpegel beenden
mov TasteRet,#00h
clrb INTCON.0 ;Upper 4 Bits / Port B Interruptflag
clrb INTCON.1 ;Ext. IRQ Flag
clrb INTCON.2 ;RTCC Overflowflag
setb INTCON.3 ;PortB Interrupt zulassen
setb INTCON.4 ;Externen Interrupt zulassen
clrb INTCON.5 ;RTCC Interrupt disable
clrb OPTION.6 ;Externen Interrupt bei Wechsel von High nach Low
setb INTCON.7 ;Interupts zulassen
clrb ActivLED ;Ich geh wieder schlafen
sleep
In der Routine mache ich nichts anderes als die Initialisierung. Das
klappt auch alles wenn ich statt dem sleep eine Endlosschleife
reinsetze. In dieser Version lande ich allerdings nie in der
Interruptroutine.
Gruß Binnesmann
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.