با سلام.
بنده با میخواستم با avr شمارنهده طراحی کنم که در پست قبلی با کمک یکی از دوستان انجام شد و حالا تعداد بیت های شمارش را افزایش دادم که چند تا مشکل پیش امد:
1-led اول و دوم به ترتیب روشن میشوند و باقی led ها به ترتیب روشن نمیشوند.پ
2-بعضی از led ها اصلا روشن نمیشوند.
کد برنامه ای که نوشتم به صورت زیر است
void main(void)
{ static int c=0;
DDRA.0=0;
DDRB=0b11111111;
while (1)
{ while (!PINA.0)
{ delay_ms(50);
switch (c)
{
case 0:
PORTB=0b00000001;
c++;
break;
case 1:
PORTB=0b00000010;
c++;
break;
case 2:
PORTB=00000100;
c++;
break;
case 3:
PORTB=00001000;
c++;
break;
case 4:
PORTB=00010000;
c++;
break;
case 5:
PORTB=00100000;
c++;
break;
case 6:
PORTB=01000000;
c++;
break;
case 7:
PORTB=10000000;
c++;
break;
}
}
}
}
ببخشید اگر اینجا بد کپی میشه.
ممنون از دوستان که وقت میگذارند و پاسخ میدهند.
بنده با میخواستم با avr شمارنهده طراحی کنم که در پست قبلی با کمک یکی از دوستان انجام شد و حالا تعداد بیت های شمارش را افزایش دادم که چند تا مشکل پیش امد:
1-led اول و دوم به ترتیب روشن میشوند و باقی led ها به ترتیب روشن نمیشوند.پ
2-بعضی از led ها اصلا روشن نمیشوند.
کد برنامه ای که نوشتم به صورت زیر است
void main(void)
{ static int c=0;
DDRA.0=0;
DDRB=0b11111111;
while (1)
{ while (!PINA.0)
{ delay_ms(50);
switch (c)
{
case 0:
PORTB=0b00000001;
c++;
break;
case 1:
PORTB=0b00000010;
c++;
break;
case 2:
PORTB=00000100;
c++;
break;
case 3:
PORTB=00001000;
c++;
break;
case 4:
PORTB=00010000;
c++;
break;
case 5:
PORTB=00100000;
c++;
break;
case 6:
PORTB=01000000;
c++;
break;
case 7:
PORTB=10000000;
c++;
break;
}
}
}
}
ببخشید اگر اینجا بد کپی میشه.
ممنون از دوستان که وقت میگذارند و پاسخ میدهند.
دیدگاه