while(1) { CLKCTRL |= 0x80; /* muc休眠时,16M外部晶振保持打开*/ rtcTiming1ms(); /* rtc定时1ms后唤醒mcu */ PWRDWN = 0x04; /* 进入低功耗模式,等待RTC唤醒 */ rtcOff(); /* 关闭rtc */ CLKCTRL &= ~0x80; /* muc休眠时,16M外部晶振关闭 */ /* rtc定时time后唤醒mcu */ RNGCTL=0x80; /* 启动随机数产生器 */ while ((RNGCTL&0x20)==0); /* 等待完成标志 */ ramdom_time = RNGCTL; uart_putchar(RNGCTL); uart_putchar(0xFF); uart_putchar(ramdom_time); rtcTiming(ramdom_time); spiReadWriteReg(WRITE_REG + CONFIG, 0x0e); /* rf上电,使能RF中断 */ spiWriteBuffer(WR_TX_PLOAD, GucIdBuffer, TX_PLOAD_WIDTH); /* 写数据到RF发送数据缓冲区 */ while(!(CLKLFCTRL & 0x08)); /* 等待主时钟切换为外部16M时钟 */ RFCE = 1; /* RF收发使能 */ Dly10us(); /* 延时10us */ RFCE = 0; /* RF收发禁止 */ PWRDWN = 0x07; /* mcu进入待机模式,等待rf中断唤醒 */ rfOff(); /* 关闭RF电源 */ PWRDWN = 0x04; }