Hallo,
ich versuche schon einige Tage lang, meinem PIC das Senden von Daten beizubringen. Aber irgendwie stellt er sich stur.
Hier mein Initialisierungscode:
Das Main ruft nach Ini_start dann nochmal LED_B auf. Wird aber nicht gemacht. Wegen irgendwas kommt der PIC nicht aus Ini_start raus.Code:Ini_start ; Setzen der Ein- und Ausgänge BANK_1 ; alle Pins, die nicht belegt sind, werden als ; Eingänge initialisiert, um Kurzschlüsse zu ; vermeiden movlw b'11111011' ; Pin-Belegung movwf TRISA ; in TRIS-Register schreiben (konfiguriert PORT) movlw b'11100011' movwf TRISB movlw b'00001000' ; TMR0: 1/4 Pic-Takt, RB0-I: movwf OPTION_REG ; fallende Flanke movlw b'11000000' ; Interrupts konfigurieren (RB0, movwf INTCON ; PORTB, generell=1) BANK_0 ; Pegel der Ein- und Ausgänge initialisieren movlw b'00000100' ; initialisieren der Pegel movwf PORTA ; in PORT-Register schreiben movlw b'00111001' movwf PORTB ; initialisieren von TMR1 movlw b'00000111' movwf T1CON ; alle Comparatoreingänge auf Digital umschalten bsf CMCON, CM0 bsf CMCON, CM1 bsf CMCON, CM2 clrf adresse call LED_B ; hier blinkt eine LED ; BIS HIER HIN FUNKTIONIERT´S!!!! ; USART initialisieren BANK_1 movlw b'01000000' movwf SPBRG ; Baudrate 19200 bcf TXSTA, TXEN movlw b'00000100' movwf TXSTA ; Sender call LED_B BANK_0 bcf RCSTA, CREN movlw b'10000000' movwf RCSTA ; Empfänger call LED_B clrf PIR1 ; alle Interrupt-Flags löschen BANK_1 bsf TXSTA, TXEN bsf PIE1, TXIE ; Sender-Interrupt zulassen return
Sieht einer den Fehler? Welche Fehler könnten denn in der Hardware sein?
Die Pins für RX und TX gehen auf ein MAX232, aber nicht während des Programmierens oder ausführen des Programms, es wird erst zu geschaltet, wenn ausgelesen werden soll.
Hier noch einige Daten: PIC16F628, programmiert wird in Assembler, JDM Programmer.
Bitte helft mir, ich verzweifle sonst noch [-o<
LG
Jen







Zitieren

Lesezeichen