STC15高速脉冲输出,用示波器测量都是固定值,如何解决
STC15高速脉冲输出,用示波器测量都是固定值(调整T38KHZ值也不行),如何解决void IR_Modulate_Init(void)
{
CMOD = 0x02; //设置PCA时钟源为SYSclk / 2
CCON = 0; //初始化PCA寄存器,PCA寄存器停止、清除CF标记、清除模块中断标志
CL = 0; //复位PCA寄存器
CH = 0; //复位PCA寄存器
IR_Modulate_Value = T38KHZ;
CCAP1L =IR_Modulate_Value; //低8位
CCAP1H =IR_Modulate_Value >> 8; //高8位
IR_Modulate_Value += T38KHZ;
IP=0X80; //设置为最高优先级
AUXR1 = 0x10; // CCP调整为管脚P3.6,发送38K脉冲
CCAPM1 = 0X4D;//
CR = 1;
}
voidPCA_isr() interrupt 7 using 2
{
CCF1 = 0;
CCAP0L =IR_Modulate_Value; //低8位
CCAP0H =IR_Modulate_Value >> 8; //高8位
IR_Modulate_Value += T38KHZ;
// SendChar('0');
}
以下帖子估计遇到和我一样的问题,但C语言自己算进位,然后加进去就OK——这个怎样处理呢?
http://www.amobbs.com/forum.php?mod=viewthread&tid=4585857&pid=7690517&page=1&extra=page%3D1#pid7690517
ADDC A, CCAP1H ;3 Clock
汇编的这句话是有进位的加法。
C语言自己算进位,然后加进去就OK。
我试过可以。
开的是CPA1计数,中断内更新的是CCAP0L 。1与0 搞错 gmajvfhpa 发表于 2014-7-17 09:07
开的是CPA1计数,中断内更新的是CCAP0L 。1与0 搞错
谢谢,我彻底无语了 标记一下
页:
[1]