Buen dia a todos.
Les cuento que estoy aprendiendo a programar en mikroBasic PRO, y mi primer programa por supuesto es prender y apagar un led.
Me surge un problema a la hora de calibrar el oscilador interno del pic (dado que estoy usando el 12F675), en el cual el debugger me indica el error del titulo del hilo.
Pego mi codigo a continuacion
Como notaran, la seccion de declarar las variables y registros la hice en assembler para tener mas confianza de como se configuran las cosas (porque vengo programando en assembler desde siempre).
Seguramente es un error muy tonto, pero no logro darme cuenta y no encuentro mucha informacion en google al respecto.
Saludos a todos
Les cuento que estoy aprendiendo a programar en mikroBasic PRO, y mi primer programa por supuesto es prender y apagar un led.
Me surge un problema a la hora de calibrar el oscilador interno del pic (dado que estoy usando el 12F675), en el cual el debugger me indica el error del titulo del hilo.
Pego mi codigo a continuacion
Código:
' Este programa hace parpadear un led en GP0 cada 1 segundo
program Parpadear_un_led
' Declarations section
dim salida as bit ' declara el tamaño de la variable salida
salida = GPIO.0 ' declara cual es la salida
main: ' Main program
asm ; CONFIGURACION DE ENTRADAS, SALIDAS Y REGISTROS
bsf STATUS,RP0 ;Bank 1
call $3FF ;Get the cal value (escrito en hexadecimal)
movwf OSCCAL ;Calibrate
bcf STATUS,RP0
CLRF STATUS
bcf STATUS,RP0 ;se pasa al banco 0
movlw %00001101 ;[configura 1)"justificado a la izquierda" (todos los bit comprimidos hacia la izquierda del restultado), 2)Vref en Vdd ]
movwf ADCON0 ;[3)entrada analogica en GP4. 4)no empieza la conversion y esta operable (ultimos 2 bits) ]
clrf GPIO ;limpia las salidas
movlw %00000111 ;[desactiva el comparador de tension y quedan libres GP1,GP2 y GP0]
movwf CMCON ;
bsf STATUS,RP0 ;se pasa al banco 1
movlw %00011000 ;configura 1)toma el divisor de tiempo fosc/8. 2)configura GP4 como entrada analogica y las otras como digitales I/O
movwf ANSEL ;
movlw %011000 ;Configura GP3, GP4 como entradas y GP0, GP1, GP2, GP5 como salidas.
movwf TRISIO
bcf STATUS,RP0 ;se pasa al banco 0
end asm
principal:
salida = 1 ' Enciende la salida
delay_ms(1000) ' Espera 1 segundo
salida = 0 ' Apaga la salida
delay_ms(200) ' Espera 200ms
goto principal
end.
Como notaran, la seccion de declarar las variables y registros la hice en assembler para tener mas confianza de como se configuran las cosas (porque vengo programando en assembler desde siempre).
Seguramente es un error muy tonto, pero no logro darme cuenta y no encuentro mucha informacion en google al respecto.
Saludos a todos