ATtiny13A的PWM设置问题
我想用一个按键循环调整小灯的亮度,采用了改变OCR0A值的方法调整PWM占空比,可是简单的功能却实现不了,百思不得其解,问了好多论坛都没结果,代码贴在下面了,请各位高人看看问题出在哪里?#include <tiny13a.h>
#include <delay.h>
#define uchar unsigned char
#define uint unsigned int
#define key PINB.1
#define KEY_DOWN 0
uchar key_code = 0;
flash uchar led_value = {255, 77, 26, 13};
void PWM_ini(void)
{
TCCR0A=0x83;//快速PWM模式
TCCR0B=0x01;//无分频
}
void key_scan()
{
if(key == KEY_DOWN)
{
delay_ms(30);
if(key == KEY_DOWN)
{
key_code++;
if(key_code == 4)
key_code = 0;
while(!key);
}
}
}
void main(void)
{
PORTB=0x02;
DDRB=0x01;
PWM_ini();
while (1)
{
key_scan();
OCR0A = led_value;
delay_ms(30);
}
}
实现不了你总要说个现象吧。是彻底不亮还是一直亮着还是乱闪? 设置了PWM所在IO的模式吗? 按了很多次开关偶尔亮一下
PB0设置输出了
问题找到了,晶振频率设置的不对,谢谢各位的指导,愿好人一生平安!
页:
[1]