完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
相关寄存器介绍:TCCR0:定时器0的控制寄存器。第3,6位用来选择工作模式,第4,5位来配置端口是否输出PWM,第0,1,2位用来配置分频系数。 tiMSK:中断屏蔽寄存器(对于定时器0:0位溢出中断,1位比较匹配输出中断)。 TIFR:中断标志位 OCR0:比较匹配寄存器。当计数器TCNT0与OCR0相等时则产生匹配—使能中断,则会产生中断。 说明:快速PWM模式,是可以改变占空比的。而CTC模式只能输出50%占空比的PWM。 当TCNT0与OCR0相等时,比较匹配OC0则取反清0或置1.当TCNT0的值继续递增与0xff相等时,又会在OC0脚产生取反清0或置1.可以通过改变OCR0的值来改变输出占空比。
#include #include typedef unsigned int uint; typedef unsigned char uchar; void PWM_init(void) { TCCR0|=(1<<6); TCCR0|=(1<<3);//设置快速PWM模式 TCCR0&=~(1<<4); TCCR0|=(1<<5);//比较匹配时OC0清0,TOP时置位 TCCR0&=~(1<<0); TCCR0&=~(1<<1); TCCR0|=(1<<2);//设置预分频256 DDRB=0xff; PORTB=0xff; OCR0=0x10;//设置比较匹配值 TIMSK|=(1<<1);//允许比较匹配中断 SREG|=(1<<7);//使能全局中断 } void main(void) { PWM_init(); } #pragma interrupt_handler timer_isr:20 void timer_isr(void) { ; } 评分 |
|
相关推荐
1 个讨论
|
|
只有小组成员才能发言,加入小组>>
AVR Atmega16 Bootloader程序与上位机LabView程序
5127 浏览 6 评论
#include <ioavr.h>这个头文件我应该下什么编译器
7770 浏览 0 评论
3030 浏览 2 评论
3105 浏览 1 评论
10056 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 14:14 , Processed in 0.457372 second(s), Total 47, Slave 34 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号