原创 STC12C5A60S2的PCA16位软定时器

2012-8-18 07:18 3526 9 11 分类: 软件与OS

        PCA的16位软定时器显示在示波器上面的波形一直没有变化。我的程序是定时让一个IO口电平翻转,示波器上面应该有方波,随着[CCAPnH,CCAPnL]的值的改变,方波的频率应该会变化。但是示波器上的方波固定显示7Hz左右。奇怪了!难道那个寄存器没设置?

        我翻开Datasheet,仔细阅读,终于发现了问题所在。“如果每次PCA模块中断后,在中断服务程序中断给[CCAPnH,CCAPnL]增加一个相同的数值,那么下次中断来临的间隔时间T也是相同的,从而实现了定时功能。”“增加”二字被我忽略了。实质上PCA16位软定时器与定时器0和定时器1有区别,PCA16软定时器要给初装值增加一个初装值。后面的例程里面是这样处理的:将初装值赋给一个变量value,等value给[CCAPnH,CCAPnL]重装后,让value自增一个value值,即value+=0x039A。我之前的程序参考了例程,看到里面value的自增程序,但是没去理解,以为例程在干别的功能,我就直接把那几句删了。后果想当严重!

        下面的程序是正确的,作为参考:

sbit LED=P1^0;

unsigned int value;
void main()
{
 //PCA16定时器

 CCON=0;
 CL=0;
 CH=0;
 CMOD=0x00;

 value=0x039A;//定时大约1ms

 CCAP0L=value;
 CCAP0H=value>>8;

 value+=0x039A;

 CCAPM0=0x49;//设置PCA为16位软定时器
 CR=1;
 EA=1;
 while(1) {}
}

void PCA_isr() interrupt 7 using 1

 CCF0=0;//清0中断标志
 CCAP0L=value;
 CCAP0H=value>>8;//定时大约1ms
 value+=0x039A;
 
 LED=~LED;
}

 

 

tam

文章评论2条评论)

登录后参与讨论

用户377235 2015-8-14 21:31

不是很理解

用户377235 2012-10-16 17:08

你好,我的程序可以产生脉冲但是不是方波,而是占空比很小的脉冲怎么回事啊??

用户1278632 2010-11-15 18:56

是的,说得很对 IP也是一大优势

用户177038 2010-11-13 23:31

ise的IP要丰富些(免费的)

用户1278632 2010-11-13 23:21

还有两点值的提的就是,XILINX的软核支持的是大端格式,即字数据的高字节存储在低地址中,低字节则存放在高地址,和altera的nios相反;还有在xilinx的ip core中,数据位的排列也是逆序的,如通常的数据是dat[31:0],而xilinx的则是dat[0:31]。

xucun915_925777961 2010-11-12 12:44

走过路过来学习学习……
相关推荐阅读
13510179723_912348475 2018-04-15 22:40
BOOST-DRV8711测试
20180415 BOOST-DRV8711买了不知道几年了,一直想测试一下TI步进电机细分芯片256细分的神奇,一直没能抽出时间。感觉当年先进的技术都快被淘汰了,我还没测试过,是一个梗。今...
13510179723_912348475 2015-05-10 12:06
怀念
偶尔又遇到自己的博文。好怀念!工作后没有以前那么悠哉,没有那么多时间写博客。前几天刚刚度过工作周年纪念日,过去的一年瞎扯蛋,到现在,似乎又回到搞硬件的“正道”上来了!...
13510179723_912348475 2014-08-18 21:49
3个月的玩儿失踪
        不知不觉失踪了3个月,不明真相的还以为我被自己的上一篇博文打击了,或者殉情了,其实我是被工作压抑了。         工作后没有当学生那种闲心情,即使有也写不出任何东西。灵感全...
13510179723_912348475 2014-05-19 21:41
失去的痛楚
         我不知道自己究竟喜不喜欢她,她并不漂亮,性格大大咧咧。但是有一点我是知道的,我对她有那么一点感觉。所以,我很想告诉她我的感受,但也犹豫不决。          她告诉我她要离...
13510179723_912348475 2014-05-13 22:47
我变了,也会变
        为了适应社会,我给自己留了一个忠言:吃任何小亏。         有人说过,人20岁不冲动不会成功,30谁还冲动也不会成功。我28岁,慢慢成熟下来,看来是早熟了。     ...
13510179723_912348475 2014-05-09 22:46
上了一周班
        悲催了,开始上班。          不知不觉干了一周。因为还是实习,在公司瞎奋,没有压力。第一天部门老大出差了,我被安排在生产一线参观;第二天请了假去富士康面试,实质上就是去...
我要评论
2
9
关闭 站长推荐上一条 /2 下一条