【求助】MPLAB 带仿真器调试和下载后运行结果不一样

2020-02-09 09:17发布

哎,不知道咋回事。大家看一下这个问题,分析一下是什么问题。MCU:dsPIC30F5011

两个按键接到了  PORTB3 和 PORB4 上,都有上拉电阻,键按下时,端口为低电平。

带着仿真器调试运行,程序运行的非常好,结果与预期的一样。但将程序下载到单片机后上电运行,就一直检测到 PORTB3和PORTB4为低电平,这是怎么回事?实际测量PORB3 和PORB4 一直为高电平。

下面是程序判断部分:

/****************************************/
/*  函数功能        :       按键键值编码
    输入参数        :      
    输出参数        :      
    作者            :      
    网址            :      
    时间            :       2011-04-21
    备注            :      
    版本            :       V1.0                初版
*/
/***************************************/
uint8 KeyValueCode(void)
{
    uint8 KeyValueTemp=KeyValueNull;

    if(PORTBbits.RB3 == 0)
    {
        KeyValueTemp=0X01;
        Uart1Print("**KEY+**");
    }

    if(PORTBbits.RB4 == 0)
    {
        KeyValueTemp=0X02;
        Uart1Print("**KEY-**");
    }

    if((PORTBbits.RB3 ==0) && (PORTBbits.RB4 == 0))
    {
        KeyValueTemp=0X03;
        Uart1Print("**KEY ALL**");
    }

   
    //KeyValueTemp=(~KEY1) & 0X01;
    //KeyValueTemp |=(((~KEY2) & 0X01) << 1);

    return KeyValueTemp;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
JayGong
1楼-- · 2020-02-09 14:45
端口好像没初始化吧
undeadhuman
2楼-- · 2020-02-09 19:50
回复【1楼】JayGong  
-----------------------------------------------------------------------
端口初始化了,这两个已经设为输入端口。

仿真时正确这个让我很无解啊,仿真时查看端口寄存器,结果都正确,郁闷郁闷
JayGong
3楼-- · 2020-02-09 23:24
查一下 配置字
undeadhuman
4楼-- · 2020-02-10 04:14
问题找到了,问题找到了。



RB口与AD口复用,上电后默认是AD口。增加了ADPCFG=0XFFFF,这个就OK了。

哎,手册上没有见到RB默认是AD口的提醒。

仿真时一切正常,仍然让我很奇怪!
arndei
5楼-- · 2020-02-10 08:51
 精彩回答 2  元偷偷看……

一周热门 更多>