您现在的位置是:首页 > 手机 > 正文

C2530(zigbee)初学者开发:低功耗模式

发布时间:2022-05-30 09:19:40来源:

导读 大家好,小科来为大家解答以上问题。C2530(zigbee)入门开发: 低功耗模式这个很多人还不知道,现在让我们一起来看看吧! 解答:1、一、低功

大家好,小科来为大家解答以上问题。C2530(zigbee)入门开发:低功耗模式这个很多人还不知道,现在让我们一起来看看吧!

解答:

1、 一、低功耗模式介绍

2、 低功耗是现在便携和消费类设备都应该考虑的功能,尤其是电池供电的设备。功耗的把握很重要,直接影响待机时间。比如:我们现在的手机、平板电脑、商务笔记本电脑、无线耳机等消费设备,还有智能井盖、智能路灯,这些不插电源的物联网设备等等。

3、 CC2530支持低功耗模式配置,可通过“电源寄存器”章节进行配置。这里介绍一下CC2530的几种低功耗模式的配置,截图到CC2530中文数据手册。

4、 第二,配置低功耗模式

5、 不同的操作模式(电源模式)支持低功耗操作。各种操作模式指活动模式、空闲模式和电源。

6、 模式1、2和3(PM1-PM3)。通过关闭电源模块避免静态(泄漏)功耗,通过使用门控时钟和关闭振荡器降低动态功耗,实现超低功耗。

7、 三。示例代码

8、 3.1示例代码1

9、 /******************************************************************************

10、 使用睡眠定时器实现低功耗。

11、 ******************************************************************************/

12、 #包括

13、 #定义uint无符号整数

14、 #定义uchar无符号字符

15、 #定义CC2530_延迟15000

16、 #定义RLEDP1_0

17、 #defineYLEDP1_1//LED灯控制IO端口定义

18、 voidcc2530_Delay(void);

19、 voidcc2530_Init_IO_AND_LED(void);

20、 voidcc2530_syspowermode(ucharsel);

21、 /****************************************************************

22、 延迟功能

23、 ****************************************************************/

24、 voidCC2530_Delay(无效)

25、 {

26、 uintI;

27、 for(I=0;i=20)

28、 {

29、 count=0;

30、 RLED=0;

31、 cc2530_syspowermode(3);

32、 //闪烁10次后进入睡眠PM3。

33、 }

34、 //cc2530_Delay();

35、 cc2530_Delay();

36、 //延迟功能是不可见的,只能通过改变系统时钟频率或者DEALY的宏来定义。

37、 //改变小灯的闪烁频率

38、 };

39、 }

40、 /*****************************************

41、 中断处理功能-系统唤醒

42、 *****************************************/

43、 #pragmavector=P0INT_VECTOR

44、 __中断voidP0_ISR(void)

45、 {

46、 if(P0IFG0)

47、 {

48、 P0IFG=0;

49、 }

50、 P0IF=0;

51、 cc2530_syspowermode(4);

52、 }

53、 复制代码;I);

54、 3.2示例代码2

55、 /******************************************************************************

56、 使用睡眠定时器实现低功耗

57、 ******************************************************************************/

58、 #包括

59、 /*****************************************

60、 //定义类型

61、 *****************************************/

62、 #定义uchar无符号字符

63、 #定义uint无符号整数

64、 #定义RLEDP1_0

65、 #定义GLEDP1_1

66、 #定义晶体0

67、 #定义RC1

68、 typedef无符号字符UINT8

69、 typedef无符号字符INT8U

70、 typedef无符号短整型UINT16

71、 typedef无符号短整型INT16U

72、 typedef无符号长整型UINT32

73、 typedef无符号长整型INT32U

74、 voidcc2530_Set_ST_Period(uintsec);

75、 voidcc2530_Init_SLEEP_TIMER(void);

76、 voidcc2530_Delay(uintn);

77、 voidcc2530_LedGlint(void);

78、 charLEDBLINK

79、 voidCC2530_InitLEDIO(void)

80、 {

81、 P1DIR|=0x03//P10和P11被定义为输出。

82、 RLED=0;

83、 GLED=0;//LED灯初始化为熄灭

84、 }

85、 /*****************************************

86、 设置系统主时钟功能

87、 *****************************************/

88、 voidSET_MAIN_CLOCK(来源)

89、 {

90、 如果(来源)

91、 {

92、 CLKCONCMD|=0x40/*RC*/

93、 而(!(clkconsta0x40));/*保持稳定*/

94、 }

95、 其他

96、 {

97、 CLKCONCMD=~0x47/*晶体振荡器*/

98、 while((clkconsta0x40));/*保持稳定*/

99、 }

100、 }

101、 /*****************************************

102、 设置系统低速时钟功能

103、 *****************************************/

104、 voidSET_LOW_CLOCK(源)

105、 {

106、 (来源==RC)?(CLKCONCMD|=0x80):(CLKCONCMD=~0x80);

107、 }

108、 /*********************************************************************

109、 //主函数

110、 *********************************************************************/

111、 无效总管(无效)

112、 {

113、 设置主时钟(晶体);

114、 设置低时钟(晶振);

115、 cc2530_InitLEDIO();

116、 led闪烁=0;

117、 RLED=1;

118、 GLED=0;

119、 cc2530_Init_SLEEP_定时器();

120、 cc2530_LedGlint();

121、 cc2530_Set_ST_Period(8);

122、 while(1)

123、 {

124、 if(LEDBLINK)

125、 {

126、 cc2530_LedGlint();

127、 cc2530_Set_ST_Period(8);

128、 GLED=!GLED;

129、 led闪烁=0;

130、 }

131、 cc2530_Delay(100);

132、 }

133、 }

134、 /*****************************************

135、 //初始化睡眠定时器

136、 *****************************************/

137、 voidCC2530_Init_SLEEP_定时器(无效)

138、 {

139、 ST2=0X00

140、 ST1=0X0F

141、 ST0=0X0F

142、 EA=1;//开中断

143、 STIE=1;

144、 STIF=0;

145、 }

146、 /*****************************************

147、 //延时函数

148、 *****************************************/

149、 无效CC2530_延迟(单位编号)

150、 {

151、 uintjj

152、 for(jj=0;jj16);

153、 ST1=(uint8)(睡眠定时器8);

154、 ST0=(uint8)睡眠定时器;

155、 }

156、 #杂注向量=ST_向量

157、 __中断空ST_ISR(空)

158、 {

159、 STIF=0;

160、 led闪烁=1;

161、 };jj);

162、 作者:DS小龙哥

163、 链接:金爵https://号。cn/post/7021694551660167175

164、 来源:稀土掘金

165、 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

166、 审核

本文到此结束,希望对大家有所帮助。

标签:

上一篇
下一篇