اطلاعیه

Collapse
No announcement yet.

سوالات مربوط به KEIL

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

    سوالات مربوط به KEIL

    با سلام

    من چند سوال در مورد برنامه نویسی در KEIL دارم که اگر لطف کنید و پاسخ دهید خیلی خیلی ممنون میشوم

    1 . دستور unsigned ؟
    2 . دستور Char *A ؟

    با سپاس
    http://vz.iminent.com/vz/39a77668-19...h-fishing.giff

    #2
    پاسخ : سوالات مربوط به KEIL

    نوشته اصلی توسط Soodi
    1 . دستور unsigned ؟
    2 . دستور Char *A ؟
    مشکل شما چیه؟ عبارت unsigned یعنی بدون علامت. تا اونجائیکه من می دونم وقتی متغیری رو از نوع unsigned تعریف می کنی دیگه برای کامپایلر عدد منفی مفهومی نداره و اگر منفی باشه اون رو مکمل 2 می کنه و اون رو ذخیره می کنه، اما اگه signed باشه منفی رو هم در نظر می گیره که البته نمی دونم اون رو چطور میشه ذخیره کرد! :sad:

    یه کم سرچ کردم. این صفحه ها توضیحات جالبی داره:
    http://bytes.com/topic/c/answers/219799-what-exactly-difference-between-signed-unsigned-c
    http://bytes.com/topic/c/answers/576041-int-versus-unsigned-int-optimizing-speed

    دومی هم که یک متغیر اشاره گر از نوع char به اسم A تعریف می کنه.

    امیدوارم جناب آقازاده به این تاپیک سر بزنه. چون ایشون واقعاً در این موارد استاد هستند. توی اون 2تا لینک یه سری توضیحاتی هستند که ایشون خوب می تونن از پس توضیحش بر بیان
    دانش فنی تا به عمل تبدیل نشده، ذره ای ارزش نداره. اما بعضی وقت ها باید از دانش برای باز کردن مرزهای جدیدی در علم استفاده کرد، نه اینکه اونها رو صرفاً فقط به عمل تبدیل کرد.

    دیدگاه


      #3
      پاسخ : سوالات مربوط به KEIL

      چون ایشون واقعاً در این موارد استاد هستند.
      بازم جا شکرش باقیه که هنوز فصل هندونه س!! :mrgreen: :mrgreen:

      با متغیر های عددی صحیح به دو صورت میشه برخورد کرد. یکی اینکه بگیم تمام بیت های داخل متغیر برای نگهداری عدد مصرف میشه مثلا یک عدد 8 بیتی کل بیت هاش برای نگهداری عدد استفاده میشه که این فرم نمیتونه عددی بفرم منفی رو نمایش بده. مثلا یک عدد 8 بیتی فقط میتونه 0 تا (2 به توان 8 .... منهای یک) رو در خودش جا بده یا همون صفر تا 255. به این فرم میگیم بدون علامت یا همون unsigned. یک فرم دیگه هم هست که میشه یک بیت رو برای علامت عدد در نظر گرفت (1 یعنی منفی و 0 یعنی مثبت) و در این حالت رنج مطلق عددی بین 0 تا 2 به توان 7 ... منهای یک میشه (البته برای 8 بیت) و هم اعداد مثبت و هم منفی که به این فرم میگیم علامتدار یا همون signed. از اونجایی که اغلب این فرم عددی مورد استفاده داره کامپایلر های C بطور پیش فرض در نظر میگیرن که عدد علامتدار هست مگر اینکه توسط برنامه نویس با لغت unsigned یا signed نوعش مشخص بشه.

      مثلا:
      signed int اغلب موارد همون int هست. البته قبل از اینکه همچین تعبیری کنین یک سری به option های کامپایلرتون بزنین.

      برای مقادیر اعشاری همواره عدد بفرم علامتدار وجود داره و مدیریت میشه. و نمیشه عدد اعشاری بدون علامت داشت.

      - سطر دومتون ممکنه اشتباه تایپ شده باشه ممکنه نشده باشه!
      چون Char با char تفاوت میکنه. اما تفسیر ثابته. A یک متغیری هست که میتونه آدرس مقداری از جنس نوع Char رو در خودش ذخیره کنه. درست مثل اینکه شما با انگشت اشاره تون به دوستی اشاره کنین. ممکنه این انگشت به دیوار هم نشونه بره. اما صرف بلند کردن انگشت و به سمتی نشونه رفتن دلیلی بر وجود شخص یا دیوار نیست. بنابراین قبل از استفاده باید یک شخص یا دیوار جلوی انگشتتون بذارین. معادلش: یک اشاره گر قبل از استفاده باید مقدار دهی بشه. ضمنا این اشاره گر چون مثل یک انگشت همیشه باز بالاخره به جایی اشاره میکنه برای توضیح این مفهوم که "به جایی یا چیزی اشاره نمیکنه" از مقدار NULL استفاده میکنن.

      دیدگاه


        #4
        پاسخ : سوالات مربوط به KEIL

        با سلام

        تشکر بسیار زیاد از پاسخ هایتان

        پس عبارت unsigned برای ایجاد متغیری با اعداد بدون علامت به کار می رود
        و عبارت char *A متغیر A از نوع char انتخاب شده است که می تواند آدرسی رو در خود ذخیره کند که در حالت عادی این آدرس با مقدار NULL برابر است

        درسته ؟؟
        http://vz.iminent.com/vz/39a77668-19...h-fishing.giff

        دیدگاه


          #5
          پاسخ : سوالات مربوط به KEIL

          با سلام

          من می خواهم که پایه ای رو در حالت ورودی قرار دهم و با اتصال ولتاژ 3.3 به پایه ، دستورات مورد نظرم رو اجرا کنم
          اگر لطف کنید و رجیستر مربوط به این کار و چگونگی مقدار دهی آن را توضیح دهید

          با سپاس
          http://vz.iminent.com/vz/39a77668-19...h-fishing.giff

          دیدگاه


            #6
            پاسخ : سوالات مربوط به KEIL

            یه هفت هشت راهی داری
            1:پین رو ورودی کنی تند تند بخونیش و اگه این طور شد فلان
            2:اینتراپت رو راه بندازی و تنظیم کنی هر وقت اینتراپت خورد برو این کار رو کن
            3:تایمر رو راه بندازی و تند تند پین مورد نظرت رو چم کنی! و اگه فلان بود فلان کن
            انجام پروژه های برنامه نویسی اندروید
            [glow=red,2,300]نرم افزار نقشه های پاور کامپیوتر اندورید[/glow]
            http://cafebazaar.ir/app/?id=com.atxdroid

            دیدگاه


              #7
              پاسخ : سوالات مربوط به KEIL

              دوست عزیز بهتره اول یکم در مورد برنامه نویسی به زبان C مطالعه کنین.سوالاتی که اول پست پرسیدین ربطی به Keil نداره و دستورات مربوط به زبان C هست. اگه پایه C تون قوی نباشه با کپی پیست کردن کدها هیچی یاد نمیگیرین.

              برای شروع به کار با SAM7X میتونین از برنامه های لینک زیر استفاده کنین :
              http://www.eca.ir/forum2/index.php?topic=50901.0
              برنامه دوم نحوه خوندن یه پین و نوشتن اون تو یه پین دیگه هست.

              دیدگاه


                #8
                پاسخ : سوالات مربوط به KEIL

                و عبارت char *A متغیر A از نوع char انتخاب شده است که می تواند آدرسی رو در خود ذخیره کند که در حالت عادی این آدرس با مقدار NULL برابر است
                نه! درست نیست! دقیقش این میشه:
                متغیری بنام A داریم که میتونه آدرس مقداری از نوع char رو در خودش نگهداری کنه. یا به عبارتی A یک اشاره گر به char هست.
                اگر اشاره گری مقدار NULL داشته باشه فرض بر این گرفته میشه که به جایی اشاره نمیکنه.

                فکر میکنم دفعه پیش من یه کمی؛ گیج توضیح دادم.

                دیدگاه


                  #9
                  پاسخ : سوالات مربوط به KEIL

                  با سلام و تشکر فراوان از پاسخ هایتان

                  من میخواهم با رجیستر PIOx_PDSR ورودی را تعیین کنم اگر لطف کنید و توضیح دهید ممنون میشوم

                  با سپاس
                  http://vz.iminent.com/vz/39a77668-19...h-fishing.giff

                  دیدگاه


                    #10
                    پاسخ : سوالات مربوط به KEIL

                    دوست عزیز منم با نظر دوستان موافقم که مشکل شما مشکل Keil نیست؛ مشکل شما برنامه نویسی خود c هست. جداً پیشنهاد می کنم یه مقدار بیشتر در مورد c اطلاعات کسب کنید، وگرنه کپی پیست کردن کدها دردی رو دوا نمی کنه.
                    نوشته اصلی توسط Soodi
                    با سلام و تشکر فراوان از پاسخ هایتان

                    من میخواهم با رجیستر PIOx_PDSR ورودی را تعیین کنم اگر لطف کنید و توضیح دهید ممنون میشوم

                    با سپاس
                    بسیار خوب، من راهنمائی میکنم. شما برای اینکه متوجه بشید کدوم یک از پایه ها 1 هست و کدم یکی 0، می تونید این رجیستر رو با 0xFFFFFFFF اند (&amp کنید و نتیجه رو بخونید. هر بیت نتیجه که مقدارش 1 بود یعنی مقدار ورودی اون 1 هست و بقیه 0.

                    البته فکر می کنم شما این سوال آخر رو اشتباه نوشتید، می خواستید همین رو بنویسید، درسته:

                    نوشته اصلی توسط Soodi
                    با سلام

                    من می خواهم که پایه ای رو در حالت ورودی قرار دهم و با اتصال ولتاژ 3.3 به پایه ، دستورات مورد نظرم رو اجرا کنم
                    اگر لطف کنید و رجیستر مربوط به این کار و چگونگی مقدار دهی آن را توضیح دهید

                    با سپاس
                    دانش فنی تا به عمل تبدیل نشده، ذره ای ارزش نداره. اما بعضی وقت ها باید از دانش برای باز کردن مرزهای جدیدی در علم استفاده کرد، نه اینکه اونها رو صرفاً فقط به عمل تبدیل کرد.

                    دیدگاه


                      #11
                      پاسخ : سوالات مربوط به KEIL

                      با سلام

                      من آموزش ARM رو دارم با مجلات PMM دنبال میکنم که چند روز پیش اولین چراغ چشمک زن رو ساختم که این یعنی با خروجی های میکرو آشنایی پیدا کردم و حالا تصمیم دارم که چند سوئیچ به پروژه اضافه کنم تا با فشار دادن سوئیچ ها LED ها رو کنترل کنم و به یک نکته هم اشاره کنم که هیچ کدام از برنامه هارو Copy-Past نکردم و دارم زبان c رو یاد میگیرم و پروژه مذکور رو خودم برنامه نویسی کردم ولی در این نسخه از مجله در مورد ورودی ها توضیح مختصری داده شده است و مثالی هم زده نشده است که این بود که من یک تاپیک ایجاد کنم تا سوالاتی رو که برایم پیش می آیددر این تاپیک مطرح کنم

                      با سپاس
                      http://vz.iminent.com/vz/39a77668-19...h-fishing.giff

                      دیدگاه


                        #12
                        پاسخ : سوالات مربوط به KEIL

                        نوشته اصلی توسط Soodi
                        با سلام

                        من آموزش ARM رو دارم با مجلات PMM دنبال میکنم که چند روز پیش اولین چراغ چشمک زن رو ساختم که این یعنی با خروجی های میکرو آشنایی پیدا کردم و حالا تصمیم دارم که چند سوئیچ به پروژه اضافه کنم تا با فشار دادن سوئیچ ها LED ها رو کنترل کنم و به یک نکته هم اشاره کنم که هیچ کدام از برنامه هارو Copy-Past نکردم و دارم زبان c رو یاد میگیرم و پروژه مذکور رو خودم برنامه نویسی کردم ولی در این نسخه از مجله در مورد ورودی ها توضیح مختصری داده شده است و مثالی هم زده نشده است که این بود که من یک تاپیک ایجاد کنم تا سوالاتی رو که برایم پیش می آیددر این تاپیک مطرح کنم

                        با سپاس
                        خوب پس این جوابی که من بهتون دادم رو باید بتونید بطور کامل ازش استفاده کنید دیگه.
                        دانش فنی تا به عمل تبدیل نشده، ذره ای ارزش نداره. اما بعضی وقت ها باید از دانش برای باز کردن مرزهای جدیدی در علم استفاده کرد، نه اینکه اونها رو صرفاً فقط به عمل تبدیل کرد.

                        دیدگاه


                          #13
                          پاسخ : سوالات مربوط به KEIL

                          با سلام

                          بله
                          مثلا حرف & محتوای متغیر رو برمیگرداند و در متغیری ذخیره میکند و اگر این متغیر برابر مقدار یکی از پایه ها بر مبنای هگز باشد یعنی آن پایه 1 شده است که با دستور IF میتوان شرط گذاشت
                          فقط اگر یک مثل هم بزنید ممنون میشوم

                          با سپاس

                          http://vz.iminent.com/vz/39a77668-19...h-fishing.giff

                          دیدگاه


                            #14
                            پاسخ : سوالات مربوط به KEIL

                            نه دوست من. شما این مساله رو با & در اشاره گر اشتباه گرفتید. این & منطقی هست. مثلاً 1&1=1 و 1&0 = 0.

                            شما باید این کار رو بکنی:
                            کد:
                            a=(AT91C_PIOA_PDSR & 0xFFFFFFFF);

                            الان این متغیر a یه عبارت 32 بیتی هگز هست. حالا، هر بیت اون که یک باشه، یعنی همون بیت از رجیستر a (همون PIOA) یک هست.

                            متوجه شدی؟

                            البته شما اگه کلیدهات رو به پایه های تایمر وصل کنی و رو مد capture کار کنی بهتر نتیجه میگیری. اما این که گفتم هم یه راهشه.
                            دانش فنی تا به عمل تبدیل نشده، ذره ای ارزش نداره. اما بعضی وقت ها باید از دانش برای باز کردن مرزهای جدیدی در علم استفاده کرد، نه اینکه اونها رو صرفاً فقط به عمل تبدیل کرد.

                            دیدگاه


                              #15
                              پاسخ : سوالات مربوط به KEIL

                              & منطقی یعنی چه ؟
                              http://vz.iminent.com/vz/39a77668-19...h-fishing.giff

                              دیدگاه

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