ag888


ag888好喽!老大爷声音异常洪亮。十分麻利地把切割成三块的热豆腐放进塑料袋里。
ag888扇睫狐目,樱唇兰息
ag888曾经有个小屁孩,考试只考了18分。  然后他拿红笔添了一横,变成了78。  然后又在7的上面多加了半圈,然后就变成了98。  后来卷子拿给他妈妈看,他妈妈说:这么明显的改动,你以为 我会看不出来你其实考了78分吗?ag888女人的难处难在为人婆媳妇的脾气与性格总让人琢磨不透告状没事有事的是接手的是个昏官
ag888他知道,自己已经输了一阵……ag888刷卡付了钱后这套房子就是赵名扬的了。ag888 ag888画家到湖边写生,看到湖面上悠悠的荡漾着飘逸的金鱼。他心有灵犀,摊开画纸,画了起来,为了能够画的更细致又不惊跑金鱼,他一点一点的往金鱼边上靠。  越来越清晰……最后看清楚了,嘴里出现了骂声:“这TM原来是个香肠袋啊。”ag888我忙着收拾母亲攒下的药盒儿、药瓶儿、牛奶箱。不知道。
ag888我超喜欢学校的月季花
ag888幽幽的愁

皇冠足球比分

大发论坛时时彩平台尊龙娱乐是黑网吗海天国际娱乐城注册送钱凯发娱乐亚美国际娱乐城 金龙国际 www.am8.com 亚洲城娱乐 老k国际娱乐城 666k8.com 金威国际娱乐城 名人国际娱乐城 ag娱乐平台 V博娱乐城 tt1155.comboss娱乐ewin看牌百家乐定博彩网bbin888com宾利国际e胜博娱乐梦幻娱乐城百家乐365bet【注册送钱e8889.com】

程序控制的软件复位方法

微处理器复位方法:

  • 用硬件引脚RESET的复位方法;
  • 用看门狗的复位方法;
  • 自己程序控制的复位方法(本文方法,叫软件复位)

软件复位实现方法

  1. 首先声明一个函数指针,指向复位后要开始执行指令的位置:
    void (*app_start)(void) = 0x0000;
    可以根据具体微处理器复位后的位置,修改后边的地址。

  2. 之后,在自己的程序中想复位的地方调用app_start(); 也就是跳到0x0000位置执行指令。

  3. 可以根据不同微处理器复位的地址,修改上边的地址(0x0000)。实现上你可以跳到任何位置执行,或调用函数执行。

实例测试

以下以Arduino为开发环境来测试。注意:在AVR微处理器中,为了使Arduino复位时不再进入引导区,使AVR设置BOOTRST设置为1。

使用函数指针复位方法如下,你能想象到下边的程序会使LED灯闪亮吗?

///0. 引脚定义
#define LED_PIN   13  //定义LED引脚为13号数据引脚(DIG13)
static void (*reset_this_CPU)(void) = 0x0000; // ***复位本CPU函数指针
///1. 初始化
void setup() {
  pinMode(LED_PIN, OUTPUT); // 初始化DIG13为输出  
  digitalWrite(LED_PIN, HIGH); //DIG13输出高电平
  delay(1000);                 //延时1秒
  digitalWrite(LED_PIN, LOW);  //DIG13输出低电平
  delay(1000);                 //延时1秒  
  reset_this_CPU(); //***跳到0x0000地址指针,也就是复位
}
///2. 循环
void loop() {

   //此处什么也没有啊!
}

结论

用本方法,可以用软件方式进行复位,也可以用这个函数指针的方法调用任何函数。

posted @ 2015-11-24 14:38 ~Rambler~ 阅读(...) 评论(...) 编辑 收藏