Hola.
Entiendo poco de electronica. Estoy tratando de hacer girar un motor PAP unipolar 12V con un PIC 16f628A y un L293D. Altratar de compilar con el programa PIC C, me arroja el siguiente error: Error 128 "MotorPAP12V-1.c" Line 4(1,1): A #DEVICE required before this line
Alguien podria indicarme la causa por favor?
El codigo es el siguiente (lo obtuve de un sitio internet):
//MotorPAP12V.c
//Microcontrolador: PIC16F628A
//Oscilador: Interno 4MHz
void pasosCW(); //Ocho pasos CW (horario).
void pasosCCW(); //Ocho pasos CCW (antihorario).
#define PAUSA 5 //5 ms
char i;
void main(){
PORTB=0x00; //Inicialización.
NOT_RBPU_bit=0; //Habilitar las pull-up.
TRISB=0b10000000; //RB<6:0> como salidas. RB7 como entrada.
while(1){
if (RB7_bit==0){
RB4_bit=0; //Motor desconectado.
RB5_bit=0; //Motor desconectado.
}
if (RB7_bit==1){
//645 pasos CW
for (i=1; i<=80;i++)
pasosCW();
PORTB=0b00110110; //Secuencia continua.
Delay_ms(PAUSA);
PORTB=0b00110111; //Secuencia continua.
Delay_ms(PAUSA);
PORTB=0b00110101; //Secuencia continua.
Delay_ms(PAUSA);
PORTB=0b00111101; //Secuencia continua.
Delay_ms(PAUSA);
PORTB=0b00111001; //Secuencia continua.
Delay_ms(PAUSA);
//650 pasos CCW
PORTB=0b00111101; //Secuencia continua.
Delay_ms(PAUSA);
PORTB=0b00110101; //Secuencia continua.
Delay_ms(PAUSA);
PORTB=0b00110111; //Secuencia continua.
Delay_ms(PAUSA);
PORTB=0b00110110; //Secuencia continua.
Delay_ms(PAUSA);
for (i=1; i<=80;i++)
pasosCCW();
PORTB=0b00111110; //Secuencia continua.
Delay_ms(PAUSA);
PORTB=0b00111010; //Secuencia continua.
Delay_ms(PAUSA);
PORTB=0b00111011; //Secuencia continua.
Delay_ms(PAUSA);
PORTB=0b00111001; //Secuencia continua.
Delay_ms(PAUSA);
PORTB=0b00111101; //Secuencia continua.
Delay_ms(PAUSA);
PORTB=0b00111111; //Apagar el motor.
Delay_ms(500); //Esperar 5 segundos antes de repetir.
}
}
}
//Definición de funciones.
void pasosCW(){
PORTB=0b00110110;
Delay_ms(PAUSA);
PORTB=0b00110111;
Delay_ms(PAUSA);
PORTB=0b00110101;
Delay_ms(PAUSA);
PORTB=0b00111101;
Delay_ms(PAUSA);
PORTB=0b00111001;
Delay_ms(PAUSA);
PORTB=0b00111011;
Delay_ms(PAUSA);
PORTB=0b00111010;
Delay_ms(PAUSA);
PORTB=0b00111110;
Delay_ms(PAUSA);
}
void pasosCCW(){
PORTB=0b00111110;
Delay_ms(PAUSA);
PORTB=0b00111010;
Delay_ms(PAUSA);
PORTB=0b00111011;
Delay_ms(PAUSA);
PORTB=0b00111001;
Delay_ms(PAUSA);
PORTB=0b00111101;
Delay_ms(PAUSA);
PORTB=0b00110101;
Delay_ms(PAUSA);
PORTB=0b00110111;
Delay_ms(PAUSA);
PORTB=0b00110110;
Delay_ms(PAUSA);
}
Entiendo poco de electronica. Estoy tratando de hacer girar un motor PAP unipolar 12V con un PIC 16f628A y un L293D. Altratar de compilar con el programa PIC C, me arroja el siguiente error: Error 128 "MotorPAP12V-1.c" Line 4(1,1): A #DEVICE required before this line
Alguien podria indicarme la causa por favor?
El codigo es el siguiente (lo obtuve de un sitio internet):
//MotorPAP12V.c
//Microcontrolador: PIC16F628A
//Oscilador: Interno 4MHz
void pasosCW(); //Ocho pasos CW (horario).
void pasosCCW(); //Ocho pasos CCW (antihorario).
#define PAUSA 5 //5 ms
char i;
void main(){
PORTB=0x00; //Inicialización.
NOT_RBPU_bit=0; //Habilitar las pull-up.
TRISB=0b10000000; //RB<6:0> como salidas. RB7 como entrada.
while(1){
if (RB7_bit==0){
RB4_bit=0; //Motor desconectado.
RB5_bit=0; //Motor desconectado.
}
if (RB7_bit==1){
//645 pasos CW
for (i=1; i<=80;i++)
pasosCW();
PORTB=0b00110110; //Secuencia continua.
Delay_ms(PAUSA);
PORTB=0b00110111; //Secuencia continua.
Delay_ms(PAUSA);
PORTB=0b00110101; //Secuencia continua.
Delay_ms(PAUSA);
PORTB=0b00111101; //Secuencia continua.
Delay_ms(PAUSA);
PORTB=0b00111001; //Secuencia continua.
Delay_ms(PAUSA);
//650 pasos CCW
PORTB=0b00111101; //Secuencia continua.
Delay_ms(PAUSA);
PORTB=0b00110101; //Secuencia continua.
Delay_ms(PAUSA);
PORTB=0b00110111; //Secuencia continua.
Delay_ms(PAUSA);
PORTB=0b00110110; //Secuencia continua.
Delay_ms(PAUSA);
for (i=1; i<=80;i++)
pasosCCW();
PORTB=0b00111110; //Secuencia continua.
Delay_ms(PAUSA);
PORTB=0b00111010; //Secuencia continua.
Delay_ms(PAUSA);
PORTB=0b00111011; //Secuencia continua.
Delay_ms(PAUSA);
PORTB=0b00111001; //Secuencia continua.
Delay_ms(PAUSA);
PORTB=0b00111101; //Secuencia continua.
Delay_ms(PAUSA);
PORTB=0b00111111; //Apagar el motor.
Delay_ms(500); //Esperar 5 segundos antes de repetir.
}
}
}
//Definición de funciones.
void pasosCW(){
PORTB=0b00110110;
Delay_ms(PAUSA);
PORTB=0b00110111;
Delay_ms(PAUSA);
PORTB=0b00110101;
Delay_ms(PAUSA);
PORTB=0b00111101;
Delay_ms(PAUSA);
PORTB=0b00111001;
Delay_ms(PAUSA);
PORTB=0b00111011;
Delay_ms(PAUSA);
PORTB=0b00111010;
Delay_ms(PAUSA);
PORTB=0b00111110;
Delay_ms(PAUSA);
}
void pasosCCW(){
PORTB=0b00111110;
Delay_ms(PAUSA);
PORTB=0b00111010;
Delay_ms(PAUSA);
PORTB=0b00111011;
Delay_ms(PAUSA);
PORTB=0b00111001;
Delay_ms(PAUSA);
PORTB=0b00111101;
Delay_ms(PAUSA);
PORTB=0b00110101;
Delay_ms(PAUSA);
PORTB=0b00110111;
Delay_ms(PAUSA);
PORTB=0b00110110;
Delay_ms(PAUSA);
}