|
STC片子利用PCA模块做16bit timer产生方波输出问题
[复制链接]
- /*STC利用PCA产生timer产生方波输出*/
- #include
- sfr CCON=0xD8;
- sfr CMOD=0xD9;
- sfr CL=0xE9;
- sfr CH=0xF9;
- sfr CCAP0L=0xEA; //COMPARE
- sfr CCAP0H=0xFA; //COMPARE
- sfr CCAPM0=0xDA;
- sbit CR=CCON^6; //start signal
- sbit CCF0=CCON^0; //中断标志
- sbit OUT=P1^2; //方波输出端口
- void init_pca()
- {
- CMOD=0x80;
- CCON=0x00;
- CH=0;//先清零CH,CL
- CL=0;
- CCAP0H=0x01; //高位比较器
- CCAP0L=0xcc; //低位比较器
- CCAPM0=0x49; //控制寄存器让PCA模块作为16 bit timer
- EA=1;
- CR=1;
- }
- void
- main()
- {
- init_pca();
- while(1)
- ;
- }
- void
- pca_ISR() interrupt 7 using 3 //当CH和CL的值递增到和CCAP0H和CCAP0L相等时候 中断产生
- {
- OUT=~OUT;
- CH=0;
- CL=0;
- // CCAP0H=0x01; 这里非要注释掉这两句才能产生方波,为什么?按道理不应该啊,重新赋值应该不会影响吧?
- // CCAP0L=0xcc;
- CCF0=0;
- }
复制代码
|
|