www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 16F84, IRQ's und Sleep


Autor: Binnesmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du denn die Interrupt abhandlung aktiviert und den Externen 
Interrup auch?
Es funktioniert auch nur mit einem Externen Interrupt, glaub ich!
mfg

Autor: Binnesmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Manfred Glahe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Binnesmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.