Tengo un proyecto escolar "sistema ferroviario automático", Escribí el código pero funciona solo en protues. cuando lo quemo en el kit no funciona. ¿Qué está mal con este código?
"mi idea del proyecto es hacer un control de la puerta del tren ferroviario.
1: cuando el tren se acerca, haga que el zumbador se encienda con 90 segundos de cuenta atrás en 7 seg. luego abre la puerta.
2 - después de que el tren salga de la estación, cierre la puerta & el timbre Estoy usando 2 interruptores de límite uno para abrir la compuerta & La otra para cerrarla. y un motor de corriente continua para mover la puerta entre la posición 0 y amp; posición 90. "
pero estoy enfrentando un error en el archivo seven_seg.c: expresión esperada antes de '=' token en esta línea
PORTB = PORTB | BUZZER;
Intenté hacer esto para ver qué sucede si hago que //PORTB=PORTB|BUZZER;
todavía aparezca el mismo error, pero en esta línea en el archivo railway_control.c
if((PINA & SWITCH1)==0b00000000)
PORTB=PORTB | MOTORR;
PORTB=PORTB & ~ BUZZER;
PORTB=PORTB & ~ MOTORR;
else if((PINA & SWITCH2)==0b00000000)
PORTB=PORTB & ~ MOTORL;
¿Qué identificadores faltan antes de '='?
aquí está el código después de que lo edité
#include"avr/io.h"
#define F_CPU 16000000
#include"avr/delay.h"
#include"types.h"
#include"seven_seg.h"
void main (void)
{
DDRA=0b00000000;// define switches as input
PORTA=0b00000011;
DDRB=0b00000111;//define motor & buzzer as output
DDRD=0b11111111;/* using port d &port c for 7-seg*/
DDRC=0b11111111;
while (1)
{
if((PINA&SWITCH1)==0b00000000)
{
display();
PORTB=PORTB|MOTORR;
_delay_ms(3000);
PORTB=PORTB & ~ BUZZER;
PORTB=PORTB&~MOTORR;
_delay_ms(300);
}
else if((PINA&SWITCH2)==0b00000000)
{
PORTB=PORTB|MOTORL;
_delay_ms(3000);
PORTB=PORTB &~ MOTORL;
_delay_ms(300);
}
else
{
//Do Nothing
}
}
}
el archivo seven_seg.c
#include"avr\io.h"
#include"types.h"
#include"avr/delay.h"
s8 i,j;
s8 arr[10]={0b00111111,0b00000110,0b01011001,
0b01001111,0b01101100,0b01101101,0b01111101,
0b00000111,0b01111111,0b01101111};
void display(void)
{
PORTC=arr[9];
PORTD= arr[0];
PORTB=PORTB|BUZZER;
for(i=8;i>=0;i--)
{
PORTC=arr[i];
for(j=9;j>=0;j--)
{
PORTD=arr[j];
_delay_ms(100);
}
}
}
tipos.h archivo
typedef unsigned char u8;
typedef unsigned short int u16;
typedef unsigned long int u32;
typedef signed char s8;
typedef signed short int s16;
typedef signed long int s32;
typedef float f32;
typedef double f64;
#define BUZZER=0b00000100;
#define MOTORR=0b00000001;
#define MOTORL=0b00000010;
#define SWITCH1=0b00000001;
#define SWITCH2=0b00000010;
archivo seven_seg.h
#ifndef seven_SEG_H_
#define seven_SEG_H_
void display(void);
#endif /* seven_SEG_H_ */