سلام ، من با اتمگا 16 یک برنامه نوشتم که روی سون سگمنت 4 تایی مالتی پلکس عدد نشون بدم ولی مشکل سایه افتادن دارم ، حتی رفرش سگمنت ها رو به یک ثانیه تغییر دادم ولی سایه برطرف نمیشه. قبلا با مگا8 همین کد رو نوشته بودم و هیچ مشکلی نداشتم.
پایه های مشترک رو هم با ترانزیستور pnp سوئیچ میکنم که فشار به میکرو نیاد. سون سگمنت آند مشترک هست
این نکته رو هم بگم که ولتاژ بعد از سوئیچ ترانزیستور رو هم گرفتم ، کاملا صفر نمیشه ، وقتی ترانزیستور وصل باشه ولتاژ 3.5 ولته و وقتی قطع هست 2.5 ولت.
نمیدونم چرا ولتاژ عبور میده ، با اینکه دقیقا نمونه همین مدار رو با اتمگا 8 دارم و بدون مشکل کار میکنه
پایه های مشترک رو هم با ترانزیستور pnp سوئیچ میکنم که فشار به میکرو نیاد. سون سگمنت آند مشترک هست
ISR (TIMER1_OVF_vect)
{
// Reinitialize Timer1 value
TCNT1H=0x5740 >> 8;
TCNT1L=0x5740 & 0xff;
i++;
switch(i)
{
case 1:
PORTC|=~0b01111111;
PORTA=seg_cod[s1];
_delay_ms(1);
PORTC&=0b10111111;
break;
case 2:
PORTC|=~0b10111111;
PORTA=seg_cod[s2];
_delay_ms(1);
PORTC&=0b11011111;
break;
case 3:
PORTC|=~0b11011111;
PORTA=seg_cod[s3];
_delay_ms(1);
PORTC&=0b11101111;
break;
case 4:
PORTC|=~0b11101111;
PORTA=seg_cod[s4];
_delay_ms(1);
PORTC&=0b01111111;
break;
}
if (i>=4) i=0;
}
این نکته رو هم بگم که ولتاژ بعد از سوئیچ ترانزیستور رو هم گرفتم ، کاملا صفر نمیشه ، وقتی ترانزیستور وصل باشه ولتاژ 3.5 ولته و وقتی قطع هست 2.5 ولت.
نمیدونم چرا ولتاژ عبور میده ، با اینکه دقیقا نمونه همین مدار رو با اتمگا 8 دارم و بدون مشکل کار میکنه
دیدگاه