Saludos.
Estoy con un proyecto para clase, y no hay manera de que marche. Visto esto, resolví bajar hasta lo más básico y reconstruir desde allí. Pero (siempre hay peros, parece) ni lo más básico funciona. Os copio el "código base" que me ha quedado:
#include <p18f4520.inc>
;Suponiendo oscilador 20MHz
;Vectores
ORG 0x00
GOTO Principal
Principal:
;Configuración A/D
;Justificado a derechas, Tconv=Fosc/64 y Tadq=20*Tconv
MOVLW 0xBE ;ADFM=0, ACQT2..0=111, ADCS2..0=110
MOVWF ADCON2
;3 entradas (AN0,AN1,AN2), sin voltaje de referencia
MOVLW 0x0C ;VCFG0=00, PCFG3..0=1100
MOVWF ADCON1
;Encendemos el conversor, dejando seleccionado canal 1
MOVLW 0x01
MOVWF ADCON0
;Fin configuración A/D
;Configuración EUSART
;Modo asíncrono, 8 bits.
MOVLW 0x24
MOVWF TXSTA ;sin Break, vel. alta
MOVLW 0x90
MOVWF RCSTA ;8 bits para recibir tambien. RC7 y 8 pines EUSART.
MOVLW 0x00
MOVWF BAUDCON ;8 bits para velocidad, sin autodetección
MOVLW .129
MOVWF SPBRG ;V=Fosc/(16*(SPBRG+1))=9615
;Fin configuración EUSART
BCF ADCON0,1
sigue:
BTFSS ADCON0,1
GOTO sigue
MOVFF ADRESH, TXREG
sigue2:
BTFSS PIR1,TXIF
GOTO sigue2
MOVFF ADRESL,TXREG
Bucle:
GOTO Bucle
END
El caso es que simulo en proteus, y nada de nada. En teoria deberia hacer una conversion y enviarla, y nada más, pero no hay manera. Y el caso es que con tan poco código no deberia ser problema encontrar el error, pero.. no lo encuentro. A ver si alguien puede iluminarme.
Muchas gracias.