اطلاعیه

Collapse
No announcement yet.

مشکل کم حجم بودن حافظه ATiny 13 ؟

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

    مشکل کم حجم بودن حافظه ATiny 13 ؟

    سلام ..
    یه برنامه واسه یه Attiny 13 نوشتم که توش از 4 تابع استفاده شده و کل برنامه 211 خط میشه ....
    مشکل اینجاست وقتی تابع اولی و دومی رو فراخونی میکنم مشکلی نیست
    ولی همینکه سومی و 4 رومی رو فراخونی میکنم این پیغامو میده .



    اگه بخوام برنامه رو بدون اینکه دسکاریش کنم تو پروگرامش کنم باید چیکار کرد ایا تکنیک خاصی هست یا قلقی که بشه یجورایی مقدار حجم برنامه رو کم کرد؟
    ذكات علم ياد دادنه ....

    #2
    پاسخ : مشکل کم حجم بودن حافظه ATiny 13 ؟

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

    دیدگاه


      #3
      پاسخ : مشکل کم حجم بودن حافظه ATiny 13 ؟

      متاسفانه من اسمبلی کار نکردم :redface:
      راه دیگه ایی نیست؟
      ذكات علم ياد دادنه ....

      دیدگاه


        #4
        پاسخ : مشکل کم حجم بودن حافظه ATiny 13 ؟

        خوب تا چقدر بخواید حجم کم کنه و با چه کاپیالری

        اگه از c استفاده میکنید توی تنظیمات کامپایلر یه جایی داره واسه optimize یا بهینه سازی کردن

        روی بهینه سازی حجم بذارید نه سرعت

        تکنیک های دیگه هم برمیگرده به نوع برنامه نوشتن شما

        مثلا توی تاپیک گیرنده مادون قرمز یه همچین چیزی بود:

        selec case a
        case 1
        lcd "your code";a
        case 2
        lcd "your code;a
        .
        .
        .
        این همینطوری تا 15 یا 16 رفته بود خوب کلی بریز بپاش بود در حالی که میشه اینجوری نوشت:

        lcd "your code";a

        همین

        شما هم برنامه رو یه ریواز بکن

        مثلا عادت داریم چند جا یه رشته رو استفاده کنیم هر بار مثل بالا مینویسیم مثلا: print "ali"
        این خط 10 جا تکرار میشه
        میتونید اینجوری بنویسید:
        const ali="ali"
        print ali
        اینجوری کلی جا اضافه میشه

        (اگه با بیسیک مینویسید بهینه سازی رو داره ولی من راضی نبودم یکم برنامه رو به هم میریزه)
        به وبلاگم سر بزنید

        دیدگاه


          #5
          پاسخ : مشکل کم حجم بودن حافظه ATiny 13 ؟

          ممنون از پاسختون...
          اگه از c استفاده میکنید توی تنظیمات کامپایلر یه جایی داره واسه optimize یا بهینه سازی کردن
          من با code vision کار میکنم این که شما فرمدینو ندیدم میشه بیشتر توضیح بدین؟

          مشکل اصلی که دارم برمیگرده به نوع متغیری که از نوع float هست که باید همین باشه چون دارم با adc کار میکنم مجبورم float بذارم ولی اگه char بکنم درست میشه ولی نمیتونم این کارو بکنم ...
          یه سوال راهی هست که بشه برای خوندن adc اونو از نوع char یا int گذاشت بعد تبدیلش کرد به float ....ولی نه نمیشه متغیرا از بزرگ به کوچیک تبدیل میشن :angry:
          چرا اینقدر حافظه این ATtiny کمه من دفعه اوولمه دارم براش برنامه مینویسم اصلا فکرشو نمیکردم اینقدر کوچلو باشه :cry:
          ذكات علم ياد دادنه ....

          دیدگاه


            #6
            پاسخ : مشکل کم حجم بودن حافظه ATiny 13 ؟

            سلام

            این مسیر رو توی کد ویژن دنبال کنید:

            منوی project منوی configure تب c compiler یه جا نوشته optimize for که میتونید برای سرعت یا حجم تغییر بدید

            ولی انتظار نداشته باشید پولو هوا کنه :mrgreen:

            در مورد float و Acd هم متوجه منظورتون نشدم

            همه Adc ها عدد از نوع integer میدن

            مگه توی تنظیمات Adc بذارید روی هشت بیتی که توی wizard هست ولی کلا خروجی عدد اعشاری نیست چون اصلا میکرو fix point نه floating point
            به وبلاگم سر بزنید

            دیدگاه


              #7
              پاسخ : مشکل کم حجم بودن حافظه ATiny 13 ؟

              optimize for رو size بود ...
              در مورد float و Acd هم متوجه منظورتون نشدم
              ببینید مثلا من میخوام ولتای که adc میخونه اگه بین دو تا ولتاژی که تو شرط براش میزارم شد خروجی یه پورتی رو یک کنه ...حالا اگه از نوع int باشه نمیشه...

              if (adc>3.38 && adc<3.43)
              led_on;
              ذكات علم ياد دادنه ....

              دیدگاه


                #8
                پاسخ : مشکل کم حجم بودن حافظه ATiny 13 ؟

                نوشته اصلی توسط majid.4206
                optimize for رو size بود ...
                در مورد float و Acd هم متوجه منظورتون نشدم
                ببینید مثلا من میخوام ولتای که adc میخونه اگه بین دو تا ولتاژی که تو شرط براش میزارم شد خروجی یه پورتی رو یک کنه ...حالا اگه از نوع int باشه نمیشه...

                if (adc>3.38 && adc<3.43)
                led_on;
                سلام
                خوب شما بیا عکس عمل کن :mrgreen: :mrgreen:
                یعنی بیا عدد معادل دیجیتال 3.38و3.43 را بیاب و بعد مقدار رجیستر A/D رل با این اعداد مقایسه کن.
                به همین راحتی دیگه در گیر محاسبات float هم نمیشی
                :nerd:
                فرزندم در راه است

                دیدگاه


                  #9
                  پاسخ : مشکل کم حجم بودن حافظه ATiny 13 ؟

                  سلام

                  مگه شما توی دریافت از adc عدد اینتجر نمیگیرید

                  اونو مگه تبدیل نمیکنید به float : اینجوری

                  5 X
                  ----------- = ------
                  1023 مقدار adc

                  خوب نکنید این کار رو

                  بعد if رو اینجوری بنویسید:

                  برای 3.38v میشه 691.548 در 5ولت رفرنس که int شدش میشه 691
                  برای 3.48v هم میشه 712.008 که int شدش میشه 712


                  اینم if:
                  if (adc>691 && adc<712)
                  مشکل نداره
                  به وبلاگم سر بزنید

                  دیدگاه


                    #10
                    پاسخ : مشکل کم حجم بودن حافظه ATiny 13 ؟

                    ایوالا :applause:
                    اصلا اینو یادم رفته بود کمک بزرگی کردین
                    انشا ا... که موفق باشین علی جان و علی جان :icon_razz:
                    یا علی...
                    ذكات علم ياد دادنه ....

                    دیدگاه


                      #11
                      پاسخ : مشکل کم حجم بودن حافظه ATiny 13 ؟

                      خواهش میکنم وظیفه بود
                      موفق باشید
                      یا علی.......
                      فرزندم در راه است

                      دیدگاه


                        #12
                        پاسخ : مشکل کم حجم بودن حافظه ATiny 13 ؟

                        :mrgreen: حالا که Attiny13 داری که کار میکنی ... لذت بخشه ... نه؟

                        خیلی باحاله

                        من باهاش که ریموت کنترل ساختم فرو کردم توی قاب جا سوئیچی ... توی جمهوری یکی فضولی کرد خواست توشو ببینه فکر کرد این IC یه انکدره توی مغازش پر ریموت و فرستنده گیرنده و کلی انکدر و دیکدرهای معروف بود از اون به بعد Attiny13 هم اضافه کرده بود :mrgreen:
                        به وبلاگم سر بزنید

                        دیدگاه


                          #13
                          پاسخ : مشکل کم حجم بودن حافظه ATiny 13 ؟

                          حالا که Attiny13 داری که کار میکنی ... لذت بخشه ... نه؟
                          فعلا تو پروگرام کردنش موندم حالا تا لذت بردن خیلی فاصله مونده...
                          ایا این ATiny یا با atmega فرقی دارن... اخه با پروگرامر stk200/300 پروگرام نمیشه با چی پروگرامش کنم؟
                          ذكات علم ياد دادنه ....

                          دیدگاه


                            #14
                            پاسخ : مشکل کم حجم بودن حافظه ATiny 13 ؟

                            ای بابا اذیت نکن دیگه

                            این میکرو ها هم مثل بقیه با stk300 پروگرام میشن

                            ما گفتیم دیگه مدار رو بستی فروختی پولش هم خوردی... اصلا اینقدر مصرفشون پایینه بدون تغذیه پروگرام میشن :mrgreen:
                            به وبلاگم سر بزنید

                            دیدگاه

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