Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <avr/io.h> // Todas as DefiniÁıes do uC ATMEGA8
- #define F_CPU 14.7456E6 // DefiniÁ„o da frequÍncia de clock do uC
- #include <util/delay.h> // DefiniÁıes de funÁıes que implementas atrasos
- #include "bit_tools.h" // Macros para as operaÁıes sobre bits
- #define Port_Canc_Sem PORTC
- #define Canc_Ent 0
- #define Canc_Sai 1
- #define Sem_Verd 2
- #define Sem_Verm 3
- #define Port_Carros PINB
- #define Carr_Ent 0
- #define Carr_Sai 1
- #define CAPAC_PARQ 8
- /* Programa Principal */
- int main(void)
- {
- DDRC = 0x0F; // PC0..PC3 saÌdas
- PORTC = 0; // saÌdas inicialmente a 0
- DDRB = 0; // porto B todo com entradas
- PORTB = 0x03; // activa pull-ups de PB0 e PB1
- int count = 0;
- while(1)
- {
- if(count<CAPAC)
- {
- bit_set(PORTC,2);
- bit_clear(PORTC,3);
- if (bit_read(PINB,0))
- bit_clear(PORTC,0);
- else
- {
- bit_set(PORTC,0);
- _delay_ms(2000);
- count++;
- }
- }
- else
- {
- bit_clear(PORTC,2);
- bit_set(PORTC,3);
- }
- // Cuidado: quando se carrega no bot„o, ligo pino ‡ massa e PB0 fica a 0
- // Com o cÛdigo abaixo, o LED est· ligado e quando se carrega no bot„o o LED apaga!
- /*
- if (bit_read(PINB,1))
- bit_clear(PORTC,1); // Se a entrada PB0 est· activa ent„o liga saÌda PC0
- else
- bit_set(PORTC,1); // Sen„o desliga saÌda PC0
- */
- //_delay_ms(500); // "Queima" tempo antes de continuar
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement