اطلاعیه

Collapse
No announcement yet.

یه سوال ساده در مورد lcd

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    یه سوال ساده در مورد lcd

    سلام، من کد زیر رو برای نمایش یه متغیر روی lcd نوشتم، ولی چیزی که روی lcd نمایش داده میشه اشتباهه.
    اینم کد
    کد:
    #include <mega32.h>
    #include <delay.h>
    #include <lcd.h>
    #include <stdio.h>
    #asm
    .equ __lcd_port=0x15
    #endasm
    unsigned char buffer[16];
    unsigned long int f1;
    void main()
    {
     DDRC=0xff;
     PORTC=0x00;
     lcd_init(16);
     while(1)
     {
     f1=99999;
     lcd_clear();
     lcd_gotoxy(1,0);
     sprintf(buffer,"f_min=%umHz",f1);
     lcd_puts(buffer);
     delay_ms(1000);
     }
    }
    به جای اینکه عدد 99999 نمایش داده بشه، چیزی که lcd نشون میده اینه: 34463
    به جای u% از lu% هم استفاده کردم، ولی جواب نداد.
    کسی میدونه مشکلش چیه؟

    #2
    پاسخ : یه سوال ساده در مورد lcd

    این طرز تعریف درست نیس :redface:

    unsigned long int f1

    الآن F1 هم long هست و هم int

    باید بشه long

    دیدگاه


      #3
      پاسخ : یه سوال ساده در مورد lcd

      من توی نمایش اعشار روی LCD با کمپایلر Codevision به مشکل مشابهی برخوردم، که متأسفانه بخاطر کرکش بود. چون با همون نسخه کدویژن روی کامپیوتر دوستم درست جواب میداد.
      در کل توی اعداد خیلی بزرگ یا اعشار، آنچنان قابل اعتماد نیست.

      «پشتکار» «پشتکار» «پشتکار»

      دیدگاه


        #4
        پاسخ : یه سوال ساده در مورد lcd

        نوشته اصلی توسط mobin-m
        این طرز تعریف درست نیس :redface:

        unsigned long int f1

        الآن F1 هم long هست و هم int

        باید بشه long
        تغییرش دادم، ولی جواب نداد.

        دیدگاه


          #5
          پاسخ : یه سوال ساده در مورد lcd

          نوشته اصلی توسط کنجکاو!
          من توی نمایش اعشار روی LCD با کمپایلر Codevision به مشکل مشابهی برخوردم، که متأسفانه بخاطر کرکش بود. چون با همون نسخه کدویژن روی کامپیوتر دوستم درست جواب میداد.
          در کل توی اعداد خیلی بزرگ یا اعشار، آنچنان قابل اعتماد نیست.
          فک نکنم مشکل کرک داشته باشه، چون با d% که مینویسم تا حدود 30000 رو درست نشون میده و وقتی دستور رو با u% مینویسم تا حدود 70000. مشکلش باید یه جای دیگه باشه.

          دیدگاه

          لطفا صبر کنید...
          X