Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //czestotliwosc zegara
- #define F_CPU 1000000L
- #include <avr/interrupt.h>
- #include <avr/io.h>
- #include <util/delay.h>
- #define LED1 PB0 //definicja LED1 (DO którego pinu pod³¹czony LED1)
- #define LED2 PB1 //definicja LED2 (DO którego pinu pod³¹czony LED2)
- #define KLAWISZ PC0 //definicja KLAWISZ (DO którego pinu pod³¹czony klawisz)
- #define ADCIN PC5 //definicja ADCIN (wejœcie ADC)
- int main(void)
- {
- //Uruchomienie ADC, wewnêtrzne napiecie odniesienia, tryb pojedynczej konwersji, preskaler 128, wejœcie PIN5, wynik DO prawej
- ADCSRA = (1<<ADEN) | (1<<ADFR) //ADEN: ADC Enable (uruchomienie przetwornika), ADFR: ADC Free Running
- //ADPS2:0: ustawienie preskalera, preskaler = 8
- |(0<<ADPS0)
- |(1<<ADPS1)
- |(1<<ADPS2);
- ADMUX = (1<<REFS1) | (1<<REFS0) | (1<<ADSC) //REFS1:0: Reference Selection Bits
- //Internal 2.56V Voltage Reference WITH external capacitor AT AREF pin
- |(1<<MUX2) | (1<<MUX0); //Input Channel Selections (ADC5 - Pin 5 )
- //ustawienie wejœc/wyjœæ
- DDRB |= (1<<LED1) | (1<<LED2); //Ustawienie pinów steruj¹cych diodami jako wyjœcia
- DDRC=0xff; //Nieu¿ywane Piny na porcie C jako wyjœcia
- DDRC &=~ (1<<KLAWISZ); //Ustawienie pinu klawisza jako wejœcie
- DDRC &=~ (1<<ADCIN); //Ustawienie Wejœcia ADC
- PORTC |= (1<<KLAWISZ); //Pull_up klawisz
- FOR(;;)//pêtla g³ówna
- {
- // IF(!(PINC & (1<<KLAWISZ)))//jeœli klawisz wciœniety
- IF(ADC<350)//jeœli wynik ADC mniejszy od 350 gasi obydwie diody
- {
- PORTB &=~ (1<<LED1);
- PORTB &=~ (1<<LED2);
- }
- ELSE IF(ADC<700)//jeœli 700>ADC>=350 LED1 œwieci
- {
- PORTB |= (1<<LED1);
- PORTB &=~ (1<<LED2);
- }
- ELSE //jeœli ADC>=700 œwiec¹ obydwie diody
- {
- PORTB |= (1<<LED1);
- PORTB |= (1<<LED2);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement