返回信息流写的PWM波程序,按键调节占空比。程序下到单片机内,在调试界面功能完全正常,按键灵敏,波形稳定。但一退出调试界面,就按键失灵,按好几下才有反应。
检测按键的程序是用看门狗定时器写的,用的是教材里的例程啊......迷惑ing......求助!!![ema1]
/******************************************************************************************************
* 名 称:WDT_init()
* 功 能:设定WDT定时中断为16ms,开启WDT定时中断使能
* 入口参数:无
* 出口参数:无
* 说 明:WDT定时中断的时钟源选择ACLK,可以用LPM3休眠。
* 范 例:无
******************************************************************************************************/
void WDT_init()
{
//-----设定WDT为16ms中断-----
WDTCTL=WDT_ADLY_16;
//-----WDT中断使能-----
IE1|=WDTIE;
}
#pragma vector=WDT_VECTOR
__interrupt void WDT_ISR(void)
{
//-----启用Port1事件检测函数-----
P1_IODect(); //检测通过,则会调用事件处理函数
}
/******************************************************************************************************
* 名 称:P1_IODect()
* 功 能:判断是否有键被按下,哪个键被按下,并调用相应IO的中断事件处理函数
* 入口参数:无
* 出口参数:无
* 说 明:必须用最近两次扫描的结果,才知道按键是否被按下
* 范 例:无
******************************************************************************************************/
void P1_IODect()
{
static unsigned char KEY_Now=0; //变量值出函数时需保留
unsigned char KEY_Past=0;
KEY_Past=KEY_Now;
//-----查询IO的输入寄存器-----
if(P1IN&BIT3) KEY_Now=1;
else KEY_Now=0;
//-----前一次高电平、后一次低电平,说明按键按下-----
if((KEY_Past==1)&&(KEY_Now==0))
P13_Onclick();
}
这是一条镜像帖。来源:北邮人论坛 / circuit / #25892同步于 2015/7/16
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Circuit机器人发帖
[电设]求教一单片机问题
cathy2834
2015/7/16镜像同步3 回复
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
问题解决了,在网上查说这种问题应该是时钟问题,于是把WDTCTL=WDT_ADLY_16改成WDTCTL=WDT_MDLY_8,就可以退出调试界面也正常工作。但具体原因仍不详......继续求解[ema1]
P.S.书上例程是错的,下下来退出调试界面也不行.....[ema8]