小编mic*_*jiz的帖子

AVR Studio上的脉冲宽度调制(PWM)

我正在尝试将PWM用于ATmega8上的LED,端口B的任何引脚.设置定时器一直很烦人,我不知道如何处理我的OCR1A.这是我的代码,我喜欢一些反馈.

我只想弄清楚如何使用PWM.我知道这个概念,OCR1A应该是我希望脉冲开启的整个计数器时间的一小部分.

#define F_CPU 1000000  // 1 MHz

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

int main(void){

    TCCR1A |= (1 << CS10) | (1 << CS12) | (1 << CS11);
    OCR1A = 0x0000;
    TCCR1A |= ( 0 << WGM11 ) | ( 1 << WGM10 ) | (WGM12 << 1) | (WGM13 << 0);
    TCCR1A |= ( 1 << COM1A0 ) | ( 0 << COM1A1 );
    TIMSK |= (1 << TOIE1); // Enable timer interrupt
    DDRB = 0xFF;
    sei(); // …
Run Code Online (Sandbox Code Playgroud)

avr atmega width pulse

9
推荐指数
2
解决办法
3万
查看次数

标签 统计

atmega ×1

avr ×1

pulse ×1

width ×1