CCP2却未成功

[复制链接]
2232|24
 楼主| stly 发表于 2021-10-9 21:45 | 显示全部楼层 |阅读模式
PIC24FV16KM202 捕捉模块CCP1设置成功能输入捕捉中断,同样的设置CCP2却未成功
wuhany 发表于 2021-10-9 21:47 | 显示全部楼层

楼主程序可以公开吗?贴程序看下吧,这么说看不出什么原因
 楼主| stly 发表于 2021-10-9 21:49 | 显示全部楼层
PIC24FV16KM202 捕捉模块CCP1设置成功能输入捕捉中断,同样的设置CCP2却未成功捕捉输入进中断。可能是什么原因呢?
void initCCP2()
{
CCP2TMRH=0;
CCP2TMRL=0xFFFF;
CCP2PRH=0xFFFF;
CCP2PRL=0x0;

IEC0bits.CCP2IE = 0;   //????????
CCP2CON1Lbits.CCPON=1;  //??????
CCP2CON1Lbits.CLKSEL=0; //????????
CCP2CON1Lbits.TMRPS=0;  //????????
CCP2CON1Lbits.T32=1;    //??32????
CCP2CON1Lbits.CCSEL=1;  //??1???0?????
CCP2CON1Lbits.MOD=0b0010;   //????????????
CCP2CON1Hbits.RTRGEN=1; //  ????????
CCP2CON1Hbits.OPS3=0;   //??????????
CCP2CON1Hbits.TRIGEN=0; //?????????
CCP2CON1Hbits.ONESHOT=0;    // ???????
CCP2CON2Lbits.ASDG=0;   //????????
CCP2CON2Hbits.ICS=0x11;    //??????0-input capture IO;   0x011-?comparator 3 output
CCP2STATLbits.TRSET=1;  //???????
CCP2STATLbits.TRCLR=1;  //???????

IPC0bits.CCP2IP=0b011;                //???????
IPC0bits.T1IP=0b010;        //???1?????
CCP2CON1Lbits.CCPON=1;      //??????
IFS0bits.CCP2IF = 0;        //?????
IEC0bits.CCP2IE = 1;                 //Enable CCP2 interrupt.
}
xxrs 发表于 2021-10-9 21:52 | 显示全部楼层
检查端口初始化, 是否是数字功能
jlyuan 发表于 2021-10-9 21:54 | 显示全部楼层
端口是否正确连接到CCP2
 楼主| stly 发表于 2021-10-9 21:56 | 显示全部楼层
有初始化,设置了IO方向为输入。连接到CCP2了。
heweibig 发表于 2021-10-9 21:59 | 显示全部楼层
除了方向之外,还要看该引脚是否复用了模拟功能, 如果复用了,要设置成数字口, 一般来说是ANSELx寄存器.你看看
 楼主| stly 发表于 2021-10-9 22:01 | 显示全部楼层
CPP1是成功的,只设置了RB13,14,15为AD模拟。之前也遇到个问题是无法读取IO的高电平,而刻意设ANSEL=0时,该IO口似乎才能读到1
 楼主| stly 发表于 2021-10-9 22:04 | 显示全部楼层
另外LAT读不到,而PORT才读到
zhanghqi 发表于 2021-10-9 22:06 | 显示全部楼层
试试将CCP2的口设ANSEL=0再试
wyjie 发表于 2021-10-9 22:08 | 显示全部楼层
读PORT, 写LAT,你寄存器都操作错了,怎么能行呢.
zwll 发表于 2021-10-9 22:10 | 显示全部楼层
花点时间看下datasheet,研究一下基础的东西吧..
dingy 发表于 2021-10-9 22:17 | 显示全部楼层
对于IO口来说,如果做数字功能, 必须先设置对应的ANSELx为数字引脚,然后设置TRISXx为输入/输出功能.
 楼主| stly 发表于 2021-10-9 22:19 | 显示全部楼层
请问所有口是默认为功能口吗?
tian111 发表于 2021-10-9 22:23 | 显示全部楼层
似乎默认是输入口吧
jiahy 发表于 2021-10-9 22:25 | 显示全部楼层
如果是打算用功能口则进行功能设置,否则都要先进行ANSELX设置吗?
wangpe 发表于 2021-10-9 22:27 | 显示全部楼层
没有ANSELX设置有时也是能IO读写的。
liliang9554 发表于 2021-10-9 22:29 | 显示全部楼层
在哪些datasheet会说明呢?
 楼主| stly 发表于 2021-10-9 22:31 | 显示全部楼层
我看到的datasheet里没这样说的详细
 楼主| stly 发表于 2021-10-9 22:33 | 显示全部楼层
下面的说法读LAT也是可以啊。( Writes to the latch, write the latch.)

All port pins have three registers directly associated
with their operation as digital I/O. The Data Direction
register (TRISx) determines whether the pin is an input
or an output. If the Data Direction register bit is a ‘1’,
then the pin is an input. All port pins are defined as
inputs after a Reset. Reads from the Data Latch register
(LATx), read the latch. Writes to the latch, write the
latch. Reads from the port (PORTx), read the port pins;
writes to the port pins, write the latch.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

433

主题

7058

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部