我想用一個按鍵回圈調整小燈的亮度,采用了改變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[4] = {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[key_code];
delay_ms(30);
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/77244.html
標籤:單片機/工控
下一篇:求幫忙
