mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik XORFW funktioniert nicht auf PORTA


Autor: J. A. (teh-jar)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi, ich habe eine Frage zu den folgenden zwei einfachen Programmen:
STATUS equ 03
TRISA  equ 85
PORTA  equ 05
COUNT1 equ 20
COUNT2 equ 21

 bsf   STATUS,5
 clrf  TRISA
 bcf   STATUS,5
 movlw 02
 movwf PORTA
 clrf  COUNT1
 clrf  COUNT2
Hier unterscheiden sich die beiden Programme jetzt:
Programm 1:

Start
 bsf   PORTA,1
 call  Delay
 bcf   PORTA,1
 bsf   PORTA,2
 call  Delay
 bcf   PORTA,2
Programm 2:
 movlw 06

Start
 call  Delay
 xorwf PORTA
Ab hier sind beide Programme wieder gleich:
goto  Start

Delay
 decfsz COUNT1
 goto   Delay
 decfsz COUNT2
 goto   Delay
 return

 end

RA1 und RA2 sollten meiner Meinung nach in beiden Fällen abwechselnd 
blinken. Beim zweiten Programm ist das Ergebnis auf meinem PIC16F627 
aber, dass erst RA1 dann RA2 angeht und danach nichts mehr passiert. 
Woran kann das liegen? Wenn ich das XORWF durch ein ANDWF austausche, 
geht RB1 nach dem ersten Delay aus. Bei IORWF tritt der gleiche Zustand 
wie bei XORF ein und bei COMF gehen alle RA an. Es ist, als würde der 
PIC beim Lesen von PORTA nur 0 lesen. Ist dem so? Und, wenn ja, warum?

teh-JaR

Autor: J. A. (teh-jar)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi noch mal.
Das hier funktioniert ohne Probleme:
__config 3D18
STATUS equ 03
PORTA  equ 05
TRISA  equ 85
CHANGE equ 20
COUNT1 equ 21
COUNT2 equ 22

 bsf    STATUS,5
 clrf   TRISA
 bcf    STATUS,5
 movlw  6
 movwf  CHANGE
 clrf   COUNT1
 clrf   COUNT2
 movlw  2
 movwf  PORTA

Begin
 call   Delay
 xorwf  CHANGE,0
 movwf  PORTA
 goto   Begin

Delay
 decfsz COUNT1
 goto   Delay
 decfsz COUNT2
 goto   Delay
 return

 end
Ich wüsste trotzdem gerne, woran es liegt, dass von PORTA nicht gelesen 
werden kann, wenn PORTA als Ausgang geschaltet ist und wo ich diese 
Information im Datenblatt finden kann.

teh-JaR

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.