interface Msp430Adc12MultiChannel as MultiChannel[uint8_t id];
interface Msp430Adc12Overflow as Overflow[uint8_t id];
interface AsyncStdControl as DMAExtension[uint8_t id];
- }
- uses {
+ }
+ uses {
interface ArbiterInfo as ADCArbiterInfo;
- interface HplAdc12;
+ interface HplAdc12;
interface Msp430Timer as TimerA;;
interface Msp430TimerControl as ControlA0;
interface Msp430TimerControl as ControlA1;
interface HplMsp430GeneralIO as Port65;
interface HplMsp430GeneralIO as Port66;
interface HplMsp430GeneralIO as Port67;
- }
+ }
}
implementation
{
uint8_t state; /* see enum above */
- uint16_t *resultBuffer; /* conversion results */
uint16_t resultBufferLength; /* length of buffer */
+ uint16_t *COUNT_NOK(resultBufferLength) resultBufferStart;
+ uint16_t *BND_NOK(resultBufferStart, resultBufferStart+resultBufferLength) resultBuffer; /* conversion results */
uint16_t resultBufferIndex; /* offset into buffer */
uint8_t numChannels; /* number of channels (multi-channel conversion) */
uint8_t clientID; /* ID of client that called getData() */
case MULTI_CHANNEL:
{
uint16_t i = 0, k;
+ resultBufferStart = resultBuffer;
do {
*resultBuffer++ = call HplAdc12.getMem(i);
} while (++i < numChannels);
case MULTIPLE_DATA:
{
uint16_t i = 0, length, k;
+ resultBufferStart = resultBuffer;
if (resultBufferLength - resultBufferIndex > 16)
length = 16;
else
case MULTIPLE_DATA_REPEAT:
{
uint8_t i = 0;
+ resultBufferStart = resultBuffer;
do {
*resultBuffer++ = call HplAdc12.getMem(i);
} while (++i < resultBufferLength);