call SingleChannel.getData[client]();
}
- command error_t ReadStream.postBuffer[uint8_t c](uint16_t *buf, uint16_t n) {
+ error_t postBuffer(uint8_t c, uint16_t *buf, uint16_t n)
+ {
if (n < sizeof(struct list_entry_t))
return ESIZE;
atomic
return SUCCESS;
}
+ command error_t ReadStream.postBuffer[uint8_t c](uint16_t *buf, uint16_t n) {
+ return postBuffer(c, buf, n);
+ }
+
task void readStreamDone() {
uint8_t c = client;
uint32_t actualPeriod = period;
msp430adc12_channel_config_t config = *call AdcConfigure.getConfiguration[c]();
config.sampcon_ssel = SAMPCON_SOURCE_SMCLK; // assumption: SMCLK runs at 1 MHz
config.sampcon_id = SAMPCON_CLOCK_DIV_1;
- call SingleChannel.configureMultiple[c]( &config, pos, count, period);
- call SingleChannel.getData[c]();
+ if (call SingleChannel.configureMultiple[c]( &config, pos, count, period) == SUCCESS)
+ call SingleChannel.getData[c]();
+ else {
+ postBuffer(c, pos, count);
+ post readStreamFail();
+ }
}
}
}
implementation
{
-#warning Accessing TimerA for ADC12
+
+#ifdef ADC12_TIMERA_ENABLED
+ #warning Accessing TimerA for ADC12
+#endif
+
enum {
SINGLE_DATA = 1,
SINGLE_DATA_REPEAT = 2,
{
error_t result = ERESERVE;
#ifdef ADC12_CHECK_ARGS
+#ifndef ADC12_TIMERA_ENABLED
+ if (jiffies>0)
+ return EINVAL;
+#endif
if (!config || jiffies == 1 || jiffies == 2)
return EINVAL;
#endif
{
error_t result = ERESERVE;
#ifdef ADC12_CHECK_ARGS
+#ifndef ADC12_TIMERA_ENABLED
+ if (jiffies>0)
+ return EINVAL;
+#endif
if (!config || !buf || !length || jiffies == 1 || jiffies == 2)
return EINVAL;
#endif
{
error_t result = ERESERVE;
#ifdef ADC12_CHECK_ARGS
+#ifndef ADC12_TIMERA_ENABLED
+ if (jiffies>0)
+ return EINVAL;
+#endif
if (!config || !buf || !length || length > 16 || jiffies == 1 || jiffies == 2)
return EINVAL;
#endif
{
error_t result = ERESERVE;
#ifdef ADC12_CHECK_ARGS
+#ifndef ADC12_TIMERA_ENABLED
+ if (jiffies>0)
+ return EINVAL;
+#endif
if (!config || !memctl || !numMemctl || numMemctl > 15 || !numSamples ||
!buf || jiffies == 1 || jiffies == 2 || numSamples % (numMemctl+1) != 0)
return EINVAL;