[Tinyos-help] ADC on telosb

Poornima Jayarao pjayarao at yahoo.com
Fri Sep 23 18:13:22 PDT 2005


Hi Joe,

I am trying to use the ADC with an interrupt. 
The attempt is to use the ADC once per int fired.
So,upon (first) int fired, the global flag "once"
calls start_sampling once, sets up DMA and 
ADC as per your start_sampling code. Then 
upon DMA0 transfer done the green led toggles. 
But the second interrupt does not toggle the green
Led.

Obviously I am unable to figure what I am doing 
wrong in the code below. Please help.
BR
PJ
------------------------------------------
uint8_t once = 0; // setup ADC and DMA only once

async event int.fired(){
call int.clear() ;
call int.disable();
if(!once) {post int_process();}
else { call DMA0.repeatTransfer((void *)
ADC12MEM0_gWriteBuffer,BUFFER_SIZE);
}
call int.enable();
}

task void int_process() {
call Leds.greenOn();
start_sampling();
}

start_sampling() {
  if (!once) {
   .... Code here to setup DMA and ADC only once.
  once++;
  }
}

async event void DMA0.transferDone(result_t s) {
call Leds.greenToggle();
}
-------------------------------------------


		
__________________________________ 
Yahoo! Mail - PC Magazine Editors' Choice 2005 
http://mail.yahoo.com


More information about the Tinyos-help mailing list