Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * DawidTomaszewski3.c
- *
- * Created: 2018-01-10 08:55:34
- * Author: C245
- */
- #include <avr/io.h>
- #include <util/delay.h>
- #include <avr/interrupt.h>
- #define d1 0
- #define d2 1
- #define d3 2
- #define d4 3
- #define d5 4
- #define d6 5
- #define d7 6
- #define d8 7
- int i = -1;
- int a = 0;
- int b = 0;
- void setup(){
- DDRD |= (1<<d1);
- DDRD |= (1<<d2);
- DDRD |= (1<<d3);
- DDRD |= (1<<d4);
- DDRD |= (1<<d5);
- DDRD |= (1<<d6);
- DDRD |= (1<<d7);
- DDRD |= (1<<d8);
- PORTD |=(1<<d1);
- PORTD |=(1<<d2);
- PORTD |=(1<<d3);
- PORTD |=(1<<d4);
- PORTD |=(1<<d5);
- PORTD |=(1<<d6);
- PORTD |=(1<<d7);
- PORTD |=(1<<d8);
- DDRC &=~(1<<0);
- ADMUX |= (1<<REFS0);
- ADCSRA |=(1<<ADEN) | (1<<ADSC) | (1<<ADPS2) | (1<<ADPS0) | (1<<ADIE);
- }
- void loop(){
- int AC = ADC;
- if(AC < 600 && AC > 400) a = 0;
- else if (AC > 1000) a = 1;
- else if(AC < 40) a = 2;
- //_delay_ms(20);
- switch(a){
- case 0:
- b=0;
- break;
- case 1:
- if (b==0)
- {
- i++;
- PORTD &= ~(1<<i);
- b=1;
- }
- else
- {
- b=1;
- }
- break;+++-+
- case 2:
- if (b==0)
- {
- i--;
- PORTD|= (1<<i);
- b=2;
- }
- else
- {
- b=2;
- }
- break;
- }
- }
- int main(void)
- {
- setup();
- while (1) loop();
- return 0;
- }
- ISR(ADC_vect){
- int AC = ADC;
- if(AC < 600 && AC > 400) a = 0;
- else if (AC > 1000) a = 1;
- else if(AC < 40) a = 2;
- _delay_ms(20);
- switch(a){
- case 0:
- b=0;
- break;
- case 1:
- if (b==0)
- {
- i++;
- PORTD &= ~(1<<i);
- b=1;
- }
- else
- {
- b=1;
- }
- break;
- case 2:
- if (b==0)
- {
- i--;
- PORTD|= (1<<i);
- b=2;
- }
- else
- {
- b=2;
- }
- break;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement