我需要两路输出不同的pwm 用atmega8 每两个IO口输出一样的PWM 一起四个IO口 其中有一组IO口可以改变PWM值

如题所述

时器2.
本质区别就是OC1A,OC1B是用定时器1模拟的PWM输出而OC2对应的是定时器2他本身可以配置成PWM输出,你可以看看数据手册。

快速PWM 的产生就是先设定一个TOP值再设定一个比较值,然后,计数器开始计数,比如保持输出1,计数到设定的比较值时,电平变为0,并维持,然后继续计数到TOP
电平再变为1,如此重复循环.
1.T/C1可以产生2路(OC1A即PB1 OC1B即PB2).T/C2产生一路(OC2即PB3).
2.需要设定T/C1的寄存器有四个 TCCR1A TCCR1B(这两个寄存器一起决定了两路PWM信号的产生方式,频率和TOP值) OCR1A(此值/TOP就是占空比) OCR1B(设定第二路PWM的占空比)
2.需要设定T/C2的寄存器有2个 TCCR2(同理,这个寄存器决定了第三路PWM信号的产生方式,频率和TOP值 ) OCR2(这个寄存器决定占空比)

上面所述只能产生几个固定频率的PWM信号(占空比可以随便调),并且前两路的频率是一样的.如果想产生自己想要频率的PWM,需要用OCR1A 设定OCR1B的TOP值,由OCR1B产生PWM,此时OCR1A只能产生占空比50%的PWM.
下面是我用ATmega8产生三路频率31.25K,占空比分别为1/3 1/2 2/3 PWM 的程序. 8M
#include <avr/io.h>
void main(void)
{
PORTB=0x00;
DDRB=0x0E;

// T/C1 初始化
TCCR1A=0xA1;
TCCR1B=0x09; //匹配时清零,TOP:255,频率:8M/256=31.25K
OCR1A=85; //占空比:1/3
OCR1B=128; //占空比:1/2
// T/C2 初始化
TCCR2=0x69; //匹配时清零,TOP:255,频率:31.25K
OCR2=170; //占空比:2/3

while (1);

}

本程序参考ouravr论坛!追问

三个PWM我知道怎么输出 只是我需要多了一个PWM

温馨提示:内容为网友见解,仅供参考
无其他回答

ATMEGA8,ATMEGA48之类的单片机,程序相互刷写而输出一样,需要满足什么条 ...
频率一样 即晶振一样,分频也一样就可以了 没有太多的注意事项 补充说明:世界上没有任何完全相同的东西 即使选择相同的晶振也会有微量的偏差 不过这不影响到你的使用 嘿嘿 希望能帮到你!

ATmega8芯片三个pwm输出脚有什么不同作用?
2.需要设定T\/C1的寄存器有四个 TCCR1A TCCR1B(这两个寄存器一起决定了两路PWM信号的产生方式,频率和TOP值) OCR1A(此值\/TOP就是占空比) OCR1B(设定第二路PWM的占空比)2.需要设定T\/C2的寄存器有2个 TCCR2(同理,这个寄存器决定了第三路PWM信号的产生方式,频率和TOP值 ) OCR2(这个寄存器决定占空...

宏晶单片机自带的两路PWM输出能否设置成相位相反的电平?即当PWM1输出...
倒是AVR单片机有这个功能,比如Atmega8单片机的定时器T1,配置成PWM方式后可以用OC1A和OC1B引脚输出两路PWM,而且任意的占空比可设置(只设置寄存器即可),并且能设置成两路信号反相,完全符合你的要求。

51单片机输出pwm脉宽怎么控制电流?
PWM就是脉宽调制电路,PWM就是用来调压控流的,你还需要一个ADC来进行充电设备的电压电流采集,PWM输出要加个三级管或场效应管来做驱动。推荐使用AVR单片机,如ATmega8,里面有4路10位ADC,2路8路ADC((DIP封装的),有硬件PWM,用它做刚好用。PWM输出端接一个电阻,然后接一个GTR管,如IRF540 100...

你好,我想用单片机输出PWM信号控制IGBT的开关,进而控制白炽灯的亮度...
可以的,脉冲调制,相当于调节了输出的平均电流。。可以控制亮度的。。。看看这个程序吧,控制IGBT的导通时间来调节吧。。具体我也没用过呢。1、学习目的:利用定时器产生PWM,了解原理和使用方法 2、硬件要求:LED灯 定时器 3、试验现象:LED灯由亮到灭,由灭到亮逐步变化,也就是调光现象 ---*\/...

arduino Uno的5v的供电的power脚,最大可以输出多大电流
ATmega328包括了片上32KB Flash,其中0.5KB用于Bootloader。同时还有2KB SRAM和1KB EEPROM。输入输出 14路数字输入输出口:工作电压为5V,每一路能输出和接入最大电流为40mA。每一路配置了20-50K欧姆内部上拉电阻(默认不连接)。除此之外,有些引脚有特定的功能 串口信号RX(0号)、TX(1号): 与...

关于单片机的种类问题
计数器外部中断和PWM(也可用作D\/A)用于控制输出,某些型号的AVR单片机有3~4个PWM,是作电机无级调速的理想器件。AVR单片机有串行异步通讯UART接口,不占用定时器和SPI同步传输功能,因其具有高速特性,故可以工作在一般标准整数频率下,而波特率可达576K。②AVR 8-Bit MCU的最大特点与其它8-Bit MCU相比,AVR 8-Bit ...

有谁能把arduino uno r3的电路原理图各部分讲解一下,谢谢!
输入输出 14路数字输入输出口。Reset:每一路具有10位的分辨率(即输入有1024个不同值),默认输入信号范围为0到5V,可以通过AREF调整输入上限: 与内部 ATmega8U2 USB-to-TTL 芯片相连,提供TTL电压水平的串口接收信号:触发中断引脚,可设成上升沿Arduino UNO是Arduino USB接口系列的最新版本。

相似回答