Hola a todos, tengo un problema con un pic 12F629 resuta que he hecho un código para un pic16F876 y va prefecto y lo he intentado migrar a un pic 12F629 y tengo problemas con los puertos, he leído varios hilos al respecto pero no me funcionaron las soluciones.
el código es este:
// Declaraciones de Post-Procesado
#include <12f629.h>
// #device ICD=TRUE //Con esta instruccióin el proyecto solo funciona si está conectado el ICD
#FUSES HS,nowdt,noprotect
#USE delay(clock=4000000)
/*#define _TONES.C //Modificacion de los pines de la Librería para los tonos de los botones
#define TONE_PIN PIN_A3 //Definición del pin del zumbador
#include <TONES.C> //Librería de tonos
*/
#USE STANDARD_IO (A)
//****************************Definiciones de pines***********************
#define telefono PIN_A5 //Contacto del cable telefónico
#define pulsador PIN_A6 //Pulsador de desactivación
#define sirena PIN_A7 //Señal de alarma
//****************************Declaraciones Globales**********************
int flag_segundos = 0;
int flag_RB = 0;
int tele = 0;
int pulsa = 0;
long milisegundos = 0;
//***************************Inte3rrupciones*******************************
#int_TIMER0
void TIMER0_isr(){
long limitemlseg=999;
if(pulsa==1){ //Si pulsadorstart está pulsado se ejecuta la rutina siguiente
if((++milisegundos > limitemlseg) || (milisegundos == limitemlseg)){ //Decrementamos milisegundos hasta que sea mayor que 999
milisegundos = 0; //cargamos milisegundos con el valor 0 para un proximo conteo
flag_segundos = 1; //Activamos la bandera de interrupción
}
}
}
void main(){
int segundos = 0;
int minutos = 0;
int horas = 0;
int limitepulsador=1;
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_16); //configuración del timer 2 para el cronómetro
set_timer0 (0x1B);
enable_interrupts(INT_TIMER0); //habilitamos las interrupciones del timer 2
enable_interrupts(global); //Activamos las interrupciones globales sin esto no funcionan las interrupciones ni timer
output_low(sirena); //apagamos la bomba de vacío
do{
//**************************Rutina de contactos*******************************
if(input(telefono)==0){ //si se cierra el contacto de la línea telefónica
delay_ms(20); //Un retraso para evitar rebotes del pulsador
if(input(telefono)==0){ //si sigue cerrado el contacto de la línea teleónica
tele=1; //Se incrementa la variable tele
}
}
else tele=0;
if(input(pulsador)==0){ //si accionamos el pulsador
delay_ms(20); //Un retraso para evitar rebotes del pulsador
if(input(pulsador)==0){ //si sigue cerrado el pulsador
pulsa++; //Se incrementa la variable tele
if(pulsa > limitepulsador){ //Si la variable pulsa es mayor que límitepulsador
pulsa = 0; // se pone la variable tele a 0
}
}
}
//********************************Rutina de alarma*********************************
if(tele==1){
output_high(sirena);
}
else{
output_low(sirena);
}
if(tele==0 && pulsa==1){//
milisegundos=30;
pulsa=0;
}
while(tele==1 && pulsa==1 && segundos!=10){ //Mientras la línea este activada y minutos no haya llegado a 1 se ejecuta
if(flag_segundos==1){
flag_segundos = 0;
if((++segundos > 59)||(segundos==59)){
segundos = 0;
if((++minutos > 59)||(minutos==59)){
minutos = 0;
if((++horas > 1)||(horas==1)){
horas = 0;
}
}
}
}
if(segundos==10){
segundos = 0;
minutos = 0;
horas = 0;
pulsa = 0;
}
output_low(sirena);
}
}
while(TRUE);
}
Al compilar el código que he hecho me da error en todos los pines y no se como puedo solucionarlo.
Utilizo el CCS C versión 4.107 al compilar me sale esto:
***Error 12 “Alarma_CPD PIC12F629.c” Line 84(21,22): Undefined identifier PIN_A7
***Error 12 “Alarma_CPD PIC12F629.c” Line 84(22,23): Undefined identifier PIN_A6
***Error 12 “Alarma_CPD PIC12F629.c” Line 84(27,28): Undefined identifier PIN_A6
***Error 12 “Alarma_CPD PIC12F629.c” Line 84(32,33): Undefined identifier PIN_A7
Etc…etc..
El código no está terminado y tengo que solucionar unas cosillas.