uni

Thing1's amazing uni repo
Log | Files | Refs

reading.h (736B)


      1 #include "helper.h"
      2 
      3 /* READING_INTERVAL should be declared by the caller program before this code is included */
      4 
      5 typedef struct reading {
      6 	unsigned int left, mid, right;
      7 } reading;
      8 
      9 reading
     10 readSensors() 
     11 {
     12 	return (reading){analogRead(LDRA), analogRead(LDRB), analogRead(LDRC)};
     13 }
     14 
     15 reading
     16 readSensorsMean(int readings) 
     17 {
     18 	reading r;
     19 	unsigned int left = 0, mid = 0, right = 0;
     20 
     21 	for (int i = 0; i < readings; i++) {
     22 		r = readSensors();
     23 		left += r.left;
     24 		mid += r.mid;
     25 		right += r.right;
     26 		SEprintf("single:%d,%d,%d\n", r.left, r.mid, r.right);
     27 		delay(READING_INTERVAL);
     28 	}
     29 
     30 	left /= readings;
     31 	mid /= readings;
     32 	right /= readings;
     33 	SEprintf("mean:%u,%u,%u\n", left, mid, right);
     34 	r = (reading){left, mid, right};
     35 	return r;
     36 }