Advertisement
Guest User

Untitled

a guest
Jul 28th, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.57 KB | None | 0 0
  1. #include <avr/io.h> // Todas as DefiniÁıes do uC ATMEGA8
  2. #define F_CPU 14.7456E6 // DefiniÁ„o da frequÍncia de clock do uC
  3. #include <util/delay.h> // DefiniÁıes de funÁıes que implementas atrasos
  4. #include "bit_tools.h" // Macros para as operaÁıes sobre bits
  5.  
  6. #define Port_Canc_Sem PORTC
  7. #define Canc_Ent 0
  8. #define Canc_Sai 1
  9. #define Sem_Verd 2
  10. #define Sem_Verm 3
  11. #define Port_Carros PINB
  12. #define Carr_Ent 0
  13. #define Carr_Sai 1
  14. #define CAPAC_PARQ 8
  15.  
  16. /* Programa Principal */
  17.  
  18. int main(void)
  19. {
  20.  
  21. DDRC = 0x0F; // PC0..PC3 saÌdas
  22. PORTC = 0; // saÌdas inicialmente a 0
  23. DDRB = 0; // porto B todo com entradas
  24. PORTB = 0x03; // activa pull-ups de PB0 e PB1
  25.  
  26. int count = 0;
  27.  
  28. while(1)
  29. {
  30.  
  31. if(count<CAPAC)
  32. {
  33. bit_set(PORTC,2);
  34. bit_clear(PORTC,3);
  35.  
  36. if (bit_read(PINB,0))
  37. bit_clear(PORTC,0);
  38. else
  39. {
  40. bit_set(PORTC,0);
  41.  
  42. _delay_ms(2000);
  43. count++;
  44. }
  45.  
  46. }
  47.  
  48. else
  49. {
  50. bit_clear(PORTC,2);
  51. bit_set(PORTC,3);
  52. }
  53.  
  54. // Cuidado: quando se carrega no bot„o, ligo pino ‡ massa e PB0 fica a 0
  55. // Com o cÛdigo abaixo, o LED est· ligado e quando se carrega no bot„o o LED apaga!
  56. /*
  57. if (bit_read(PINB,1))
  58. bit_clear(PORTC,1); // Se a entrada PB0 est· activa ent„o liga saÌda PC0
  59. else
  60. bit_set(PORTC,1); // Sen„o desliga saÌda PC0
  61. */
  62. //_delay_ms(500); // "Queima" tempo antes de continuar
  63. }
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement