سلام دوستان من میخوام با PWM دو تا موتور راه اندازی کنم از تایمر 1 استفاده کردم نمی دونم کجای برنامم مشکل داره برنامه به این صورته که اگه کلید 1 فشرده شد 2تا موتور به جلو برن گر کلید 2 فشرده شد به سمت چپ و اگر کلید 3 فشرده شد به راست بپیچند میشه راهنماییم کنید

while (1)
{
if( PORTB.0==0 && PORTB.1==1 && PORTB.2==1 ) //harekat be samte jolo mostaghim !!!
{
OCR1B=255; // PORTD.4=0
PORTD.3=0;
OCR1A=255; // PORTD.5=0
PORTD.6=0;
}
if( PORTB.0==1 && PORTB.1==0 && PORTB.2==1 ) //gardesh be samte raast !!!
{
OCR1BL=255; // PORTD.4=0 100% duty cycle
PORTD.3=0;
OCR1AL=51; // PORTD.5=0 20% duty cycle
PORTD.6=0;
}
if( PORTB.0==1 && PORTB.1==1 && PORTB.2==0 ) //gardesh be samte chap !!!
{
OCR1BL=51; // PORTD.4=0
PORTD.3=0 ;
OCR1AL=255; // PORTD.5=0
PORTD.6=0 ;
}
if( PORTB.0==1 && PORTB.1==1 && PORTB.2==1 ) //tavaghofe kaamel !!!
{
OCR1BL=0; // PORTD.4=0
PORTD.3=0 ;
OCR1AL=0; // PORTD.5=0
PORTD.6=0;
}
};
}


while (1)
{
if( PORTB.0==0 && PORTB.1==1 && PORTB.2==1 ) //harekat be samte jolo mostaghim !!!
{
OCR1B=255; // PORTD.4=0
PORTD.3=0;
OCR1A=255; // PORTD.5=0
PORTD.6=0;
}
if( PORTB.0==1 && PORTB.1==0 && PORTB.2==1 ) //gardesh be samte raast !!!
{
OCR1BL=255; // PORTD.4=0 100% duty cycle
PORTD.3=0;
OCR1AL=51; // PORTD.5=0 20% duty cycle
PORTD.6=0;
}
if( PORTB.0==1 && PORTB.1==1 && PORTB.2==0 ) //gardesh be samte chap !!!
{
OCR1BL=51; // PORTD.4=0
PORTD.3=0 ;
OCR1AL=255; // PORTD.5=0
PORTD.6=0 ;
}
if( PORTB.0==1 && PORTB.1==1 && PORTB.2==1 ) //tavaghofe kaamel !!!
{
OCR1BL=0; // PORTD.4=0
PORTD.3=0 ;
OCR1AL=0; // PORTD.5=0
PORTD.6=0;
}
};
}
دیدگاه