单片机交流
直播中

王兰

13年用户 1675经验值
擅长:基础元器件
私信 关注
[问答]

基于ZigBee-CC2530单片机的软件如何去是实现自动复位呢

基于ZigBee-CC2530单片机的软件如何去是实现自动复位呢?

回帖(1)

王丽婧

2021-11-8 14:51:01
  ZigBee-CC2530单片机 - 实现软件自动复位
  程序源码
  #include “ioCC2530.h”
  #define LED1 P1_0 // P1_0定义为P1_0
  #define LED2 P1_1 // P1_0定义为P1_1
  /**************************************************************
  函数名称:led_Init
  功能:LED初始化
  入口参数:无
  出口参数:无
  返回值:无
  **************************************************************/
  void led_Init(void)
  {
  P1SEL = 0x00; //P1为普通 I/O 口
  P1DIR |= 0x01; //P1.0输出
  LED1 = 0; // 灭LED1
  }
  /**************************************************************
  函数名称:systemClock_Init
  功能:系统时钟初始化
  入口参数:无
  出口参数:无
  返回值:无
  **************************************************************/
  void systemClock_Init(void)
  {
  unsigned char clkconcmd,clkconsta;
  CLKCONCMD &= 0x80;
  /* 等待所选择的系统时钟源(主时钟源)稳定 */
  clkconcmd = CLKCONCMD; // 读取时钟控制寄存器CLKCONCMD
  do
  {
  clkconsta = CLKCONSTA; // 读取时钟状态寄存器CLKCONSTA
  } while(clkconsta != clkconcmd); // 直到选择的系统时钟源(主时钟源)已经稳定
  }
  /**************************************************************
  函数名称:delay
  功能:软件延时
  入口参数:time——延时时间长短
  出口参数:无
  返回值:无
  **************************************************************/
  void delay(unsigned int time)
  { unsigned int i;
  unsigned char j;
  for(i = 0; i 《 time; i++)
  { for(j = 0; j 《 240; j++)
  { asm(“NOP”); // asm是内嵌汇编,nop是空操作,执行一个指令周期
  asm(“NOP”);
  asm(“NOP”);
  }
  }
  }
  /**************************************************************
  函数名称:watchdog_Init
  功能:看门狗初始化
  入口参数:无
  出口参数:无
  返回值:无
  **************************************************************/
  void watchdog_Init(void)
  {
  WDCTL = 0x00; //看门狗模式,时间间隔一秒
  WDCTL |= 0x08; //启动看门狗
  }
  /**************************************************************
  函数名称:FeedWD
  功能:喂狗
  入口参数:无
  出口参数:无
  返回值:无
  **************************************************************/
  void FeedWD(void)
  {
  WDCTL |= 0x0A;
  WDCTL |= 0x05;
  }
  /**************************************************************
  函数名称:main
  功能:程序主函数
  入口参数:无
  出口参数:无
  返回值:无
  **************************************************************/
  void main(void)
  {
  systemClock_Init();
  led_Init();
  watchdog_Init();
  delay(100); //延时小于1秒。若大于1秒,会出现什么情况?
  LED1 =1; //亮LED1
  while(1)
  {
  // FeedWD(); //系统不断复位,小灯每隔1s闪烁一次)
  }
  }
举报

更多回帖

发帖
×
20
完善资料,
赚取积分