全站数据
8 4 2 0 5 8 1

ATmega8芯片三个pwm输出脚有什么不同作用

自考过来人 | 简单学习,快乐成才!         
问题更新日期:2024-10-15 07:45:29

问题描述

ATmega8芯片三个pwm输出脚有什么不同作用,在线求解答
精选答案
最佳答案

OC1A,OC1B用的是定时器1,OC2用的是定时器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