Hola que tal.
Por esa casualidades del destino, conseguí el compilador en C CCS PCWH con IDE, el cual esta muy piola, donde su entorno de trabajo es muy parecido al MPLAB IDE. Ademas puedo usar el PIC 16F873.
Todavia estoy leyendo manuales, pero tengo otra pregunta:
En Asembler habia declarado registros de uso general para las distintas rutinas, asignandoles nombres o etiquetas.
¿El compilador de C respetará esas etiquetas? ¿Se pueden definir en C las mismas para que el compilador no asigne esos registros a otras rutinas?Les muestro una parte del codigo ASM a insertar en C.
list p=16f873
include "p16f873.inc"
W EQU 0 ;Destino Registro acumulador
F EQU 1 ;Destino Registro usado
RP0 EQU 5 ;Manejan los 4 bancos de memoria de datos
RP1 EQU 6 ;
DATO EQU 20h ;Ángulo medido por sensor hall no lineal.
ANGULO EQU 21h ;Ángulo corregido por tabla.
POSI EQU 22h ;Distancia del motor medida en forma lineal.
VELOCIDAD EQU 23h ;Velocidad proporcional a la tensión medida.
RETARDO EQU 24h
GO EQU 2
;.............................................................................
;PROGRAMA PRINCIPAL
ORG 00h
GOTO PROGRAMA
ORG 05h
PROGRAMA BCF STATUS,RP0 ;Página 0
BCF STATUS,RP1
CALL INI_ADC
CALL INI_USART
CLRF PORTB ;en Pág 0
BSF STATUS,RP0 ;Pág 1
CLRF TRISB ;Configura a todo el puerto B como salida
BCF STATUS,RP0 ;Pág 0
CLRF PORTB
BUCLE CALL LEEPOSI
CALL SEND
CALL LEEANG
CALL SEND
CALL VELOCI
CALL SEND
GOTO BUCLE
;.....................................................................................
;Subrrutina que obtiene el ángulo de la paleta y lo corrige por tabla.
LEEANG MOVLW b'10001001' ;Configuración del ADC. Fosc/32, A/D ON. channel 1.
MOVWF ADCON0 ;Configuro ADC.
CALL DELAY ;para estabilizar la entrada (25 uS)
BSF ADCON0,GO ;Inicia conversión
SALTO1 BTFSC ADCON0,GO ;Si GO = 1 => Sigo verificando
GOTO SALTO1
BCF PIR1,ADIF ;Borra la bandera de fin de conversión
BSF STATUS,RP0
MOVF ADRESL,W ;Carga valor del conversor en
BCF STATUS,RP0
MOVWF DATO ;en el registro DATO =Offset para la tabla en memoria
MOVLW b'00000110' ;Memoria de programa página 0 subpagina 6
MOVWF PCLATH ;Carga el PCLATH para el salto en memoria
MOVF DATO ;Carga el offset en W
CALL TABLA ;Busca la correción del ángulo
MOVWF ANGULO ;Ángulo corregido a usar
CLRF PCLATH ;Pág 0 subpagina 0
MOVF ANGULO,W
RETURN
Saludos desde la Patagonia