در یک برنامه به دلیل محدودیت درنمایشگرهای OLED بازار نیاز هست تا یک عدد 8 رقمی به دو بخش 4 قسمتی تبدیل بشه و روی دو عدد نمایشگر OLED که به I2C میکرو وصل شده اند نمایش داده شود. هر OLED چهار رقم نشان دهد. شما چه پیشنهادی برای این کار دارید؟عدد را به چه صورتی به دو بخش 4 تایی تبدیل کنیم؟
اطلاعیه
Collapse
No announcement yet.
تقسیم یک عدد 8 رقمی به دو بخش 4 عددی و نمایش برو روی OLED
Collapse
X
-
پاسخ : تقسیم یک عدد 8 رقمی به دو بخش 4 عددی و نمایش برو روی OLED
سلام دوست عزیز,
منظور شما اینه که مثلا اگه یه عدد به صورت 12345678 داشته باشیم, اون رو به صورت دوتا عدد 5678 و 1234 تبدیل کنیم....؟
اگه اینطوری باشه, خوب از تقسیم های متوالی به 10 استفاده میکنیم...
باقی مانده رو که میشه حاصل جداسازی ارقام, در یک آرایه ذخیره میکنیم( با دستور %)
عدد رو هم آنقدر تقسیم بر 10 میکنیم تا صفر شه..
مقدار i, هم میشه این که عدد شما چند رقمی هست...
نوع متغیر هم حتما باید Long int باشه که سرریز رخ نده....
اینم یه نمونه کد:
[LEFT]unsigned long int Num=12345678;
unsigned char Serial_Number[20]={0};
unsigned int Ashar=0;
unsigned int i=7;
while(Num/=10>0)
{
Ashar=Num%10;
Num/=10;
Serial_Number[i]=Ashar;
i--;
}
i=0;
lcd_gotoxy(0,0);
sprintf(Buffer,"%d%d%d%d %d%d%d%d",
Serial_Number[0],Serial_Number[1],Serial_Number[2],Serial_Number[3],Serial_Number[4],Serial_Number[5],
Serial_Number[6],Serial_Number[7]);
lcd_puts(Buffer);
delay_ms(1000);;
[/LEFT]
- تشکرها 2
-
پاسخ : تقسیم یک عدد 8 رقمی به دو بخش 4 عددی و نمایش برو روی OLED
سلام
نحوه جداسازیش که دوستمون گفت همونه - فقط قسمت بعدیش را دوستمون متوجه نشد که خواسته شده روی 2 تا صفحه نمایش جداگانه که 4 رقم محدودیت نوشتن داره بارگزاری بشه.
بسته به میکرو و ... داره که سختافزارت چی باید باشه.
اعداد جدا میشه و به 2تا صفحه نمایش انتقال داده میشه بصورت تئوری.
در مورد سخت افزارتون توضیح بدید تا بشه در مورد قسمت دوم هم صحبت کرد.دوست عزیز اگه مفید بود روی تشکر بزن
دیدگاه
دیدگاه