The final project of Embedde class.

Dependencies:   C12832 LM75B ESP-call MMA7660

Committer:
pkr7098
Date:
Thu Jun 03 07:08:47 2021 +0000
Revision:
1:ed1c6618f739
The final project of Embedde class.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
pkr7098 1:ed1c6618f739 1 #include "POT.h"
pkr7098 1:ed1c6618f739 2
pkr7098 1:ed1c6618f739 3 AnalogIn potL(A0);
pkr7098 1:ed1c6618f739 4 AnalogIn potR(A1);
pkr7098 1:ed1c6618f739 5
pkr7098 1:ed1c6618f739 6 static float _previousPotData[2] = {0, 0};
pkr7098 1:ed1c6618f739 7
pkr7098 1:ed1c6618f739 8 void potInit(void)
pkr7098 1:ed1c6618f739 9 {
pkr7098 1:ed1c6618f739 10 printf("Init potentiometers\r\n");
pkr7098 1:ed1c6618f739 11 _previousPotData[POT_LEFT] = potL.read();
pkr7098 1:ed1c6618f739 12 _previousPotData[POT_RIGHT] = potR.read();
pkr7098 1:ed1c6618f739 13 }
pkr7098 1:ed1c6618f739 14
pkr7098 1:ed1c6618f739 15 bool potIsChanged(int pot)
pkr7098 1:ed1c6618f739 16 {
pkr7098 1:ed1c6618f739 17 AnalogIn *pPot;
pkr7098 1:ed1c6618f739 18 float currentPotData;
pkr7098 1:ed1c6618f739 19 bool result;
pkr7098 1:ed1c6618f739 20
pkr7098 1:ed1c6618f739 21 switch(pot) {
pkr7098 1:ed1c6618f739 22 case POT_LEFT:
pkr7098 1:ed1c6618f739 23 pPot = &potL;
pkr7098 1:ed1c6618f739 24 break;
pkr7098 1:ed1c6618f739 25 case POT_RIGHT:
pkr7098 1:ed1c6618f739 26 pPot = &potR;
pkr7098 1:ed1c6618f739 27 break;
pkr7098 1:ed1c6618f739 28 default:
pkr7098 1:ed1c6618f739 29 pPot = &potL;
pkr7098 1:ed1c6618f739 30 break;
pkr7098 1:ed1c6618f739 31 }
pkr7098 1:ed1c6618f739 32
pkr7098 1:ed1c6618f739 33 currentPotData = (*pPot).read();
pkr7098 1:ed1c6618f739 34
pkr7098 1:ed1c6618f739 35 if(_previousPotData[pot] == currentPotData) {
pkr7098 1:ed1c6618f739 36 result = POT_UNCHANGED;
pkr7098 1:ed1c6618f739 37 } else {
pkr7098 1:ed1c6618f739 38 result = POT_CHANGED;
pkr7098 1:ed1c6618f739 39 }
pkr7098 1:ed1c6618f739 40 _previousPotData[pot] = currentPotData;
pkr7098 1:ed1c6618f739 41
pkr7098 1:ed1c6618f739 42 return result;
pkr7098 1:ed1c6618f739 43 }
pkr7098 1:ed1c6618f739 44
pkr7098 1:ed1c6618f739 45 float potValue(int pot)
pkr7098 1:ed1c6618f739 46 {
pkr7098 1:ed1c6618f739 47 AnalogIn *pPot;
pkr7098 1:ed1c6618f739 48
pkr7098 1:ed1c6618f739 49 switch(pot) {
pkr7098 1:ed1c6618f739 50 case POT_LEFT:
pkr7098 1:ed1c6618f739 51 pPot = &potL;
pkr7098 1:ed1c6618f739 52 break;
pkr7098 1:ed1c6618f739 53 case POT_RIGHT:
pkr7098 1:ed1c6618f739 54 pPot = &potR;
pkr7098 1:ed1c6618f739 55 break;
pkr7098 1:ed1c6618f739 56 default:
pkr7098 1:ed1c6618f739 57 pPot = &potL;
pkr7098 1:ed1c6618f739 58 break;
pkr7098 1:ed1c6618f739 59 }
pkr7098 1:ed1c6618f739 60
pkr7098 1:ed1c6618f739 61 return (*pPot).read();
pkr7098 1:ed1c6618f739 62 }
pkr7098 1:ed1c6618f739 63
pkr7098 1:ed1c6618f739 64 unsigned short potValueU16(int pot)
pkr7098 1:ed1c6618f739 65 {
pkr7098 1:ed1c6618f739 66 AnalogIn *pPot;
pkr7098 1:ed1c6618f739 67
pkr7098 1:ed1c6618f739 68 switch(pot) {
pkr7098 1:ed1c6618f739 69 case POT_LEFT:
pkr7098 1:ed1c6618f739 70 pPot = &potL;
pkr7098 1:ed1c6618f739 71 break;
pkr7098 1:ed1c6618f739 72 case POT_RIGHT:
pkr7098 1:ed1c6618f739 73 pPot = &potR;
pkr7098 1:ed1c6618f739 74 break;
pkr7098 1:ed1c6618f739 75 default:
pkr7098 1:ed1c6618f739 76 pPot = &potL;
pkr7098 1:ed1c6618f739 77 break;
pkr7098 1:ed1c6618f739 78 }
pkr7098 1:ed1c6618f739 79
pkr7098 1:ed1c6618f739 80 return (*pPot).read_u16();
pkr7098 1:ed1c6618f739 81 }