Facebook
From przs, 9 Months ago, written in C.
Embed
Download Paste or View Raw
Hits: 114
  1. /*
  2.  * pawpat.c
  3.  *
  4.  * Created: 02.10.2019 13:36:58
  5.  * Author : student
  6.  */
  7.  
  8. #include <avr/io.h>
  9. #include <inttypes.h>
  10. #include <avr/interrupt.h>
  11. #include <avr/sleep.h>
  12.  
  13. //volatile
  14. //_BV( 1-7 ) - be vector
  15. volatile int interrupt = 0;
  16.  
  17. ISR( INT0_vect )
  18. {
  19.         interrupt = 0;
  20. }
  21.  
  22. ISR( INT1_vect )
  23. {
  24.         interrupt = 1;
  25. }
  26.  
  27. int main( void )
  28. {
  29.         int led = 1;
  30.  
  31.         DDRB = 0xFF; // ustawienie portu na wyjscie
  32.         PORTB = ~0x01;
  33.         MCUCR = ( _BV( ISC11 ) | _BV( ISC01 ) );
  34.         GICR = ( _BV( INT0 ) | _BV( INT1 ) );
  35.  
  36.         sei();
  37.     while( 1 )
  38.     {
  39.                 sleep_mode();
  40.  
  41.                 // przerwanie - obsluga
  42.                 if( interrupt == 0 )
  43.                         led++;
  44.                 else
  45.                         led--;
  46.  
  47.                 // zapetlenie
  48.                 if( led == 8 )
  49.                         led = 0;
  50.                 else if( led == -1 )
  51.                         led = 7;
  52.  
  53.                 PORTB = ~_BV( led );
  54.     }
  55. }
  56.  
  57.