资源描述
7.3章快速PWM.概1述CTC|逻辑单位呢?我承认自.快2速PWM提起快速PWM就越来越不佩服AVR的强大,很显然AVR就是c51的杀手。其实快速PWMOCnxPD4PD5CTC快速PWM多出这样的概念COMPARE(TOP)。TCNTn器会一直进行1累加,在前两个最大值的产生不影响OCnx的TCNTn计数期里,就有明显当TCNTn的值匹配与匹配值OCnx随着TCNTn的值会继续累加,当TCNTn的值达TOP值时,换一句OCnx者由OCR1A决定(视方波产生模式OCRA该输出引脚了,这里就不详和TOP值是与OCRxA或者OCRxBTOPTOP810如果以OCR1A决定TOP值,快速PWM模Period733PWM我们先看以上的图先,快速PWM5,6,7,14,155,6,7的TOP仅能选择第14和15模式。在视频教程中,叶老师以第15模过OCR1A的方法TOP值则由OCR1A决定WGM13=1WGM12=1,WGM11=1,WGM10=1该介绍与CTC模式中不同,因为快速PWM包含了,PWM,CTC还有即使WGM13)T/C1控制寄存器ATCCR1ACOM1AO:1,COM1BO:1WGM11WGM10WGM1011PWMCTCPWMWGM1110PWMCOM1AO:1,COM1BO:1CTCOCJVOCJ0聊畐碎黑赳幡徉負滓0堞茁b32nwiM內瘴耳“D训。用:V耳OCb4VOC4B議壬10bCOJJV4CO40J畐檸叫JJJ旺丄Ob叫黑琵圧輕丘凰叫冨理OCJAOCJ齐0J0旺丄Ob04FF5rS?040C4V0C40J60J叫单显?g罄曙低J非OCJVOC、OCJ日业亡也軸话专STMGN43MGN43:0=J?PR毎BfSSB4OCJ00显厘聘幡徉JOCJVOC日耳iwiicciAiiniHAVOS-fHHAVa9ldeT叫Q缈1rrsosrso(山哥9T)咸特忧天000(烈伏蹴天)rBEiHDqiop90(器自来)%訓a0r0(器自来)43沖1他rr0(器魅伏就自来)sesio00r(器礙颂自来)用01%胡1。r0r転眾压鞘孑r嚨叵rr搭般0rr転破压杆土r嘟怎rr陪枪rrr乙lOISO乙lII/VDM$1WMdHAVOS-fHHAVHAVOS-fHHAV91HDD1aID/1padaiDOsadVIDODIDVIDOVIDOdOlWMdHMdaiDODIDVIDOIOVIHODVIHDOdOlWMd1=191HOD0=091HOD0=IVIHOD1=OVIHOD000000KMKAA旳AAKM|OCkfJBlA:0PWM叙|OCR1AOCR1B定先,因为5,6BOCIAOC1B时PWM波果是15寸OC1A315OCR1ATOPOCR1A决定了OC1B输出的PWMOCR1BFocnxpwmOCR1APWMFclk15HJ-2GPWM渴求的频率为100hz,而TOP值要求是可以改变的就是方波产生模式15,那么我该么设置OCR1A初值呢为11.0592Mhz,N64,输出波形为100hz。)Fout=Fxtal/N*(1+OCR1A)OCR1A=(Fxtal/Fout*N)-1=(11.0592Mhz/100hz*64)-1=1727OC1AOC1BlOOhzOCR1A10ms的时间周期(这回我知道period的中文名我才说OCR1A是OCR1B输出20%占空比的PWM方波,那么OCR1A1/100OCR1A出近似345。而这个求出的值就是赋值的1/100再相OCR1B乘与20,亦即(1727/100)*20,OCR1B=OCR1A/100*DutyCycleOCR1B要赋予的初值,而OCR1A是决定输出频率的TOP值,100可以是一个constant只是0100之在11000之间)。想拆分100份而定数100。至DutyCycleOC1BPWMHAVOS-fHHAVAVRHJ-2GAVR续前一个例题,如果我已经求出OCR1A的初值(输出频率),那么我要OC1B输出的PWM为20%的占空比,那OCR1BOCR1B=OCR1A/100*DutyCycleOCR1B=1727/100*OCR1B=3457.3.4简单归纳一下20PWMTOP值决定的。而TOP波产生模式5,6,7),又模式14,15)。模式5,6,7分别对应0x00ff,0x01ff,0x03ffTOP式14,15的TOP值分别1CR1,和OCR1A来决定。从式15OC1AOC1A=PD5OCR1A决定了PWMOCR1BPWMOCR1A是OCR1B求OC1AOC1ACTC模5,6,7,仅要1.设置PD45为输出(默DDRD|=BIT(4)|BIT(5);2.验中为15。OCR1A|=BIT(0)|BIT(1);OCR1B|=BIT(3)|BIT(4);3.OC1A,OC1B试验中快速PWM,OC1A作为牺牲,工CTCOC1BTOPOCR1A|=BIT(5)|BIT(6);4.OCR1A5.决定PWM输出占空比,OCR1B设7.3.5-PD4100HzHJ-2GOCR1AOCR1BLED,PD41%80%LED了有更好的效果,建议频率可以是1kHz10kHz之间,当然10kHz效PWM/0702-QuickPWM.c20%,40%,60%,80%/快速PWM的实验范例,求输出100Hz/akuei224-12-09#includeiom16v.h#includemacros.h/快速PWM初始化voidQPWM_Init()TCCR1A=0x63;TCCR1B=0x1B;/WGM1011=1,COM1A1=0,COM1A0=1,COM1B1=1,COM1B0=0/WGM1213=1,预分频为64OCR1A=1727;/OCR1B=1727;/大约100%/OCR1B=1381;/大约80%占/OCR1B=1036;/大约60%/OCR1B=690;/大约40%OCR1B=345;/大约20%/OCR1B=17;/大约1%占/主函数voidmain()QPWM_Init();/while(1);/DDRD|=BIT(4)|BIT(5);/PD4PD5
展开阅读全文