Advertisement
Guest User

Koodi

a guest
Jan 23rd, 2017
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.46 KB | None | 0 0
  1. #define F_CPU 8000000UL
  2. #include <util/delay.h>
  3. #include <avr/io.h>
  4.  
  5. #define ON bit_is_clear(PINA,0) //ON painikkeen määrittely
  6. #define OFF bit_is_clear(PIND,2) //OFF painikkeen määrittely
  7. #define ANTURI1 bit_is_set(PIND,3) //Anturin 1 määrittely
  8. #define ANTURI2 bit_is_set(PIND,4)
  9.  
  10. #define VALMIUSTILA 1
  11. #define VALVONTATILA 2
  12. #define HALYTYSTILA 3
  13.  
  14. char tila; //Muuttujan tila määrittely
  15.  
  16. void valmiustila()
  17. {
  18.     PORTB=0x80; //Sytytetään TOIMINTA led
  19.     while(tila==VALMIUSTILA)
  20.     if(ON)      //Luetaan ON
  21.     tila=VALVONTATILA;
  22. }
  23.  
  24. void valvontatila()
  25. {
  26.     while(tila==VALVONTATILA)
  27.     {
  28.         PORTB=0x00; //Led portissa PB7 sammuu
  29.         _delay_ms(250);
  30.         PORTB=0x80; //Led portissa PB7 syttyy
  31.         _delay_ms(250);
  32.  
  33.         if(ANTURI1) //Luetaan ANTURI1
  34.         tila=HALYTYSTILA;
  35.         if(ANTURI2) //Luetaan ANTURI2
  36.         tila=HALYTYSTILA;
  37.         if(OFF)     //Luetaan OFF
  38.         tila=VALMIUSTILA;
  39.     }
  40. }
  41.  
  42. void halytystila()
  43. {
  44.     PORTB=0x01; //Lähtö portissa PB0 menee päälle
  45.     while(tila==HALYTYSTILA)
  46.     if(OFF)     //Luetaan OFF
  47.     tila=VALMIUSTILA;
  48. }
  49.  
  50. int main(void)      //Pääohjelma
  51. {
  52.     PORTB=0xFF; //Portin B alustukset
  53.     DDRB=0xFF;  //Kaikki lähtöjä (output)
  54.  
  55.     PORTD=0x7C; //Portin D alustukset
  56.     DDRD=0x40;
  57.    
  58.     PORTA=0xFF;
  59.     DDRA=0x00;
  60.     tila=VALMIUSTILA;
  61.     while(1)
  62.     {
  63.         switch(tila)    //Switch-case valintarakenne
  64.         {
  65.             case VALMIUSTILA:
  66.             valmiustila();
  67.             break;
  68.  
  69.             case VALVONTATILA:
  70.             valvontatila();
  71.             break;
  72.  
  73.             case HALYTYSTILA:
  74.             halytystila();
  75.             break;
  76.         }
  77.     }
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement