luanpcs

Relatório 02

Jul 24th, 2021 (edited)
246
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #define BUTTON_ON !(PIND & 0b00010000)
  2. #define LED_RED_ON PORTD = PORTD | 0b10000000
  3. #define LED_RED_OFF PORTD = PORTD & ~(0b10000000)
  4. #define LED_GREEN_ON PORTD = PORTD | 0b00100000
  5. #define LED_GREEN_OFF PORTD = PORTD & ~(0b00100000)
  6. #define DELAY _delay_ms(500)
  7. char estado = 0;
  8. int main(void)
  9. {
  10.   DDRD = DDRD | 0b10100000;   // Configurando pino 5 e 7 como saída
  11.   PORTD = PORTD | 0b00010000; // Habilita resistor de PULL-UP
  12.   for (;;)
  13.   {
  14.     switch (estado)
  15.     {
  16.       case 0:
  17.         LED_RED_OFF;   //desliga led do pino 7
  18.         LED_GREEN_OFF; //desliga led do pino 5
  19.         if (BUTTON_ON)
  20.         {
  21.           estado = estado + 1; //incrementa o estado
  22.           DELAY;               // delay para evitar o Bouncing
  23.         }
  24.         break;
  25.       case 1:
  26.         LED_RED_ON;    //liga led do pino 7
  27.         LED_GREEN_OFF; //desliga led do pino 5
  28.         if (BUTTON_ON)
  29.         {
  30.           estado = estado + 1; //incrementa o estado
  31.           DELAY;               // delay para evitar o Bouncing
  32.         }
  33.         break;
  34.       case 2:
  35.         LED_RED_OFF;  //desliga led do pino 7
  36.         LED_GREEN_ON; //liga led do pino 5
  37.         if (BUTTON_ON)
  38.         {
  39.           estado = estado + 1; //incrementa o estado
  40.           DELAY;               // delay para evitar o Bouncing
  41.         }
  42.         break;
  43.       case 3:
  44.         LED_RED_ON;   //liga led do pino 7
  45.         LED_GREEN_ON; //liga led do pino 5
  46.         if (BUTTON_ON)
  47.         {
  48.           estado = estado + 1; //incrementa o estado
  49.           DELAY;               // delay para evitar o Bouncing
  50.         }
  51.         break;
  52.       default:
  53.         estado = 0;
  54.         break;
  55.     }
  56.   }
  57. }
  58.  
RAW Paste Data