¿Qué tal amigos?
Una disculpa por revivir este tema, lo que pasa es que estoy teniendo dificultades al compilar este ejemplo que encontré, supuestamente debe de compilar bien pero me resultan los siguientes errores, como son el error 23, 48 y 43
Les dejo el código de programación.
Código:
#include "conf.h"
#include <string.h>
//dirección del registro TRISA
#byte TRISA = 85
//dirección del puerto A
#byte puerto_a = 05
#bit RA0 = puerto_a.0
#int_RDA
//Cuando entra un mensaje se produce una interrupción
void RDA_isr(void) {
char entrada[5]="\0";
//Guardamos el mensaje recibido
fgets(entrada,BLUE);
char led1[3]="\0";
char led2[3]="\0";
led1="1";
led2="2";
//Comparamos el mensajes recibido para saber que hacer:
if(strcmp(entrada,led1)==0)RA0=0; //ON
else if(strcmp(entrada,led2)==0)RA0=1;//OFF
else {
int i;
for( i=1; i<=10; i++){
puerto_a=0x00;delay_us(300);puerto_a=0x03;delay_us(700);
puerto_a=0x00;delay_ms(50); puerto_a=0x03;delay_ms(50);
}
}
}
void main() {
//Desactivamos los comparadores
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
//Activamos las interrupciones
enable_interrupts(INT_RDA);
enable_interrupts(GLOBAL);
//configuramos el puerto A
set_tris_a( 0xfe);
puerto_a =0x01;
putc('Z');
//como el mensaje produce una interrupción, el resto del tiempo estamos en un bucle infinito sin hacer nada
while(true){
}
}
Primero me dice que va eso y después me dice que, cómo vemos al principio del programa, se incluye un fichero llamado conf.h.
Este fichero contiene las configuraciones necesarias para que el PIC funcione, simplemente debemos crearlo en el mismo directorio e incluir esto:
Código:
#include <16F628A.h>
#FUSES NOWDT //No Watch Dog Timer
#FUSES INTRC_IO //Internal RC Osc
#FUSES NOPUT //No Power Up Timer
#FUSES NOPROTECT //Code not protected from reading
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOMCLR //Master Clear pin used for I/O
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD //No EE protection
#FUSES RESERVED //Used to set the reserved FUSE bits
#use delay(clock=4000000)
#use rs232(baud=9600,parity=N,xmit=PIN_B2,rcv=PIN_B1,bits=8,STREAM=BLUE,errors)
Entonces puse primero la parte de #include <16F628A.h> hasta rs232(baud=9600,parity=N,xmit=PIN_B2,rcv=PIN_B1,bits=8,STREAM=BLUE,errors)
y después lo que puse al principio y al compilar y ver los errores me sale otra ventana, es la que les muestro en la imagen.
Cabe destacar que ya he probado cambiando el pic y en la parte en donde va #include <16F628A.h> lo cambie por #Define <16F628A.h> ya que me salían mas errores y al cambiar eso me redujeron a 4
No sé si sea el compilador, si es que se utilizo otro, o sea la versión.
De antemano muchas gracias.