Advertisement
Guest User

Untitled

a guest
Apr 29th, 2016
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.15 KB | None | 0 0
  1. // Quick Demo of light sensor
  2.  
  3. // ------- Preamble -------- //
  4. #define F_CPU 1000000
  5. #include <avr/io.h>
  6. #include <util/delay.h>
  7.  
  8. int returnValue(int i);
  9.  
  10. int main(void) {
  11.  
  12. uint16_t PotVal;
  13. uint16_t LDRVal;
  14. DDRB=0xFF;
  15. PORTB=0x00;
  16. ADMUX |= (1 << REFS0); /* reference voltage on AVCC */
  17. ADCSRA |= (1 << ADPS2); /* ADC clock prescaler /16 */
  18. ADCSRA |= (1 << ADEN); /* enable ADC */
  19.  
  20. // ------ Event loop ------ //
  21. while (1) {
  22. LDRVal = returnValue(1);
  23. PotVal = returnValue(0);
  24.  
  25.  
  26. if(LDRVal > PotVal) {
  27. PORTB |=(1<<PB1);
  28. PORTB |=(1<<PB2);
  29. PORTB |=(1<<PB3);
  30. }
  31. else {
  32. PORTB &= ~(1<<PB1);
  33. PORTB &= ~(1<<PB2);
  34. PORTB &= ~(1<<PB3);
  35. }
  36. _delay_ms(50);
  37. } /* End event loop */
  38. return (0); /* This line is never reached */
  39. }
  40.  
  41. int returnValue(int i){
  42. ADMUX &=~(0<<MUX0) | ~(0<<MUX1) | ~(0<<MUX2) | ~(0<<MUX3);
  43. if(i) ADMUX |=(1<<MUX1);
  44. ADCSRA |= (1<<ADSC) | (1<<ADIF);
  45. while(~ADCSRA & 1<<ADIF);
  46. int returnval=ADC;
  47. return returnval;
  48.  
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement