Advertisement
Guest User

Untitled

a guest
Jul 4th, 2016
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //czestotliwosc zegara
  2. #define F_CPU 1000000L
  3.  
  4. #include <avr/interrupt.h>
  5. #include <avr/io.h>
  6. #include <util/delay.h>
  7.  
  8. #define LED1 PB0    //definicja LED1 (DO którego pinu pod³¹czony LED1)
  9. #define LED2 PB1    //definicja LED2 (DO którego pinu pod³¹czony LED2)
  10. #define KLAWISZ PC0 //definicja KLAWISZ (DO którego pinu pod³¹czony klawisz)
  11. #define ADCIN PC5   //definicja ADCIN (wejœcie ADC)
  12.  
  13. int main(void)
  14. {
  15.   //Uruchomienie ADC, wewnêtrzne napiecie odniesienia, tryb pojedynczej konwersji, preskaler 128, wejœcie PIN5, wynik DO prawej
  16.   ADCSRA =   (1<<ADEN) | (1<<ADFR) //ADEN: ADC Enable (uruchomienie przetwornika), ADFR: ADC Free Running
  17.  
  18.    //ADPS2:0: ustawienie preskalera, preskaler = 8
  19.    |(0<<ADPS0)
  20.    |(1<<ADPS1)
  21.    |(1<<ADPS2);
  22.  
  23.   ADMUX  =  (1<<REFS1) | (1<<REFS0) | (1<<ADSC) //REFS1:0: Reference Selection Bits
  24.          //Internal 2.56V Voltage Reference WITH external capacitor AT AREF pin
  25.     |(1<<MUX2) | (1<<MUX0); //Input Channel Selections (ADC5 - Pin 5 )
  26.  
  27.   //ustawienie wejœc/wyjœæ
  28.   DDRB  |= (1<<LED1) | (1<<LED2); //Ustawienie pinów steruj¹cych diodami jako wyjœcia
  29.   DDRC=0xff;                      //Nieu¿ywane Piny na porcie C jako wyjœcia
  30.   DDRC  &=~ (1<<KLAWISZ);         //Ustawienie pinu klawisza jako wejœcie
  31.   DDRC &=~ (1<<ADCIN);            //Ustawienie Wejœcia ADC
  32.  
  33.   PORTC |=  (1<<KLAWISZ);         //Pull_up klawisz
  34.  
  35.   FOR(;;)//pêtla g³ówna
  36.   {
  37.     // IF(!(PINC & (1<<KLAWISZ)))//jeœli klawisz wciœniety
  38.  
  39.   IF(ADC<350)//jeœli wynik ADC mniejszy od 350 gasi obydwie diody
  40.   {
  41.     PORTB  &=~ (1<<LED1);
  42.     PORTB  &=~ (1<<LED2);
  43.   }
  44.   ELSE IF(ADC<700)//jeœli 700>ADC>=350 LED1 œwieci
  45.   {
  46.     PORTB  |= (1<<LED1);
  47.     PORTB  &=~ (1<<LED2);
  48.   }
  49.   ELSE //jeœli ADC>=700 œwiec¹ obydwie diody
  50.                 {
  51.     PORTB  |= (1<<LED1);
  52.     PORTB  |= (1<<LED2);
  53.   }
  54.   }
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement