Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define F_CPU 1000000UL
- #include <avr/io.h>
- #include <avr/interrupt.h>
- #include "LCD4b.h"
- #include <unit/delay.h>
- #include <math.h>
- int sens[6];
- int val1, val2, val3, val4, val5;
- float tot[5];
- int bashtotal=0;
- int a;
- int dc;
- int bc;
- int limit=150;
- int value;
- int measure();
- float totalvalue;
- int main(void)
- {
- int distance;
- DDRD=0xff;
- PORTD=0x00;
- InitalizeLCD();
- while (1)
- {
- measure();
- }
- }
- measure()
- {
- for(a=0; a<5; a++)
- {
- ADCSRA |= 1<<ADPS2;
- if(a==0)
- {
- ADMUX = 5;
- }
- if(a==1)
- {
- ADMUX = 4;
- }
- if(a==2)
- {
- ADMUX = 3;
- }
- if(a==3)
- {
- ADMUX = 2;
- }
- if(a==4)
- {
- ADMUX = 1;
- }
- ADCSRA |= 1<<ADIE;
- ADCSRA |= 1<<ADEN;
- sei();
- ADCSRA |= 1<<ADSC;
- }
- }
- ISR(ADC_vect)
- {
- int theLowADC = ADCL;
- int theTenBitResults = ADCH<<8 | theLowADC;
- int distance = theTenBitResults;
- if(ADMUX == 5)
- {
- val5=distance;
- if(distance<limit)
- {sens[5]=1;}
- else
- {sens[5]=0;}
- }
- if(ADMUX == 4)
- {
- val4=distance;
- if(distance<limit)
- {sens[4]=1;}
- else
- {sens[4]=0;}
- }
- if(ADMUX == 3)
- {
- val3=distance;
- if(distance<limit)
- {sens[3]=1;}
- else
- {sens[3]=0;}
- }
- if(ADMUX == 2)
- {
- val2=distance;
- if(distance<limit)
- {sens[2]=1;}
- else
- {sens[2]=0;}
- }
- if(ADMUX == 1)
- {
- val1=distance;
- if(distance<limit)
- {sens[1]=1;}
- else
- {sens[1]=0;}
- }
- totalvalue= ((sens[1]*5 + sens[2]*1 + sens[3]*2 + sens[4]*3 + sens[5]*4)/(sens[1]+sens[2]+sens[3]+sens[4]+sens[5]));
- //switch (a)
- //{
- //case 0:
- //tot[0]=totalvalue;
- //break;
- ////case 1:
- //tot[1]=totalvalue;
- //break;
- //case 2:
- //tot[2]=totalvalue;
- //break;
- //case 3:
- //tot[3]=totalvalue;
- //break;
- //case 4:
- //tot[4]=totalvalue;
- //break;
- //}
- bashtotal=totalvalue;
- if(bashtotal == 1)
- {PORTD=1<<PD0;}
- if(bashtotal == 2)
- {PORTD=1<<PD1;}
- if(bashtotal == 3)
- {PORTD=1<<PD2;}
- if(bashtotal == 4)
- {PORTD=1<<PD3;}
- if(bashtotal == 5)
- {PORTD=1<<PD4;}
- ADCSRA |= 1<<ADSC;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement