mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Problem mit MOV A,SBUF


Autor: Werner Luck (welu)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Bin gerade dabei mich auf den AT89C4051 einzuarbeiten.
Habe ein Programm mit der seriellen Schnittstelle geschriben welches
beim Empfang eines Wertes diesen um 10 erhöht und anschließend wieder
zurücksendet.
Doch irgendwie will der Inhalt von SBUF nicht in den Akku übertragen
werden - siehe Sourcecode->

isr_ser:        PUSH  PSW
    JBC  TI,end_isr_ser  ;wenn TI gesetzt -lösche und          springe 
zum
Label
    MOV  A,SBUF    ;wenn RI: SBUF in den Akku
    MOV  st_received,A  ;Empfangenes Byte abspeichern
    SETB  received  ;signalisieren Byte empfangen
    CLR  RI    ;Empfangsbit löschen
end_isr_ser:  POP  PSW
    RETI


Danke

Werner

Verwende Keil µVision2

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schmeiß mal das PUSH PSW und POP PSW aus dem Unterprogramm raus, sowas
macht man nicht.

Aber im Interrupthandler kannst Du es zur Vorsorge drin lassen, auch
wenn bisher keine Instruktion das PSW ändert, vielleicht erweiterst Du
das Programm noch.

Was aber reingehört, ist das Sichern der verwendeten Register, in
Deinem Fall des ACC.


Was auf keinen Fall geht, ist fürs Empfangen ein Interrupt und Senden
im Polling, da beides den gleichen Interruptvektor hat.

Du mußt Dich also entscheiden, entweder Interrupt odr Polling für
beides.


Peter

Autor: Werner Luck (welu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Peter für die Hinweise.

Werner

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.