Forum: Mikrocontroller und Digitale Elektronik MPLAB 3.26 Simulator USART


von Kai (Gast)


Lesenswert?

Hallo,
ich experementiere gerade mit dem MPLAB PIC Simulator und einem 
Assembler Programm das später auf einem PIC18F46K80 mit einem 64MHz 
externen Oscillator laufen soll.
Nun wollte ich mich mit USART auseinander setzten und versuchen ein paar 
Bytes zu senden aber dabei sind mir ein paar Verhaltensweisen vom 
Simulator aufgefallen die nach meinem Verständnis nicht ganz richtig 
sind.
1
00. start:
2
3
01. MOVLW H'1'
4
02. MOVWF TX1REG,0
5
03. NOP
6
7
04. MOVLW h'2'
8
05. MOVWF TX1REG,0
9
06. NOP
10
11
07. loop:
12
13
08. BTFSS PIR1,TX1IF
14
09. BRA $-h'3'
15
16
10. MOVLW h'22'
17
11. MOVWF TX1REG,0
18
12. NOP
19
20
13. BRA loop

Laut Datenblatt dauert die Übertragung vom TX1REG ins TSR sowie die 
Aktualisierung der TX1IF ein Instruction Cycle.
Sprich die TX1IF ist erst ein Instruction Cycle nach dem Laden des 
TX1REG gültig.

Wenn ich nun die Zeilen [0;4] ausführe bleibt TX1IF gesetzt und es 
ändert sich nichts.
Aber nachdem die Zeile 5 ausgeführt wurde wird die TX1IF sofort 
gelöscht, dabei sollte das doch eigentlich erst passieren wenn ich noch 
ein Instruction Cycle warte sprich Zeile 6 mit dem NOP ausgeführt habe.

Desweiteren bis die Bedienung in Zeile 8 dann erfüllt wird vergehen 
140540 Takte was in etwa 8,78 ms entspricht bei meiner Baudrate von 8192 
sollten aber ca. 1 ms vergehen.

Das USART Modul habe ich vollgendermaßen konfiguriert:
1
    MOVLW   H'E7'
2
    MOVWF   SPBRG1,0
3
    
4
    MOVLW   H'01'
5
    MOVWF   SPBRGH1,0
6
    
7
    MOVLW   B'00001000'
8
    MOVWF   BAUDCON1,0
9
    
10
    MOVLW   B'00100000'
11
    MOVWF   TXSTA1,0
12
    
13
    MOVLW   B'10010000'
14
    MOVWF   RCSTA1,0

Habe ich was falsch gemacht oder stimmt da was mit dem Simulator nicht?
Die USART Asugaben werden mir aber zumindest vollständig in eine Datei 
geschrieben.

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
Noch kein Account? Hier anmelden.