Hallo,
hab mich jetzt auf die Weise durchgekämpft, wie du gesagt hast.
Hab zuerst einmal den Pin der LED gewechselt, denn den, wo ich die LED bis jetzt hatte wollt er nicht.
Dann bin ich nach und nach die Ini. durchgegangen. Folgendes macht er nicht richtig:
Code:
BANK_1
movlw b'01000000'
movwf SPBRG ; Baudrate 19200
(nur eine LED blinkt ohne "Betriebsanzeige")
Code:
BANK_1
bsf TXSTA, TXEN
bsf PIE1, TXIE ; Sender-Interrupt zulassen
(beide LED blinken ohne "Betriebsanzeige")
Damit die Sachen in Klammern verstanden werden, hier noch schnell, was mein Programm derzeit macht:
Code:
; UP
; LED-Warten
Warte_100 ; 100ms
movlw b'1100100'
movwf warte_ko
Warte
movlw b'11111001' movwf warte_1m
LOOP_1m
NOP ; 20Zyklen
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
decfsz warte_1m,f ; 1ms
goto LOOP_1m
decfsz warte_ko,f
goto Warte
return
; UP
; Blinken durch Auslesen aus EEPROM
eeblinken
bsf INTCON, GIE ; Interrupts allgemein zu lassen
movfw adresse
call eeread
movwf PORTB
incf adresse, f ; Adresse erhöhen
btfsc adresse, 1 ; Adresse = '00000010' = 2 ??
clrf adresse ; zurück zur Adresse 0
call Warte_100
goto eeblinken
return
; UP
; EEPROM auslesen
eeread
BANK_1
movwf EEADR
bsf EECON1,RD
movf EEDATA,w BANK_0
return
; UP
; EEPROM beschreiben
eeschreiben
BANK_1
movlw 0x00
movwf EEADR movfw zahl_2
movwf EEDATA bsf EECON1,WREN
movlw 0x55
movwf EECON2
movlw 0xAA
movwf EECON2
bsf EECON1,WR
call Warte_100
movlw 0x01
movwf EEADR movfw zahl_3
movwf EEDATA bsf EECON1,WREN
movlw 0x55
movwf EECON2
movlw 0xAA
movwf EECON2
bsf EECON1,WR
call Warte_100
BANK_0
return
; UP
; Rechnen
eerechnen
movlw d'20'
movwf zahl_1
movlw d'4'
subwf zahl_1,w
movwf zahl_2 ; hier müsste jetzt 16 drin stehen
movlw d'12'
subwf zahl_1,w
movwf zahl_3 ; hier müsste jetzt 8 drin stehen
return
; UP
; LED-Betriebsanzeige
LED_B
movlw 0x0A
movwf blin_10
LOOP_B
bcf PORTA,2
call Warte_100
bsf PORTA,2
call Warte_100
decfsz blin_10,f
goto LOOP_B
return
; Hauptprogramm
main
call Ini_start
call LED_B
call eerechnen
call eeschreiben
call eeblinken
end
Wieso funkionieren nur die obigen Code-Teile nicht richtig?
Kann es sein, dass sie wegen irgendetwas übersprungen werden?
LG
Jen
Lesezeichen