|
![](static/image/common/ico_lz.png)
楼主 |
发表于 2012-11-18 14:20:02
|
显示全部楼层
将端口设置修改如下
//红外捕捉,P3.0红外输入,串口输出
P0SKIP = 0xCF; //跳过前面I/O端口
P1SKIP = 0xFF; //跳过前面I/O端口
P2SKIP = 0xFF; //跳过前面I/O端口
P3SKIP = 0xFE;
XBR0 = 0x01; // Enable UART on P0.4(TX) and P0.5(RX)
XBR1 = 0x41; //交叉开关打开,将PCA输出配置到P3.0脚(CEX0)
P0MDOUT |= 0x10; // Enable UTX as push-pull output
//1 1 1 1 1 1 0 0
P2MDOUT = 0xfc;
P3MDOUT = 0x03; // 使能P3.0为推挽输出
PCA0CN = 0x00; // Stop counter; clear all flags
PCA0L = 0; // PCA0 Counter
PCA0H = 0;
PCA0CPH0 = 0x00; //PCA0 Capture 0
PCA0CPL0 = 0x00;
PCA0MD = 0x00; //PCA0采用系统时钟12分频,禁止PCA0溢出中断
EIE1 |= 0x10; //EPCA0 = 1,允许PCA0中断 C8051F340
PCA0CPM0 = 0x11; //模块0下降沿中断允许, 模块0负沿捕捉使能与配匹使能
后, 当遥控器 发射红外码时,产生了中断CCF0,能进入void PCA_ISR (void) interrupt 11了!
如上设置时, nCapValue = PCA0CPH0*256 + PCA0CPL0;//读取捕获值
的值,对应门限为13ms---13.8ms,门限为0.8ms---1.4ms,门限为1.8ms---2.4ms
应该是多少呢?
|
|