TR0 = 0x01;
ADCCON3 |= 0x0e;
ADCCON3 &= 0x3f;
ADCCON3 |= 0x30;
ADCCON1 |= 0x30;
ADCCON1 |= 0x40;
while(!(ADCCON1 & 0x80));
adcvalue = (uint16) ADCL;
adcvalue |= (uint16) (ADCH << 8);
adcvalue = adcvalue >> 2;
T = adcvalue * 0.06229 - 303.3 - 25;
return T;
}
4.2片外气体传感器电压值采集
uint16 sensor_val;
float volt;
float get_VL(void){
sensor_val = get_adc();
volt = (sensor_val * 3.3) / 8192;
return volt;
}
uint16 get_adc()
{
uint32 value;
adc_init();
ADCIF = 0;
ADCCON3 = (0x80 | 0x10 | 0x00);
while(!ADCIF);
value = ADCL;
value = (((uint16)ADCH) << 8);
return (uint16) value;
}
void adc_init()
{
APCFG |= 1;
P0SEL |= (1 << (0));
P0DIR &= (1 << (0));
}
4.3无线传感器网络建立
void SampleApp_SendPeriodicMessage( void ) //发送周期信息
{ //调用AF_DataRequest()函数将数据无线广播出去
if ( AF_DataRequest( &SampleApp_Periodic_DstAddr, &SampleApp_epDesc, //发送目的地址+端点地址和传送模式
SAMPLEAPP_PERIODIC_CLUSTERID, //被Profile指定有效的集群号
1, //发送数据长度
(uint8*)&SampleA