سلام بچه ها خسته نباشین!!!
من میخام با استفاده از دوتا پوش باتن حرکتLED رو کنترل کنم.
مدارمم این طوریه که 5 تا LED دارم و اول شروع برنامه LED سوم روشنه.به محض اینکه یکی از باتن ها رو فشار بدم باید جاش عوض شه(یکی از باتن ها حرکت به چپ یکی هم حرکت به راست).مشکلمم اینه که فقط یکی از باتن ها درست کار میکنه.اگه امکانش هست راهنمایی بکنین مرسی!
اینم کدی که نوشتم با C تو ATMEL studio
من میخام با استفاده از دوتا پوش باتن حرکتLED رو کنترل کنم.
مدارمم این طوریه که 5 تا LED دارم و اول شروع برنامه LED سوم روشنه.به محض اینکه یکی از باتن ها رو فشار بدم باید جاش عوض شه(یکی از باتن ها حرکت به چپ یکی هم حرکت به راست).مشکلمم اینه که فقط یکی از باتن ها درست کار میکنه.اگه امکانش هست راهنمایی بکنین مرسی!
اینم کدی که نوشتم با C تو ATMEL studio
#include <avr/io.h>
int main(void)
{
int r,l;
int i=2;
DDRB =0b11111111;
DDRD =0b00000000; //Makes all pins of PORTD input
while(1) //infinite loop
{
r=PIND & (1<<PD0) ;
l=PIND & (1<<PD1) ;
PORTB=(1<<i);
if(r==1) //If right switch is pressed
{
i=i-1;
if (i<1)
i=5;
PORTB=(1<<i); //Turns ON i LED
}
if (l==1)//If left switch is pressed
{
i++;
if (i>5)
i=1;
PORTB=(1<<i);
}
}
}
int main(void)
{
int r,l;
int i=2;
DDRB =0b11111111;
DDRD =0b00000000; //Makes all pins of PORTD input
while(1) //infinite loop
{
r=PIND & (1<<PD0) ;
l=PIND & (1<<PD1) ;
PORTB=(1<<i);
if(r==1) //If right switch is pressed
{
i=i-1;
if (i<1)
i=5;
PORTB=(1<<i); //Turns ON i LED
}
if (l==1)//If left switch is pressed
{
i++;
if (i>5)
i=1;
PORTB=(1<<i);
}
}
}
دیدگاه