阁楼84 pwm led闪烁
ATtiny84 pwm led flicker
我对 avr 编程还很陌生,我正在尝试简单地淡化 3 个独立连接到 ATtiny84 pwm 引脚的 LED。现在我有代码可以改变两个不同 LED 的亮度。这是我的代码:
#define F_CPU 1000000UL
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
DDRB |= (1 << PB2); // PWM output on PB2
TCCR0A = (1 << COM0A1) | (1 << WGM00); // phase correct PWM mode
OCR0A = 0x10; // initial PWM pulse width
TCCR0B = (1 << CS01); // clock source = CLK/8, start PWM
DDRA |= (1<<PA6); // make OC1A (DDA6) PWM output pin
TCCR1A = (1<<COM1A1) | (1<<COM1B0) | (1<<WGM00); // Clear OC1A/OC1B on Compare Match (bit 7 + 6)
// PWM, Phase Correct
TCCR1B = (1<<CS02); // 256 prescaler
while(1)
{
// change PWM pulse width every 2 seconds
_delay_ms(2000);
OCR0A = 0x10;
OCR1A = 0x10;
_delay_ms(2000);
OCR0A = 0x30;
OCR1A = 0x30;
_delay_ms(2000);
OCR0A = 0x50;
OCR1A = 0x50;
_delay_ms(2000);
OCR0A = 0xA0;
OCR1A = 0xA0;
}
}
代码大部分是从网上抄来的,我不太了解初始化,但是现在连接到PB2的led可以正常工作,但是连接到PA6的led不能正常工作。 PA6 LED 确实会相应地改变其亮度,但它也会快速闪烁(大约每秒 10 次)。
首先我认为这与 PA6 也是用于编程的 MOSI 引脚有关,但断开编程器并没有帮助。
感谢任何帮助!也非常欢迎任何一般的 AVR 编程技巧!
以防万一您还没有看过,这是您的微控制器的相关数据表:ATtiny84 Datasheet。查看 TCCR* 定时器配置寄存器可能会揭示一些东西。
我对 avr 编程还很陌生,我正在尝试简单地淡化 3 个独立连接到 ATtiny84 pwm 引脚的 LED。现在我有代码可以改变两个不同 LED 的亮度。这是我的代码:
#define F_CPU 1000000UL
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
DDRB |= (1 << PB2); // PWM output on PB2
TCCR0A = (1 << COM0A1) | (1 << WGM00); // phase correct PWM mode
OCR0A = 0x10; // initial PWM pulse width
TCCR0B = (1 << CS01); // clock source = CLK/8, start PWM
DDRA |= (1<<PA6); // make OC1A (DDA6) PWM output pin
TCCR1A = (1<<COM1A1) | (1<<COM1B0) | (1<<WGM00); // Clear OC1A/OC1B on Compare Match (bit 7 + 6)
// PWM, Phase Correct
TCCR1B = (1<<CS02); // 256 prescaler
while(1)
{
// change PWM pulse width every 2 seconds
_delay_ms(2000);
OCR0A = 0x10;
OCR1A = 0x10;
_delay_ms(2000);
OCR0A = 0x30;
OCR1A = 0x30;
_delay_ms(2000);
OCR0A = 0x50;
OCR1A = 0x50;
_delay_ms(2000);
OCR0A = 0xA0;
OCR1A = 0xA0;
}
}
代码大部分是从网上抄来的,我不太了解初始化,但是现在连接到PB2的led可以正常工作,但是连接到PA6的led不能正常工作。 PA6 LED 确实会相应地改变其亮度,但它也会快速闪烁(大约每秒 10 次)。
首先我认为这与 PA6 也是用于编程的 MOSI 引脚有关,但断开编程器并没有帮助。
感谢任何帮助!也非常欢迎任何一般的 AVR 编程技巧!
以防万一您还没有看过,这是您的微控制器的相关数据表:ATtiny84 Datasheet。查看 TCCR* 定时器配置寄存器可能会揭示一些东西。