PIC16LF1503 代码查了2天都查不出来,求大神指点迷津!

2020-02-06 09:55发布

根据RC2的电平控制RC0的电平,可是实际上不管RC2的电平高低,RC0都是低电平!!查了2天都查不到原因  TT

#include <htc.h>
//__CONFIG(FOSC_ECL&WDTE_OFF);
__CONFIG(0x3fe4);
//内部晶振,禁止看门狗

void init_gpio()
{
        TRISA0=1;   //ICSPDAT        
        TRISA1=1;        //ICSPCLK
        TRISA2=1;        //DIM  INT
        TRISA3=1;         //VPP
        TRISA4=1;         //DIM  SAMP
        TRISA5=1;        //NC

        SDOSEL = 1;
        ANSELC |= 0X04;
        TRISC = 0X04;

        INTCON = 0x00;   //关闭所有中断
}

main()
{
        OSCCON=0B01101011;        //fosc=4Mhz; internal osc;
        WDTCON = 0;

        init_gpio();

        while(1)
        {
                if(PORTC & 0X04)
                        PORTC |= 0X01;
                else
                        PORTC &= ~0X01;       
        }
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
20条回答
n0831
1楼-- · 2020-02-07 11:11
5楼正解
lzandyc
2楼-- · 2020-02-07 15:19
EMC菜鸟 发表于 2017-2-10 08:59
作为一个强迫症患者,看到楼主“if(PORTC & 0X04)”这种语句就异常难受!写成 if((PORTC & 0X04)!=0) 能咋 ...

嗯嗯,下次会注意的,谢谢提醒
lzandyc
3楼-- · 2020-02-07 19:32
 精彩回答 2  元偷偷看……
laujc
4楼-- · 2020-02-07 21:43
EMC菜鸟 发表于 2017-2-10 09:10
如果这样,还不如直接写:if(RC2) ,不是更省?

你有试过吗?自己去编译一下试试,看下反汇编代码。

不要臆想。说应该怎么怎么做。。。
xk376632352
5楼-- · 2020-02-08 01:23
RC2默认模拟引脚,你没有配置为数字引脚。
ANSELC |= 0X04;????
xk376632352
6楼-- · 2020-02-08 01:58
建议:
有点时候如果对单片机不太熟悉,可以尝试MPLAB X IDE的MCC功能自动生成代码,这样可以减少配置错误的问题。

一周热门 更多>