document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. // Software für Lampensimulator mit ATtiny2313
  2. // Version 1
  3.  
  4. #include <avr/io.h>
  5. #include <stdlib.h>
  6. #include <util/delay.h>
  7.  
  8. #define TRUE 1
  9. #define FALSE 0
  10.  
  11. //Funktion zum Abfragen des Zustands des negierenden Tasters1
  12. int taster1(void)
  13. {
  14.     if (PIND & (1<<PIND0))
  15.         {
  16.             return FALSE;
  17.         }
  18.         else
  19.         {
  20.             return TRUE;
  21.         }
  22. }
  23.  
  24. //Funktion zum Abfragen des Zustands des negierenden Tasters2
  25. int taster2(void)
  26. {
  27.     if (PIND & (1<<PIND1))
  28.         {
  29.             return FALSE;
  30.         }
  31.         else
  32.         {
  33.             return TRUE;
  34.         }
  35. }
  36.  
  37. //Funktion zum Abfragen des Zustands des negierenden Tasters3
  38. int taster3(void)
  39. {
  40.     if (PIND & (1<<PIND2))
  41.         {
  42.             return FALSE;
  43.         }
  44.         else
  45.         {
  46.             return TRUE;
  47.         }
  48. }
  49.  
  50. int main (void) {
  51.  
  52.     // Port B Pin0, Pin1, Pin2 auf Ausgang setzen
  53.     DDRB |= (1 << PIN0) | (1 << PIN1) | (1 << PIN2);
  54.     // Port D Pin0, Pin1 und Pin2 (Taster 1, 2 3) als Eingänge setzen
  55.     DDRD &= ~((1 << PIN0) | (1 << PIN1) | (1 << PIN2));
  56.    
  57.     uint8_t taster1toggle = FALSE;
  58.     uint8_t taster2toggle = FALSE;
  59.     uint8_t taster3toggle = FALSE;
  60.    
  61.     uint8_t taster1_alt = FALSE;
  62.     uint8_t taster2_alt = FALSE;
  63.     uint8_t taster3_alt = FALSE;
  64.  
  65.     while (1)
  66.         {                  
  67.             if ((taster1()==TRUE) && (taster1_alt == FALSE))
  68.                 {
  69.                 if (taster1toggle==FALSE)
  70.                     {
  71.                         taster1toggle=TRUE;
  72.                     }
  73.                     else
  74.                     {
  75.                         taster1toggle=FALSE;
  76.                     }
  77.                 }
  78.             taster1_alt=taster1();
  79.             if (taster1toggle == TRUE)
  80.                 {
  81.                 PORTB |= (1<<PIN0); // einzelnes Bit setzen, ohne die anderen zu beeinflussen
  82.                 }
  83.                 else
  84.                 {
  85.                 PORTB &= ~(1 << PIN0); // einzelnes Bit löschen, ohne die anderen zu beeinflussen
  86.                 }
  87.  
  88.             if ((taster2()==TRUE) && (taster2_alt == FALSE))
  89.                 {
  90.                 if (taster2toggle==FALSE)
  91.                     {
  92.                         taster2toggle=TRUE;
  93.                     }
  94.                     else
  95.                     {
  96.                         taster2toggle=FALSE;
  97.                     }
  98.                 }
  99.             taster2_alt=taster2();
  100.             if (taster2toggle == TRUE)
  101.                 {
  102.                 PORTB |= (1<<PIN1); // einzelnes Bit setzen, ohne die anderen zu beeinflussen
  103.                 }
  104.                 else
  105.                 {
  106.                 PORTB &= ~(1 << PIN1); // einzelnes Bit löschen, ohne die anderen zu beeinflussen
  107.                 }
  108.                
  109.             if ((taster3()==TRUE) && (taster3_alt == FALSE))
  110.                 {
  111.                 if (taster3toggle==FALSE)
  112.                     {
  113.                         taster3toggle=TRUE;
  114.                     }
  115.                     else
  116.                     {
  117.                         taster3toggle=FALSE;
  118.                     }
  119.                 }
  120.                 taster3_alt=taster3();
  121.             if (taster3toggle == TRUE)
  122.                     {
  123.                     PORTB |= (1<<PIN2); // einzelnes Bit setzen, ohne die anderen zu beeinflussen
  124.                     }
  125.                     else
  126.                     {
  127.                     PORTB &= ~(1 << PIN2); // einzelnes Bit löschen, ohne die anderen zu beeinflussen
  128.                     }
  129.             _delay_ms(10);
  130.         }
  131.     return 0;
  132. }
');