TinyOS 开发:从麦克风控制到系统通信与存储
1. 麦克风控制相关组件与代码分析
在传感器控制方面,DetectorC 和 MicrophoneC 是两个重要的组件。
1.1 DetectorC 组件
DetectorC 通过设置预分频器的值(ATM128_ADC_PRESCALE_16),将 A/D 转换时间缩短至 28 µs,这有可能使 SoundLocalizer 的精度提高 2.9 cm(85 µs · 340 m/s)。以下是其代码实现:
module DetectorC { uses interface Atm128AdcSingle ; ... } implementation { // 大声响的阈值(通过实验确定) 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 pr