Autor Tema: Ayuda con problema para compilar  (Leído 1675 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado matis14

  • PIC10
  • *
  • Mensajes: 8
Ayuda con problema para compilar
« en: 01 de Diciembre de 2012, 09:18:03 »
Hola amigos, hice un programa, es bastante sencillo pero al momento de compilar me tira el siguiente error
 error 128 A #device required before this line
y me marca la linea de los fuses... la verdad que no se que puede ser y queria ver si me podian ayudar a encontrar cual es el error... intente creando un proyecto nuevo y tampoco pasa nada, pero si en vez de poner #include <16f84a.h> pongo #include <16f628a.h>, el programa compila sin problemas...
El programa es el siguiente

#include <16f84a.h>
#fuses XT,NOWDT,NOPROTECT,PUT
#use delay( clock = 4000000 ) /* reloj de 4 MHz */
#use fast_io(A)
#byte intcon=0x0b /*Regisro de interrupcion*/
#bit RBIF=intcon.3 /*Para limpiar flag de interrupcion!!!*/
#BYTE TRISA = 0x85
#BYTE PORTA = 0x05
#BYTE TRISB = 0x86
#BYTE PORTB = 0x06
#BIT RB0 = 0x06.0 // lo uso para el led
#BIT RB4 = 0x06.4 // lo uso para el contacto
#BIT RB7 = 0x06.7 // lo uso para el la tecla
#BIT RA0 = 0x05.0 // lo uso para cerrar el cierre
#BIT RA3 = 0x05.3 // lo uso para abrir el cierre


int a;
int a_aux;
int b;


// RUTINA INTERRUPCION RB0
#int_EXT
void EXT_isr(void) {
         clear_interrupt(int_ext);
         a_aux=1;
         a=0;
         RA0 = 1;
         RA3 = 0;
         delay_ms(2000);
         RA0 = 0;
         RA3 = 0;
         enable_interrupts(GLOBAL);

         enable_interrupts(int_ext);
        
}

// RUTINA INTERRUPCION RB4-RB7
#int_RB
void x(){
clear_interrupt(int_rb);
if (RB4==1) {
   delay_ms(5000);
   RA0=1; // cierro
   RA3=0;
   delay_ms(1000);
   RA0 = 0;
   RA3 = 0;
}
if (RB7==1) {
   if (RA0==1){ // si esta cerrado
         RA0=0;//abro
         RA3=1;
         delay_ms(1000);
         RA0 = 0;
         RA3 = 0;
   }
   else {
         RA0=1; // si esta abierto cierro
         RA3=0;
         delay_ms(1000);
         RA0 = 0;
         RA3 = 0;
   }
}
enable_interrupts(int_rb);//habilita interrupción particular
enable_interrupts(GLOBAL);
}
// PROGRAMA PRINCIPAL
void main()
{
a=0;
a_aux=0;
b=400000;
TRISB = 0xFF;
TRISA = 0x00;
enable_interrupts(int_rb);//habilita interrupción particular
enable_interrupts(GLOBAL);
enable_interrupts(int_ext); //activar interrupcion externa
for( ; ; ){
   if(a_aux == 1){ // esta titilando el led
      if(a<b){ // si sigue titilando a se resetea por lo tanto nunca supera a b, excepto que se apague el led y aumente a
         a++;
      }
      else { // si a supero o igualo a b, abro
         a_aux=0;
         RA0 = 0;
         RA3 = 1;
         delay_ms(2000);
         RA0 = 0;
         RA3 = 0;
      }
   } //bucle infinito esperando interrupcion

}
}
« Última modificación: 01 de Diciembre de 2012, 09:24:42 por matis14 »

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: Ayuda con problema para compilar
« Respuesta #1 en: 01 de Diciembre de 2012, 09:22:36 »
  Yo no estoy seguro porque no uso CCS, pero creo que después del #unclude debes colocar la directiva #device <P=xxxx> siendo xxx el pic a utilizar. Buscalo en el manual de CCS. Si no aparece, crea un proyecto nuevo con el wizard de CCS y fíjate como es el código generado.
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado matis14

  • PIC10
  • *
  • Mensajes: 8
Re: Ayuda con problema para compilar
« Respuesta #2 en: 01 de Diciembre de 2012, 09:31:14 »
  Yo no estoy seguro porque no uso CCS, pero creo que después del #unclude debes colocar la directiva #device <P=xxxx> siendo xxx el pic a utilizar. Buscalo en el manual de CCS. Si no aparece, crea un proyecto nuevo con el wizard de CCS y fíjate como es el código generado.

No, creando un proyecto nuevo me lleva al archivo de encabezamiento que crea el proyect wizard y me marca la linea de #fuses... pero si en vez de poner el 16f84a uso el 16f628a compila sin problemas... el tema es que donde yo vivo no consigo otro que no sea el 16f84a

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Ayuda con problema para compilar
« Respuesta #3 en: 01 de Diciembre de 2012, 09:32:48 »
Entiendo que el f84a no tiene PowerUpTimer, comenta el fuse PUT... y prueba...
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado matis14

  • PIC10
  • *
  • Mensajes: 8
Re: Ayuda con problema para compilar
« Respuesta #4 en: 01 de Diciembre de 2012, 09:38:03 »
Entiendo que el f84a no tiene PowerUpTimer, comenta el fuse PUT... y prueba...

En fuses deje solamente el XT,NOWDT y me sigue dando el mismo error... la verdad que no entiendo que puede ser lo que esté fallando

Desconectado matis14

  • PIC10
  • *
  • Mensajes: 8
Re: Ayuda con problema para compilar
« Respuesta #5 en: 01 de Diciembre de 2012, 09:54:00 »
Ya lo pude solucionar, con este pic hay que agregar en la primer linea lo siguiente... #device PIC16F84A ... no se porque compila sin esa linea con cualquier otro pic, bueno en fin solucione mi problema y dejo aclarado esto por si le sucede a alguien mas.
Gracias

Desconectado ppyote

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 929
Re: Ayuda con problema para compilar
« Respuesta #6 en: 02 de Diciembre de 2012, 10:57:18 »
Modifica la librería del 16f84 y así te evitarás calentamientos de cabeza en un futuro
PPyote... siempre estareis en mi corazon.... Te quiero Hermano...


 

anything