TinyOS开发:从声音检测到系统通信与存储的全面解析
1. 声音检测与MicrophoneC组件
在声音检测方面,DetectorC通过设置预分频器(ATM128_ADC_PRESCALE_16),将A/D转换时间缩短至28µs,这一优化可能使SoundLocalizer的精度提高2.9cm(85µs · 340m/s)。以下是“loud sound”检测代码:
module DetectorC { uses interface Atm128AdcSingle ; ... } implementation { // The threshold for a loud sound (determined experimentally) enum { THRESHOLD = 768 }; void detect () { call Atm128AdcSingle . getData (... microphone A/D channel ... , ATM128_ADC_VREF_OFF , FALSE , ATM128_ADC_PRESCALE_16 ); } async event void Atm128AdcSingle . dataReady ( uint16_t data , bool precise ){ /* If we ’re the current ADC owner: