/***************************************************************** *  函数库说明:ATMEGE8 T1定时器 快速PWM *  版本:      v1.0                                            *  修改:      庞辉                                          *  修改日期:  2011年08月11日                               *                                                           *  说明:     OC1A 20khz  50%占空比 *              OC1B 10khz  33%占空比 *              且在溢出中断中频率不断改变                                            *                                                           *  版本更新:                                               *                                                                                           ****************************************************************** *注意:快速PWM模式 WGM1=5,6,7,14,15   *      单斜波计数,用于输出高频率的PWM信号(比双斜波的高一倍频率)  *      都有TOV1溢出中断,发生于TOP时  *      比较匹配后可以产生OCF1x比较匹配中断.  *      WGM1=5时, 最大值为0x00FF, 8位分辨率  *      WGM1=6时, 最大值为0x01FF, 9位分辨率  *      WGM1=7时, 最大值为0x03FF,10位分辨率   *      WGM1=14时,最大值由ICF1设定, TOP时产生ICF1输入捕捉中断 (单缓冲)  *      WGM1=15时,最大值由OCR1A设定,TOP时产生OCF1A比较匹配中断(双缓冲,但OC1A将没有PWM能力,最多只能输出方波)  *      改变TOP值时必须保证新的TOP值不小于所有比较寄存器的数值  *      注意,即使OCR1A/B设为0x0000,也会输出一个定时器时钟周期的窄脉冲,而不是一直为低电平  *      计算公式:fPWM=fclk_IO/(N*(1+TOP)) ******************************************************************/  

#include <avr/io.h>  #include <avr/interrupt.h>  

int main(void)  {  //PB1 PB2 设置为输出模式      DDRB |= (1 << DDB1) | (1 << DDB2);  

//PWM周期计数器      ICR1 = 300;  //PB1占空比计数器,占空比50%      OCR1A = 150;  //PB2占空比计数器,占空比50%      OCR1B = 100;  

//OC1A OC1B起始高电平电平      TCCR1A |= (1 << COM1A1) | (1 << COM1B1) | (1 << WGM11);  

//使能溢出中断  //TIMSK |= (1 << TOIE1);  

//开总中断  //sei();  

//OC1A OC1B 快速PWM,TOP值为ICR1,不分频,PWM启动      TCCR1B |= (1 << WGM13) | (1 << WGM12) | (1 << CS10);  

while(1);  

return 0;  }  

volatile unsigned int i = 0;  

//定时器1溢出中断  SIGNAL(SIG_OVERFLOW1)  {      i++;  

//3秒      if(i == 60000)      {          i = 0;          ICR1 += 50;      }  

if(ICR1 == 500)      {          ICR1 = 300;      }  }  

atmega8 例程:T1定时器 快速PWM相关推荐

  1. AVR 定时器快速PWM模式使用

    PWM很常用,AVR自带内部PWM功能,分为快速PWM模式和相位修正PWM模式. 我们这里选择方式15 ,由OCR1A保存上限值,由OCR1B保存匹配值,所以输出管脚 OCR1A不能输PWM,只能有O ...

  2. atmega8 例程:T1定时器 CTC模式 方波输出

    /******************************************************************* * 函数库说明:ATMEGA8 T1定时器 CTC模式 方波输 ...

  3. atmega8 例程:PWM

    /*********************************************************** * 函数库说明:ATMEGE8 PWM * 版本: v1.0 * 修改: 庞辉 ...

  4. 5. avr定时器/计数器1 --TC1 --快速PWM输出 (比较输出--快速PWM模式)

    快速PWM 模式(WGM13:0 = 5.6. 7.14 或15) 可用来产生高频的PWM 波形.快速PWM模式与其他PWM模式的不同之处是其单边斜坡工作方式.计数器从BOTTOM计到TOP,然后立即 ...

  5. STM32L475裸机例程学习 定时器中断和PWM输出实验

    定时器中断和PWM输出实验 所以阿-笔记的重要性哇!之前看过的内容在做后面的内容涉及到了发现没有笔记,看的时间太久远,竟然全部忘记了,真是个悲伤的故事:( 那就重来吧.由于这两个实验都跟TIM定时器关 ...

  6. 利用 51 定时器生成 PWM

    利用 51 定时器生成 PWM 1 PWM 简介 PWM(Pulse Width Modulation,脉冲宽度调制)是按一定规律改变脉冲序列的脉冲宽度,以调节输出量和波形的一种调制方式. 在控制系统 ...

  7. STM32通用定时器输出PWM控制舵机 —— 重装载值、比较值、当前值

    参考:stm32 定时器输出PWM原理及工作原理+控制舵机 作者:点灯小哥 发布时间: 2021-03-09 23:17:52 网址:https://blog.csdn.net/weixin_4601 ...

  8. STM32通用定时器输出PWM

    1 .TIMx简介 通用定时器是一个通过可编程预分频器驱动的16位自动装载计数器构成. 它适用于多种场合,包括测量输入信号的脉冲长度(输入捕获)或者产生输出波形(输出比较和 PWM). 使用定时器预分 ...

  9. stm32F051系列 单片机引脚定时器输出pwm波形控制风扇转速

    概述:stm32的每个引脚都有其自带的特殊功能,有定时器输出功能的引脚可以输出pwm.如果没有的也可以io口模拟输出,如果非要较真的话,理论上可以算是每个引脚都能输出PWM,但一般我们都使用带定时器输 ...

最新文章

  1. Windows10下SSH远程拷贝文件
  2. 前端学python有什么用-原来 Python 还有这些实用的功能和特点!
  3. ORACLE 中为什么要把列名都转换成大写字母?
  4. flutter制作具有自定义导航栏的渐进式 Web 应用程序
  5. bootstrap-dist的下载和使用bootstrap可视化布局代码无样式解决
  6. UVALive - 3231 Fair Share(最大流+二分)
  7. Learn OpenGL(二)——顶点输入(Vertex Input)
  8. 2.携程架构实践 --- 移动大前端
  9. 数学表达式: 从恐惧到单挑 (1. 概述)
  10. 章文嵩评价左耳朵耗子(2016年发布于内网)
  11. 机器学习入门-用Java实现简单感知机
  12. 转:驳Moxie关于Web3中“去中心化”、“服务器”和“密码学”的观点
  13. 电脑开关电源维修图解
  14. [id: * L:/* ! R:/*] onUncaughtException(SimpleConnection{channel=[id: *
  15. 262-我的大学竞选的事迹材料
  16. 数据爬取-奇技淫巧系列1——抓取隐藏在CDN,防爬代理等服务后面的数据
  17. burg算法 matlab,基于burg算法的谱估计研究及其matlab实现.doc
  18. 计算机应用技术题,计算机应用技术复习题.doc
  19. C1/C1/C2 カバレッジについて
  20. 博一就完成了SCI论文发表要求是一种怎样的体验?

热门文章

  1. python 进阶:修饰器的介绍
  2. Python进阶09 filter函数
  3. FastDFS图片服务器
  4. 猫头鹰的深夜翻译:在JVM上根据合约编程
  5. 省技术市场举办中小企业专利法律风险防范及专利战略制定讲座
  6. Chapter 1 Securing Your Server and Network(9):使用Kerberos用于身份验证
  7. 在日志文件中输出当前时间
  8. 例说DNS递归/迭代名称解析原理
  9. 为JS和C#类加一个扩展方法吧:P
  10. 简单备忘一下Linux下的wget和curl如何使用http proxy