اطلاعیه

Collapse
No announcement yet.

مشکل در تبدیل متغییر عددی به کاراکتر

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

    مشکل در تبدیل متغییر عددی به کاراکتر

    سلام
    برنامه نویسی با کدویژن را تازه شروع کردم و با بسکام همیشه مینویسم .
    متغییر عددی دارم بدین صورت unsigned int temp ;
    1-می خوام این متغییر رو روی lcd کاراکتری نشون بدم ؟
    2-اگر بخوام اینو تبدیک کنم به رشته s وحالا بخوام رشته رو نشون بدم به چه صورته ؟
    با سپاس

    #2
    پاسخ : مشکل در تبدیل متغییر عددی به کاراکتر

    دوستان اگر امکانش هست راهنمایی بفرمایید ، تشکر .

    دیدگاه


      #3
      پاسخ : مشکل در تبدیل متغییر عددی به کاراکتر

      از تابع itoa در سرفایل stdlib.h استفاده کن

      کد:
      itoa(temp, s);
      lcd_puts(s);
      گذشت خصلت مردان است

      دیدگاه


        #4
        پاسخ : پاسخ : مشکل در تبدیل متغییر عددی به کاراکتر

        نوشته اصلی توسط tohid041
        از تابع itoa در سرفایل stdlib.h استفاده کن

        کد:
        itoa(temp, s);
        lcd_puts(s);
        توحید جان ممنون از لطفت ، من متغییرها رو در main به صورت زیر تعریف کردم .
        unsigned int temp;
        unsigned char lf[16];
        اگر متغییر temp من هر بایتش بصورت هگز باشه ، تبدیل واحدها به چه صورته ؟ و اگر بخوام اونم بصورت رشته نشون بدم با چه دستوریه ؟

        دیدگاه


          #5
          پاسخ : مشکل در تبدیل متغییر عددی به کاراکتر

          من همچنان در مشکلم دست و پا میزنم :mrgreen:
          یکی بیاد مارو در بیاره :icon_razz:

          دیدگاه


            #6
            پاسخ : پاسخ : مشکل در تبدیل متغییر عددی به کاراکتر

            نوشته اصلی توسط mohamadeng
            اگر متغییر temp من هر بایتش بصورت هگز باشه
            یعنی چی؟

            تابع itoa هر عددی که باشه رو به صورت عدد صحیح و در مبنای 10 به رشته تبدیل میکنه

            دیدگاه


              #7
              پاسخ : پاسخ : مشکل در تبدیل متغییر عددی به کاراکتر

              نوشته اصلی توسط sarlak74
              یعنی چی؟

              تابع itoa هر عددی که باشه رو به صورت عدد صحیح و در مبنای 10 به رشته تبدیل میکنه
              سلام Sarlak74
              ببین مهندس این برنامس
              ;
              void main(void)
              {
              // Declare your local variables here
              unsigned char status,i;
              unsigned int temp;
              unsigned char lf[16];

              printf("hello\r"
              PcdReset();
              delay_ms(1);
              PcdAntennaOff();
              delay_ms(1);
              PcdAntennaOn();
              delay_ms(1);
              lcd_init(16);

              while (1)
              {
              // Place your code here
              status = PcdRequest(PICC_REQALL, g_ucTempbuf);
              if (status == MI_OK)
              {

              for(i=0;i<8;i++)
              {
              temp=g_ucTempbuf[i];

              printf("%X",temp);
              lcd_clear();
              lcd_gotoxy(i,0);
              itoa(temp,lf);
              lcd_puts(lf);
              LED_GREEN = 1;
              delay_ms(700);
              LED_GREEN = 0;
              delay_ms(700);

              }
              }

              //printf("print1"

              delay_ms(100);
              }
              }]

              unsigned char g_ucTempbuf[20];
              void main(void)
              {
              // Declare your local variables here
              unsigned char status,i;
              unsigned int temp;
              unsigned char lf[16];

              printf("hello\r"
              PcdReset();
              delay_ms(1);
              PcdAntennaOff();
              delay_ms(1);
              PcdAntennaOn();
              delay_ms(1);
              lcd_init(16);

              while (1)
              {
              // Place your code here
              status = PcdRequest(PICC_REQALL, g_ucTempbuf);
              if (status == MI_OK)
              {

              for(i=0;i<8;i++)
              {
              temp=g_ucTempbuf[i];

              printf("%X",temp);
              lcd_clear();
              lcd_gotoxy(i,0);
              itoa(temp,lf);
              lcd_puts(lf);
              LED_GREEN = 1;
              delay_ms(700);
              LED_GREEN = 0;
              delay_ms(700);

              }
              }

              //printf("print1"

              delay_ms(100);
              }
              }

              متغییر temp بصورت هگز هست ، حالا می خوام اونو روی lcd نمایش بدم :angry:
              اما وقتی اجرا میکنه ، یکی اول عدد 4 ، بعد میاد یسره عدد 0 رو نشون میده .
              برنامه RFID ماژول RC522 هستش

              دیدگاه


                #8
                پاسخ : مشکل در تبدیل متغییر عددی به کاراکتر

                میشه کد زیر رو توضیح بدین:
                کد:
                temp = g_ucTempbuf;
                گذشت خصلت مردان است

                دیدگاه


                  #9
                  پاسخ : مشکل در تبدیل متغییر عددی به کاراکتر

                  نوشته اصلی توسط tohid041
                  میشه کد زیر رو توضیح بدین:
                  کد:
                  temp = g_ucTempbuf;
                  از متغییر داخل کتابخونه به temp میریزه .
                  temp = g_ucTempbuf[i];

                  دیدگاه


                    #10
                    پاسخ : مشکل در تبدیل متغییر عددی به کاراکتر

                    نوشته اصلی توسط mohamadeng
                    از متغییر داخل کتابخونه به temp میریزه .
                    temp = g_ucTempbuf[i];
                    g_ucTempbuf آرایه ی بایتی هست؟
                    بعد چه چیزی رو از آرایه به متغیر از نوع int میریزه؟
                    آدرس آرایه رو به temp میریزه؟
                    گذشت خصلت مردان است

                    دیدگاه


                      #11
                      پاسخ : مشکل در تبدیل متغییر عددی به کاراکتر

                      آقا شما کتابخانه stdio.h رو فراخوانی کن و با این 3 خط مقدار متغیر temp رو بصورت دسیمال روی lcd میتونی بخونی. فرقی هم نمیکنه temp مقداری که داره هگزه، باینریه و یا دسیماله. هرچی که باشه بصورت دسیمال روی ال سی دی نمایش میده.
                      کد:
                          lcd_gotoxy(0,0);
                          sprintf(lf,"%-3d",temp);
                          lcd_puts(lf);
                      lf یه آرایه 16 خونه ای هستش که باید از نوع char تعریف بشه.
                      www.gam-co.blogsky.com

                      دیدگاه

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