ATMage16的16位定时器的PWM应用

来源: 作者:2018年02月11日 11:22
关键词:定时器PWM
本文详细介绍了ATMage16的16位定时器的PWM应用。 //ICC-AVR applicaTIon builder : 2007-5-6 21:30:57 // Target : M16 // Crystal: 8.0000Mhz //TIMER1 iniTIalize - prescale:64 // WGM: 10) PWM phz correct, TOP= ICRn // desired value: 1Hz // actual value: 1.000Hz (0.0%) #include #include #define PWM1A PORTD5 //OC1A PD5 #define PWM1B PORTD4 //OC1B PD4 unsigned char OCAH; unsigned char OCAL; unsigned char OCBH; unsigned char OCBL; void TImer1_init(void) { TCCR1B = 0x00; //stop TCNT1H = 0x00; //setup TCNT1L = 0x01; OCR1AH = OCAH; OCR1AL = OCAL; OCR1BH = OCBH; OCR1BL = OCBL; ICR1H = 0xff; // pwm 的计数顶值 ICR1L = 0xFF; TCCR1A = 0xA3; // 匹配清零 top置位 TCCR1B = 0x0B; // start Timer } void init_devices(unsigned char valueah,unsigned char valueal,unsigned char valuebh,unsigned char valuebl) { OCAH=valueah; OCAL=valueal; OCBH=valuebh; OCBL=valuebl; CLI(); //disable all interrupts timer1_init(); MCUCR = 0x00; GICR = 0x00; TIMSK = 0x04; //timer interrupt sources SEI(); //re-enable interrupts } void main(void) { PORTD&=(0《DDRD|=(1《init_devices(0x0f,0x45,0x0f,0xf0); //修改实参即可改变占空比,最大值为0X0FFF; while(1); } [Copy to clipboard]
关注88lifa利发国际娱乐微信
有趣有料的资讯及技术干货
下载发烧友APP
打造属于您的人脉电子圈
关注发烧友课堂
锁定最新课程活动及技术直播
声明:88lifa利发国际娱乐网转载作品均尽可能注明出处,该作品所有人的一切权利均不因本站而转移。
作者如不同意转载,既请通知本站予以删除或改正。转载的作品可能在标题或内容上或许有所改动。
收藏 人收藏
分享:

相关阅读

  1. 全部
  2. 定时器
  3. PWM
发表评论
elecfans网友
分享到:

用户评论(0

88lifa利发国际娱乐

百度360搜索搜狗搜索