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 sens5;
- int sens4;
- int sens3;
- int sens2;
- int sens1;
- int a;
- int value;
- int measure();
- int totalvalue;
- int main(void)
- {
- int distance;
- InitalizeLCD();
- while (1)
- {
- measure();
- }
- }
- measure()
- {
- for(a=0; a<5; a++)
- {
- ADCSRA |= 1<<ADPS2;
- if(a==0)
- {
- ADMUX = 0b00000101;
- }
- if(a==1)
- {
- ADMUX = 0b00000100;
- }
- if(a==2)
- {
- ADMUX = 0b00000011;
- }
- if(a==3)
- {
- ADMUX = 0b00000010;
- }
- if(a==4)
- {
- ADMUX = 0b00000001;
- }
- 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 = 0b00000101)
- {
- if(distance<100)
- {sens5=1;}
- else
- {sens5=0;}
- }
- if(ADMUX = 0b00000100)
- {
- if(distance<100)
- {sens4=1;}
- else
- {sens4=0;}
- }
- if(ADMUX = 0b00000011)
- {
- if(distance<100)
- {sens3=1;}
- else
- {sens3=0;}
- }
- if(ADMUX = 0b00000010)
- {
- if(distance<100)
- {sens2=1;}
- else
- {sens2=0;}
- }
- if(ADMUX = 0b00000001)
- {
- if(distance<100)
- {sens1=1;}
- else
- {sens1=0;}
- }
- totalvalue= ((sens1*1 + sens2*2 + sens3*3 + sens4*4 + sens5*5)/(sens1+sens2+sens3+sens4+sens5));;
- SendIntegerToLocation(1,2,totalvalue);
- _delay_ms(50);
- ADCSRA |= 1<<ADSC;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement