电子产业
数字化服务平台

扫码下载
手机洽洽

  • 微信小程序

    让找料更便捷

  • 扫码下载手机洽洽

    随时找料

    即刻洽谈

    点击下载PC版
  • 华强电子网公众号

    电子元器件

    采购信息平台

  • 华强电子网移动端

    生意随身带

    随时随地找货

  • 华强商城公众号

    一站式电子元器件

    采购平台

  • 芯八哥公众号

    半导体行业观察第一站

atmega8 例程:T1定时器 快速PWM

来源:华强电子网 作者:华仔 浏览:204

标签:

摘要: /** 函数库说明:ATMEGE8 T1定时器 快速PWM* 版本: v1.0 * 修改: 庞辉 * 修改日期: 2011年08月11日 * * 说明: OC1A 20khz 50%占空比* OC1B 10khz 33%占空比* 且在溢出中断中频率不断改变 *

/*
*  函数库说明: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 #include 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;    }}
型号 厂商 价格
EPCOS 爱普科斯 /
STM32F103RCT6 ST ¥461.23
STM32F103C8T6 ST ¥84
STM32F103VET6 ST ¥426.57
STM32F103RET6 ST ¥780.82
STM8S003F3P6 ST ¥10.62
STM32F103VCT6 ST ¥275.84
STM32F103CBT6 ST ¥130.66
STM32F030C8T6 ST ¥18.11
N76E003AT20 NUVOTON ¥9.67