目录
第一、时钟
第二,定时器Timer0
第三,pwm
汇春官网:汇春科技 (yspringtech.com)
汇春是麦肯的原厂,以下是两个论坛,其中都有关于麦肯单片机的学习论坛,可以参考学习,第一个叫英锐恩,第二叫千芯科技。
Microchip单片机,模拟器件,接口电路,台湾麦肯单片机,产品应用交流,讨论学习网,免费提供样品,技术支持,原装开发工具技术咨询,应用方案,数据手册,选型指导,资料下载,智能电子产品开发设计 - Powered by Discuz! (enroobbs.com)
首页- 千芯科技,单片机开发,LED驱动,电子产品开发设计,mcu,12c508,12c509,16c54,16c57 (mdtmcu.com)
这里只是根据自己的开发经验梳理的一些知识,并不一定都适用,供大家一起参考学习。
第一、时钟
首先要明白时钟频率(FOSC)和时钟周期(TOSC)的关系,二者互为倒数关系。例如我选择的时钟源是低频内部振荡器(31Khz)且不分频,则时钟频率就是31khz,则时钟周期就是1/31k。
还有一个经常会看到的叫做指令周期,根据芯片手册可以知道684的指令周期时钟是FOSC/4。
第二,定时器Timer0
手册中并没有说明如何计算溢出时间。Timer0涉及到的寄存器有TMR(选项寄存器),主要看下图标出的这几位;
Timer0定时器是一个向上计数的,通俗的讲就是装载值到256这一段的时间(8位是256),所以这里的RTCC(Timer0模块寄存器)以我的理解就是装载值寄存器,从RTCC递增到256溢出,即产生一次中断(假如开启了);
然后就是INTS(中断控制寄存器)的bit7----GIE(全局中断允许位),bit5----TIS(Timer0溢出中断允许位)。
当这些初始化之后,就可以计算溢出时间了。
Timer0溢出周期=(256-RTCC)* 指令周期 *分频数;
指令周期上面说了是4/FOSC。
第三,pwm
pwm基于Timer2。
主要涉及到的寄存器有CCP1CON(CCP1控制寄存器) ,不知道CCP1是什么不重要,以我的理解是ECCP模块,这个模块有好几个功能,其中之一就是PWM。CCP1CON寄存器主要用于设置选择pwm模式,pwm何种输出模式的作用,以及设置pwm占空比的低2位。
CCPR1L(捕捉/比较/PWM寄存器1的低字节),在pwm的作用里是设置PWM占空比的高8位,和上面的低2位共同组成一个10位的分辨率。
CCPR1H(捕捉/比较/PWM寄存器1的高字节),数值和CCPR1L设置一样即可,从动。
T2CON(TIMER2控制寄存器),主要看低3位,bit2----TMR2ON,Timer2使能位;bit1-0----T2CKPS,Timer2时钟预分频比选择位。
PR2(Timer2模块周期寄存器)。
下图所示是PWM脉冲宽度和占空比的计算公式还有周期;
下图所示是PWM工作设置流程;注意要把需要pwm输出的引脚设置为输出,即设置CPIO。