智能车制作

标题: MC9S12XS128的软件看门狗怎么写 [打印本页]

作者: 凹凸慢    时间: 2012-7-6 18:06
标题: MC9S12XS128的软件看门狗怎么写
求运行成功的
作者: 雪松    时间: 2013-3-26 19:11
#include <hidef.h>      /* common defines and macros */
#include "derivative.h"      /* derivative-specific definitions */

#define LEDCPU PORTB_PB4
#define LEDCPU_dir DDRB_DDRB4

/*************************************************************/
/*                        初始化看门狗                       */
/*************************************************************/
void INIT_COP(void)
{
  COPCTL = 0x07;     //设置看门狗复位间隔为1.048576s
}

/*************************************************************/
/*                         延时函数                          */
/*************************************************************/
void delay(void)
{
  unsigned int i;
  for(i=0;i<50000;i++);
}


/*************************************************************/
/*                         主函数                            */
/*************************************************************/
void main(void) {
  DisableInterrupts;
  INIT_COP();
  LEDCPU_dir = 1;
  LEDCPU = 0;
  delay();
  LEDCPU = 1;
  delay();
  EnableInterrupts;

  for(;;)
  {  while(1);
   // _FEED_COP();  //喂狗函数
   // delay();
  }
}



作者: 春日迟迟    时间: 2013-7-30 21:42
/*---------------------------------------------------------*/     //为了防止单片机在程序出现跑飞或者程序运行时间不是特别稳定不喂狗时单片机直接复位,因此在智能车比赛一般要关闭看门狗//

/*---------------------------------------------------------*/
#include <hidef.h>      /* common defines and macros 常见的宏定义*/
#include "derivative.h"      /* 相当于#include <MC9S12XS128.h>  #pragma LINK_INFO DERIVATIVE "MC9S12XS128"这两个预处理
                             1 128的宏定义或者函数库
                             2 关联mcu当工程选定的芯片改变时会自动改变芯片*/

#define LEDCPU PORTK_PK4     /*在128函数库里PK4恒定义为PK的第四位 PORTK为K引脚的数据寄存器 作用是将PORTKDE的第四引脚的变量用LEDCPU代替 */
#define LEDCPU_dir DDRK_DDRK4  //DDRX是数据方向寄存器 数据方向寄存器的第四位宏定义为一个变量//

/*************************************************************/
/*                        初始化看门狗                       */
/*************************************************************/
void INIT_COP(void)   //init 通常做为 initialization 的缩写使用。即:设定初值,初始化//
{
  COPCTL = 0x07;     //设置看门狗复位间隔为1.048576s
}

/*************************************************************/
/*                         延时函数                          */
/*************************************************************/
void delay(void)
{
  unsigned int i;
  for(i=0;i<50000;i++);
}


/*************************************************************/
/*                         主函数                            */
/*************************************************************/
void main(void) {
  DisableInterrupts;          //屏蔽中断//
  INIT_COP();                 //调用看门狗函数 对看门狗定时器周期初始化//
  LEDCPU_dir = 1;             //端口的数据输出到外设//
  LEDCPU = 0;                 //点亮da1//
  delay();                    //延时一段时间//
  LEDCPU = 1;                 //熄灭da1//
  EnableInterrupts;           //开中断//

  for(;;)                     //空循环,执行到退出为止,一般循环条件在循环体中给出//
  {
    _FEED_COP();              // ARMCOP=0X55; ARMCOP=0XAA;喂狗函数在hidef.h中已经宏定义过     ARMCOP=0X55; ARMCOP=0XAA; //
    delay();                  //延时一段时间 程序的执行时间要比看门狗的周期稍微长一些//
  }
}





欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2