The final project of Embedde class.

Dependencies:   C12832 LM75B ESP-call MMA7660

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers POT.cpp Source File

POT.cpp

00001 #include "POT.h"
00002 
00003 AnalogIn    potL(A0);
00004 AnalogIn    potR(A1);
00005 
00006 static float _previousPotData[2] = {0, 0};
00007 
00008 void potInit(void)
00009 {
00010     printf("Init potentiometers\r\n");
00011     _previousPotData[POT_LEFT] = potL.read();
00012     _previousPotData[POT_RIGHT] = potR.read();
00013 }
00014 
00015 bool potIsChanged(int pot)
00016 {
00017     AnalogIn *pPot;
00018     float currentPotData;
00019     bool result;
00020 
00021     switch(pot) {
00022         case POT_LEFT:
00023             pPot = &potL;
00024             break;
00025         case POT_RIGHT:
00026             pPot = &potR;
00027             break;
00028         default:
00029             pPot = &potL;
00030             break;
00031     }
00032 
00033     currentPotData = (*pPot).read();
00034 
00035     if(_previousPotData[pot] == currentPotData) {
00036         result = POT_UNCHANGED;
00037     } else {
00038         result = POT_CHANGED;
00039     }
00040     _previousPotData[pot] = currentPotData;
00041 
00042     return result;
00043 }
00044 
00045 float potValue(int pot)
00046 {
00047     AnalogIn *pPot;
00048 
00049     switch(pot) {
00050         case POT_LEFT:
00051             pPot = &potL;
00052             break;
00053         case POT_RIGHT:
00054             pPot = &potR;
00055             break;
00056         default:
00057             pPot = &potL;
00058             break;
00059     }
00060 
00061     return (*pPot).read();
00062 }
00063 
00064 unsigned short potValueU16(int pot)
00065 {
00066     AnalogIn *pPot;
00067 
00068     switch(pot) {
00069         case POT_LEFT:
00070             pPot = &potL;
00071             break;
00072         case POT_RIGHT:
00073             pPot = &potR;
00074             break;
00075         default:
00076             pPot = &potL;
00077             break;
00078     }
00079 
00080     return (*pPot).read_u16();
00081 }