اطلاعیه

Collapse
No announcement yet.

تبدیل کد هگز به دسیمال و برعکس و گذاشتن عدد باینری در متغیر

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

    تبدیل کد هگز به دسیمال و برعکس و گذاشتن عدد باینری در متغیر

    سلام
    دوستان عزیز ازتون خواهش میکنم در این زمینه کمکم کنید!
    میخواهم کد هگز را مثل 0xff را به دسیمال تبدیل کنم! و یا دسیمال را به هگز تبدیل کنم! راه حلی هست کدی هست؟

    و اگر بخواهم عددی باینری مثل 010110 را در متغیری مثل int بگذارم باید چه کنم؟ اگر اینطوری استفاده کتم ارور میده!
    کد:
    a = 0b0101001;
    با تشکرو سپاس پیشاپیش
    [glow=red,2,300]برنامه هاي آموزشي تست شده براي NXP LPC1768 با توابع CMSIS[/glow]
    http://www.eca.ir/forum2/index.php?topic=76623.0

    #2
    پاسخ : تبدیل کد هگز به دسیمال و برعکس و گذاشتن عدد باینری در متغیر

    تبدیل مبناهای دودویی، هگز و دهدهی رو ماشین حسابِ ویندوز به سادگی انجام میده. به کد احتیاجی نیست.

    اینا مربوط به دبیرستان می شه ها!
    توی میکروکنترلرها، پردازنده ها، برنامه نویسی کامپیوتر و کلاً دنیای دیجیتال، نیازی به این شکل تبدیل نیست. وقتی من عدد 65 رو به یک متغیر یک بایتی نسبت میدم، توی حافظه پردازنده یک بایت بهش اختصاص داده می شه. تعبیرِ من و شما از این یک بایت می تونه یکسان نباشه. مثلاً من این متغیر رو می خونم و می بینم در مبنای دهدهی برابر 65 هست. شما ممکنه دودویی ببینی، و همون رو 01000001 بخونی. یه نفری همون رو به هگز برابر 41 می بینه، و دوستِ شما توی صفحه نمایش اونو به صورت کاراکتر چاپ می کنه و 'A' می بینه. همه ش یه چیزه. همه ش می شه 65 و یک بایته.
    بیایید با Google آشتی کنیم!

    دیدگاه


      #3
      پاسخ : تبدیل کد هگز به دسیمال و برعکس و گذاشتن عدد باینری در متغیر

      باسلام

      همانطور که دوستمان فرمودند کداسکی وباینری وهگز ودسیمال در رابطه با ذخیره وبازیابی از حافظه معنی ندارد وتمامی اعداد بصورت باینری در حافظه ذخیره میشود و تفاوت تنها در نحوه نمایش لحاظ می شود فرم نمایش با استفاده از کاراکترهای " c %i %d %s %f% " بابکارگیری تابع printf بوجود می آید

      دیدگاه


        #4
        پاسخ : تبدیل کد هگز به دسیمال و برعکس و گذاشتن عدد باینری در متغیر

        سلام
        من چیز هایی را که گفتید قبول دارم!
        ولی میخواهم مثلا به جای اینکه مقدار 100 به دسیمال را در متغیر a بریزم ,بیام اونو به 64 در هگز کنم و بعد اونو توش بریزم! همین!
        [glow=red,2,300]برنامه هاي آموزشي تست شده براي NXP LPC1768 با توابع CMSIS[/glow]
        http://www.eca.ir/forum2/index.php?topic=76623.0

        دیدگاه


          #5
          پاسخ : تبدیل کد هگز به دسیمال و برعکس و گذاشتن عدد باینری در متغیر

          نوشته اصلی توسط Reza Sede
          سلام
          من چیز هایی را که گفتید قبول دارم!
          ولی میخواهم مثلا به جای اینکه مقدار 100 به دسیمال را در متغیر a بریزم ,بیام اونو به 64 در هگز کنم و بعد اونو توش بریزم! همین!

          نوشته اصلی توسط Shapour-Ardebil
          باسلام

          همانطور که دوستمان فرمودند کداسکی وباینری وهگز ودسیمال در رابطه با ذخیره وبازیابی از حافظه معنی ندارد وتمامی اعداد بصورت باینری در حافظه ذخیره میشود و تفاوت تنها در نحوه نمایش لحاظ می شود فرم نمایش با استفاده از کاراکترهای " c %i %d %s %f% " بابکارگیری تابع printf بوجود می آید
          پیشنهاد میکنم متن را یکبار دیگر بخوانید و در صورت قانع نشدن موضوع را کامل توضیح بدهید که هدف شما از اینکار چیست

          دیدگاه


            #6
            پاسخ : تبدیل کد هگز به دسیمال و برعکس و گذاشتن عدد باینری در متغیر

            ببخشید من متوجه نمیشم!
            میخواهم توی M و N بخش PLL0 میکرو عدد بریزم ولی توی ورژن جدید این اعداد به فرمت هگز نوشته شده اند! و وقتی توی اون ها فرمت غیر هگز میگذارم میکرو هنگ میکنه!
            کد:
            LPC_SC->PLL0CFG=(M|N<<16);         //MSEL0 & NSEL0
            [glow=red,2,300]برنامه هاي آموزشي تست شده براي NXP LPC1768 با توابع CMSIS[/glow]
            http://www.eca.ir/forum2/index.php?topic=76623.0

            دیدگاه


              #7
              پاسخ : تبدیل کد هگز به دسیمال و برعکس و گذاشتن عدد باینری در متغیر

              نوشته اصلی توسط Reza Sede
              ببخشید من متوجه نمیشم!
              میخواهم توی M و N بخش PLL0 میکرو عدد بریزم ولی توی ورژن جدید این اعداد به فرمت هگز نوشته شده اند! و وقتی توی اون ها فرمت غیر هگز میگذارم میکرو هنگ میکنه!
              کد:
              LPC_SC->PLL0CFG=(M|N<<16);         //MSEL0 & NSEL0
              با سلام

              مقادیر M و N تنها یکبار انهم موقع راه اندازی اولیه مقدار دهی میشوند وموقع اجرای برنامه فکر نمیکنم بتوانید مقادیر آن را عوض کنید برای بدست آوردن هگز هم میتونی از ماشین حساب ویندوز استفاده کنید

              دیدگاه


                #8
                پاسخ : تبدیل کد هگز به دسیمال و برعکس و گذاشتن عدد باینری در متغیر

                سلام
                تابعی هست که فرکانس میکرو رو برگودونه؟
                چطور میشه توی سیمولاتور فرکانس میکرو رو فهمید؟
                [glow=red,2,300]برنامه هاي آموزشي تست شده براي NXP LPC1768 با توابع CMSIS[/glow]
                http://www.eca.ir/forum2/index.php?topic=76623.0

                دیدگاه


                  #9
                  پاسخ : تبدیل کد هگز به دسیمال و برعکس و گذاشتن عدد باینری در متغیر

                  نوشته اصلی توسط Reza Sede
                  سلام
                  تابعی هست که فرکانس میکرو رو برگودونه؟
                  چطور میشه توی سیمولاتور فرکانس میکرو رو فهمید؟
                  1- پروژه را در کیل باز میکنید
                  2- debug -> start/stop
                  3- گزینه اول <- Pperipherals - > Clocking and Power control

                  در این صفحه فرکانس ها را میتوانید ببینید

                  دیدگاه


                    #10
                    پاسخ : تبدیل کد هگز به دسیمال و برعکس و گذاشتن عدد باینری در متغیر

                    سلام
                    فکر کنم اشتباه نشون میده! وقتی میکرو روی 100 مگ هستش اون 12 نشون میده!
                    راستش من اصلا با سیمولاتور کار نکردم و نمیدونم چطوریه! :cry:
                    فقط بلدم اونو run کنم!
                    توی <- Pperipherals - > Clocking and Power control رفتم و این عکس را از همشون گرفتم! ببینید مشکل از چیه؟
                    [glow=red,2,300]برنامه هاي آموزشي تست شده براي NXP LPC1768 با توابع CMSIS[/glow]
                    http://www.eca.ir/forum2/index.php?topic=76623.0

                    دیدگاه


                      #11
                      پاسخ : تبدیل کد هگز به دسیمال و برعکس و گذاشتن عدد باینری در متغیر

                      به ترتیب شماره برو وتنظیمات را عین تصویر بکن وهرچی که راجع به pll در هر کجای برنامه اگر خودت نوشتی پاک کن

                      دیدگاه


                        #12
                        پاسخ : تبدیل کد هگز به دسیمال و برعکس و گذاشتن عدد باینری در متغیر

                        سلام
                        ایشالا درس مبانی دیجیتال رو که پاس کردید ؟ نه!!
                        نمیدونم رشته شما چیه ولی خوندن کتاب موریس مانو رو برای ادامه کار توصیه میکنم
                        در مورد اعداد هگز و دسیمال و باینری که دوستان توضیح دادند
                        اما
                        PLL رو میشه در حین کار هم تغییر داد
                        یه تابعی قبلا به شما داده بودم برای این کار.
                        اگه از همون استفاده میکنی و میخواهی فرکانس میکرو رو در حال کار تغییر بدی
                        از همون پارامتر هایی استفاده کن که قبلا استفاده میکردی.این قسمتش ربطی به ورژن کمپایلر نداره.


                        تولید کننده انواع تابلو فرمان آسانسور با تکنولوژی روز دنیا

                        دیدگاه


                          #13
                          پاسخ : تبدیل کد هگز به دسیمال و برعکس و گذاشتن عدد باینری در متغیر

                          نوشته اصلی توسط mehdi_nxp
                          سلام
                          ایشالا درس مبانی دیجیتال رو که پاس کردید ؟ نه!!
                          نمیدونم رشته شما چیه ولی خوندن کتاب موریس مانو رو برای ادامه کار توصیه میکنم
                          در مورد اعداد هگز و دسیمال و باینری که دوستان توضیح دادند
                          اما
                          PLL رو میشه در حین کار هم تغییر داد
                          یه تابعی قبلا به شما داده بودم برای این کار.
                          اگه از همون استفاده میکنی و میخواهی فرکانس میکرو رو در حال کار تغییر بدی
                          از همون پارامتر هایی استفاده کن که قبلا استفاده میکردی.این قسمتش ربطی به ورژن کمپایلر نداره.
                          سلام
                          شما اینو به من دادید!
                          کد:
                          void PLL(int M,int N,int CD){
                          	LPC_SC->PLL0CON&= 1;             //disable PLL
                          		LPC_SC->PLL0FEED=0xaa;LPC_SC->PLL0FEED=0x55; //feed sequence
                          		LPC_SC->PLL0CON = 0;             //disconnect PLL
                          		LPC_SC->PLL0FEED=0xaa;LPC_SC->PLL0FEED=0x55; //feed sequence
                          		LPC_SC->CCLKCFG = CD;             //clock divider
                          		LPC_SC->PLL0FEED=0xaa;LPC_SC->PLL0FEED=0x55; //feed sequence
                          		LPC_SC->CLKSRCSEL=1;             //clock source
                          		LPC_SC->PLL0FEED=0xaa;LPC_SC->PLL0FEED=0x55; //feed sequence
                          		LPC_SC->PLL0CFG=(M|N<<16);         //MSEL0 & NSEL0
                          		LPC_SC->PLL0FEED=0xaa;LPC_SC->PLL0FEED=0x55; //feed sequence
                          		LPC_SC->PLL0CON =1;             //enable PLL
                          		LPC_SC->PLL0FEED=0xaa;LPC_SC->PLL0FEED=0x55; //feed sequence
                          		while(!(LPC_SC->PLL0STAT>>26)&1);      //wait for PLL lock
                          	LPC_SC->PLL0CON =3;             //connect PLL
                          		LPC_SC->PLL0FEED=0xaa;LPC_SC->PLL0FEED=0x55; //feed sequence
                          }
                          وقتی اینو مینویسم [glow=red,2,300]فکر میکنم[/glow] میکرو هنگ میکنه! راستی وقتی اورکلاک میشه باید فرکانس Flash fs را هم تغییر بدم توی file-config ؟
                          [glow=red,2,300]برنامه هاي آموزشي تست شده براي NXP LPC1768 با توابع CMSIS[/glow]
                          http://www.eca.ir/forum2/index.php?topic=76623.0

                          دیدگاه


                            #14
                            پاسخ : تبدیل کد هگز به دسیمال و برعکس و گذاشتن عدد باینری در متغیر

                            میکرو هنگ نمیکنه در واقع PLL قفل نمیشه که نتیجه محاسبات اشتباه شماست.
                            محاسبات رو هم که قبلا گفته بودم.
                            در محیط سیمولینک میتونید ببینید که آیا PLL قفل میشه یا نه.

                            تولید کننده انواع تابلو فرمان آسانسور با تکنولوژی روز دنیا

                            دیدگاه


                              #15
                              پاسخ : تبدیل کد هگز به دسیمال و برعکس و گذاشتن عدد باینری در متغیر

                              سلام
                              توی پیام خصوصی نحوه محاسبه رو توضیح دادین منم روی همون مثالی که زدید کار میکنم! بعد از خط اورکلاک میکرو کارهای دیگه رو انجام میده ولی دیگه نمیتونم عکسی رو نمایش بدهم!
                              این برنامه :
                              کد:
                              int main(){
                              	SystemInit();
                              	finit ("M0:");
                              	LCD_Init();
                              	
                              	lcd_show_bmp(0,0,"M:\\picture\\0.bmp");
                              	delay_ms(1000);
                              	lcd_show_bmp(0,0,"M:\\picture\\1.bmp");
                              	
                              	LCD_Clear(Red);
                              	LCD_Clear(Blue);
                              
                              	PLL(64,3,2); //over clocking...
                              	delay_ms(1000);
                              	
                              	LCD_Clear(Red);
                              	LCD_Clear(Blue);
                              	
                              	lcd_show_bmp(0,0,"M:\\picture\\0.bmp");
                              	delay_ms(1000);
                              	lcd_show_bmp(0,0,"M:\\picture\\1.bmp");
                              	
                              while(1);
                              }
                              میکرو اول عکس هارو نمایش میده و ال سی دی را ابی و قرمز میکنه و بعد از اورکلاک ابی و قرمز میکنه ولی عکسی نشون نمیده؟!!!
                              با سیمولینک هم بلد نیستم کار کنم! حتی فرکانس هارو هم اشتباه میبینم!
                              [glow=red,2,300]برنامه هاي آموزشي تست شده براي NXP LPC1768 با توابع CMSIS[/glow]
                              http://www.eca.ir/forum2/index.php?topic=76623.0

                              دیدگاه

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