[求助] 自己写了一个控制PWM输出的程序,可是在示波器上没有结果,求帮助

穿行   2011-8-1 17:58 楼主
#include
#include
#include
unsigned int Flash=0;
void Port_init()    //端口初始化
{
        PORTB=0X0F;
        DDRB=0X00;
        PORTD=0X00;
        DDRD=0X20;
}
void keyscan()     //按键扫描
{
        if(PINB!=0x0f)
        {
                _delay_ms(10);
                if((PINB&0X01)==0)
                {
                        Flash+=2;
                        if(Flash>1023)
                                Flash=0;
                        while(!(PINB&0X01));
                }
                else if((PINB&0X02)==0)
                {
                        Flash-=2;
                        if(Flash<=0)
                                Flash=1023;
                        while(!(PINB&0X02));
                }
                else if((PINB&0X04)==0)
                {
                        Flash=0;
                        while(!(PINB&0X04));
                }
                else if((PINB&0X08)==0)
                {
                        Flash=1023;
                        while(!(PINB&0X08));
                }
        }
}
void Fast_PWM_init()     //比较匹配初始化
{
        TCNT1=0;
        TIMSK|=_BV(OCIE1A);
        TCCR1A|=_BV(COM1A1)|_BV(COM1A0)|_BV(WGM11)|_BV(WGM10);
        TCCR1B|=_BV(WGM12)|_BV(CS10);
}
int main(void)
{
        Port_init();
        Fast_PWM_init();
        sei();           //开启总中断
    while(1)
    {
                keyscan();
                OCR1A=Flash;   //将Flash设置为OCR1A值
                _delay_ms(1);
    }
}

回复评论 (4)

已经自己解决,是因为没有在中断程序中修改OCR1A

已经自己解决,是因为没有在中断程序中修改OCR1A
点赞  2011-8-2 11:38

贴主能讲详细些么

点赞  2012-1-31 21:00
#include ?
点赞  2012-11-8 09:31
GCCGCCGCCGCCC
点赞  2012-11-10 20:51
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复