Hola, antes que nada decir que he estado leyendo y mirando apnotes de microchip pero no llego a tener muy claro el asunto, despues de casi 1000 lineas de codigo le doy a programar y jeje, nada, seguro que el problema es leve, pero aun asi...
Voy a usar un cristal externo de 6MHz conectado a las patillas 1 y 2 de mi PIC16F677, con sus condensadores ceramicos de 18pF a tierra,
Tendo unas dudas, uso MPLAB IDE 8.0, en la opcion: Configure->Configue bits, si desmarco la opcion "configuration bits set in code",es decir que le indique toda la configuracion desde ahi,¿no tengo que incluir nada que haga mencion a los "configuration bits" en mi codigo,cierto?
Como tengo un cristal de 6MHZ tengo que usar la opcion HS,quiero que mi timer1 aumente 1 de cada 8 pulsos de mi reloj externo, esto lo hago poniendo a 1 T1CKSP<1:0>, el caso es que no me funciona, he puesto al final de iniciar las variables un simple BSF PORTC,5 para ver si me prende ese pin, pero no lo hace, o sea que no creo que ni siquiera empiece.
Pongo aqui el codigo de mi iniciacion de funciones:
Porque con esl Stimulus no se si llego a aclararme, en Settings le he puesto 6Mhz, en el workspace le he asigando el OSSC1, y en cycles, supongo que será 1 en high y otro 1 para low,,cierto?:
Ahi va mi maltrecho codigo:
org 0x0000
goto 0x0005
org 0x0004
goto decide
org 0x0005
inicio
bcf 0x77d,2
bsf 0x77d,1
bcf 0x77d,0
bcf STATUS,RP0
bcf STATUS,RP1; Situarnos en el ----BANCO 0----------
bsf T1CON,TMR1CS; (CAMBIAR LUEGO!) oscilacion externa=1,interna=0
bsf INTCON,GIE; Activa interrupciones generales
bsf INTCON,PEIE ;Activa las interrupciones por perfericos externos
bsf INTCON,RABIE ;Activa las interrupciones on change A/B
bsf T1CON,TMR1ON
bsf T1CON,TMR1CS
bsf T1CON,T1CKPS0
bsf T1CON,T1CKPS1 ;usar la division 1:8 para el timer1
bsf STATUS,RP0
bcf STATUS,RP1 ; ------------BANCO 1--------
bsf OSCCON,OSTS
bcf OSCCON,SCS
bsf PIE1,TMR1IE ;para poder utilizar el timer1 interrupcion
bsf TRISA,TRISA0 ;tecla arriba como entrada
bsf TRISA,TRISA1 ;tecla abajo como entrada
bsf TRISA,TRISA2 ;tecla mas como entrada
bsf TRISA,TRISA3 ;tecla menos como entrada
bsf TRISB,TRISB5 ;cruce por cero
bcf TRISC,TRISC1 ;FUNCION RS DISPLAY
bcf TRISC,TRISC2 ;FUNCION E DISPLAY
bcf TRISC,TRISC3 ;----DATO1 HACIA EL DISPLAY----
bcf TRISC,TRISC4 ;----DATO2 HACIA EL DISPLAY---
bcf TRISC,TRISC5 ;CONTROL TRIAC
bcf TRISC,TRISC6 ;----DATO3 HACIA EL DISPLAY---
bcf TRISC,TRISC7 ;----DATO4 HACIA EL DISPLAY---
bsf STATUS,RP1
bcf STATUS,RP0 ;-------------BANCO 2---------------
clrf ANSEL
clrf ANSELH
bsf IOCB,IOCB5 ;para poder utilizar el cruce po cero como interrupcion
bcf STATUS,RP0
bcf STATUS,RP1 ;-------------BANCO 0---------------
CLRF minutos
CLRF horas
CLRF segundos
CLRF cuartos
CLRF wakeh
CLRF wakem
clrf modo
movlw 0x00
movwf TMR1H
movlw 0x01
movwf TMR1L
BSF PORTA,5
P.D. disculpen la redundancia pero se me escapa algo y por mas que miro no lo encuentro, gracias de antemano a todos.....
Ah , cuando le doy grabar bien desde el pickit2 o bien desde el mplab ide, a veces me da un error del tipo:
Programming Target (17/04/2009 18:56:55)
Erasing Target
Programming Program Memory (0x0 - 0x443)
Verifying Program Memory (0x0 - 0x443)
PK2Error0027: Failed verify (Address = 0x0 - Expected Value 0x2805 - Value Read 0x3FE0)
PICkit 2 Ready
Voy a usar un cristal externo de 6MHz conectado a las patillas 1 y 2 de mi PIC16F677, con sus condensadores ceramicos de 18pF a tierra,
Tendo unas dudas, uso MPLAB IDE 8.0, en la opcion: Configure->Configue bits, si desmarco la opcion "configuration bits set in code",es decir que le indique toda la configuracion desde ahi,¿no tengo que incluir nada que haga mencion a los "configuration bits" en mi codigo,cierto?
Como tengo un cristal de 6MHZ tengo que usar la opcion HS,quiero que mi timer1 aumente 1 de cada 8 pulsos de mi reloj externo, esto lo hago poniendo a 1 T1CKSP<1:0>, el caso es que no me funciona, he puesto al final de iniciar las variables un simple BSF PORTC,5 para ver si me prende ese pin, pero no lo hace, o sea que no creo que ni siquiera empiece.
Pongo aqui el codigo de mi iniciacion de funciones:
Porque con esl Stimulus no se si llego a aclararme, en Settings le he puesto 6Mhz, en el workspace le he asigando el OSSC1, y en cycles, supongo que será 1 en high y otro 1 para low,,cierto?:
Ahi va mi maltrecho codigo:
org 0x0000
goto 0x0005
org 0x0004
goto decide
org 0x0005
inicio
bcf 0x77d,2
bsf 0x77d,1
bcf 0x77d,0
bcf STATUS,RP0
bcf STATUS,RP1; Situarnos en el ----BANCO 0----------
bsf T1CON,TMR1CS; (CAMBIAR LUEGO!) oscilacion externa=1,interna=0
bsf INTCON,GIE; Activa interrupciones generales
bsf INTCON,PEIE ;Activa las interrupciones por perfericos externos
bsf INTCON,RABIE ;Activa las interrupciones on change A/B
bsf T1CON,TMR1ON
bsf T1CON,TMR1CS
bsf T1CON,T1CKPS0
bsf T1CON,T1CKPS1 ;usar la division 1:8 para el timer1
bsf STATUS,RP0
bcf STATUS,RP1 ; ------------BANCO 1--------
bsf OSCCON,OSTS
bcf OSCCON,SCS
bsf PIE1,TMR1IE ;para poder utilizar el timer1 interrupcion
bsf TRISA,TRISA0 ;tecla arriba como entrada
bsf TRISA,TRISA1 ;tecla abajo como entrada
bsf TRISA,TRISA2 ;tecla mas como entrada
bsf TRISA,TRISA3 ;tecla menos como entrada
bsf TRISB,TRISB5 ;cruce por cero
bcf TRISC,TRISC1 ;FUNCION RS DISPLAY
bcf TRISC,TRISC2 ;FUNCION E DISPLAY
bcf TRISC,TRISC3 ;----DATO1 HACIA EL DISPLAY----
bcf TRISC,TRISC4 ;----DATO2 HACIA EL DISPLAY---
bcf TRISC,TRISC5 ;CONTROL TRIAC
bcf TRISC,TRISC6 ;----DATO3 HACIA EL DISPLAY---
bcf TRISC,TRISC7 ;----DATO4 HACIA EL DISPLAY---
bsf STATUS,RP1
bcf STATUS,RP0 ;-------------BANCO 2---------------
clrf ANSEL
clrf ANSELH
bsf IOCB,IOCB5 ;para poder utilizar el cruce po cero como interrupcion
bcf STATUS,RP0
bcf STATUS,RP1 ;-------------BANCO 0---------------
CLRF minutos
CLRF horas
CLRF segundos
CLRF cuartos
CLRF wakeh
CLRF wakem
clrf modo
movlw 0x00
movwf TMR1H
movlw 0x01
movwf TMR1L
BSF PORTA,5
P.D. disculpen la redundancia pero se me escapa algo y por mas que miro no lo encuentro, gracias de antemano a todos.....
Ah , cuando le doy grabar bien desde el pickit2 o bien desde el mplab ide, a veces me da un error del tipo:
Programming Target (17/04/2009 18:56:55)
Erasing Target
Programming Program Memory (0x0 - 0x443)
Verifying Program Memory (0x0 - 0x443)
PK2Error0027: Failed verify (Address = 0x0 - Expected Value 0x2805 - Value Read 0x3FE0)
PICkit 2 Ready