اطلاعیه

Collapse
No announcement yet.

چند سوال درباره CCS

Collapse
این موضوع بسته شده است.
X
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    چند سوال درباره CCS

    عرض سلام و خسته نباشید
    من نسخه 4.093 کامپایلر ccs رو دانلود کردم، امشب یکم گیر دادم بهش کم کم داره ازش خوشم میاد ( به روش خودم باهاش دارم کار میکنم ) چندتا سوال برام پیش اومد اگر دوستان لطف کنند و راهنمایی کنند ممنون میشم:
    این کد Start up که درست میکنه رو میشه تغییر داد؟
    میشه فایل اسمبلی ای که درست کرده رو ویرایش کنم بعد دوباره با اسمبلر خودش اسمبل کنم؟
    من دارم برای اینکه قلقش بیاد دستم یک برنامه خیلی ساده رو درون این کامپایلر مینویسم و میخوام به هر طریقی که شده تا جای ممکن کم حجمش کنم ( بنا به دلایل خاص ) از دوستان میخوام که اگر وقت بکنند اونها هم اینکار رو بکنند و نتیجه رو بهم اطلاع دهند ( اگر با پیام خصوصی هم اینکار رو بکنید اشکال نداره ) برنامه اینجوریه:
    8 بیت پورت D رو یک یا صفر کنه، پورت رو معکوس کنه و بعد از حدود یک ثانیه تاخیر دوباره پورت رو معکوس کنه دوباره همون تاخیر و دوباره معکوس یعنی کلا پورت بعد از یک ثانیه معکوس بشه ( با یک حلقه ) برنامه رو هم امتحان کنید و مطمئن بشید که درست کار میکنه.
    اگر امکان داره شما هم تلاش کنید این برنامه رو با کمترین حجم کد بنویسید، میخوام ببینم از چه تکنیک هایی استفاده میشه کرد و این برنامه درون این کامپایلر چقدر میتونه کم حجم بشه، باز هم میگم اگر علاقه ندارید نتیجه رو اینجا بنویسید به صورت پیام خصوصی هم بگید ممنون میشم.
    از آنجا که گاهی فرصت بازخوانی پست نیست، بابت غلط های املایی و نگارشی احتمالی معذرت میخوام.
    هیچیک از پاسخ هایی که میدم را کاملا تایید نمیکنم و ممکن هست اشتباه کرده باشم، اگر من به نوشته ام مطمئن هستم شما مشکوک باشید.
    اگر در حل مشکل من کمک کردید و دکمه تشکر رو نزدم حتما فراموش کردم کوچکترین کمک شما برایم ارزشمند است!
    اگر به هر طریقی از من ناراحت شدید حتما با یک پیام خصوصی تذکر بدهید تا مشکل رو حل کنیم و رابطه ی صمیمانه، پایدار بماند.
    شاد و موفق باشید

    #2
    پاسخ : چند سوال درباره CCS

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

    دیدگاه


      #3
      پاسخ : چند سوال درباره CCS

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

      دیدگاه


        #4
        پاسخ : چند سوال درباره CCS

        سلام دوست عزیز
        من با استفاده از دستور asm# تونستم برنامه رو تا نصف کاهش بدم یعنی از 84 بایت به 44 بایت ولی نتونسم زمان یک ثانیه تاخیر رو درست کنم و وقتی تو پروتئوس شبیه سازی کردم عمل روشن و خاموش شدن به تندی انجام میگرفت شما هم تست کنید ببینید میتونید یه کاری کنید یا نه. منتظر گزارش کارتون هستم.

        با تشکر

        دیدگاه


          #5
          پاسخ : چند سوال درباره CCS

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

          دیدگاه


            #6
            پاسخ : چند سوال درباره CCS

            باسلام دوست عزیز
            آقا واسه نوشتن تاخیر این برنامه دیشب تا ساعت 2 ور رفتم ولی به جایی نرسیدم امروزم از صبح دانشگاه بودم و نتونستم روش کار کنم من برنامه رو واستون فرستادم شاید بتونید به تاخیر یک ثانیه ای واسش بنویسید البته درسته که حجم برنامه کم شده ولی حافظه رم از 6 به 18 تغییر کرده!!!

            http://www.4shared.com/file/PQnhGy8d/New_folder.html

            باتشکر از شما

            دیدگاه


              #7
              پاسخ : چند سوال درباره CCS

              بابت برنامه ممنون سعید جان، حافظه RAM که از دست دادید به خاطر تعریف متغییرهای از نوع int32 هست که البته من متوجه نشدم استفاده اونها چی بوده چون ظاهرا به عنوان Lable از اونها استفاده کردید و Lable نیازی به تعریف نداره و فضایی هم اشغال نمیکنه.
              من یک برنامه نمونه قرار میدم که غیر از تابع main() بقیه برنامه با اسمبلی نوشته شده و اگر بخوایم برنامه درست کار کنه فکر کنم دیگه کمتر از این نشه، مگر اینکه به شکلی بتونیم کد Startup کامپایلر رو حذف کنیم که فکر نمیکنم این امکان رو داشته باشیم.
              متاسفانه پسفردا میان ترم دارم و دیگه باید بخوابم، برنامه ای رو خودم نوشتم قرار میدم بررسی کنید، ایشالا در اولین فرصت میام توضیح میدم، در این برنامه حافظه ای که مصرف شده 52 بایت هست و Ram هم 4 بایت مصرف شده ( البته اگر تاخیر رو کمتر میخواستیم میشد کم حجم تر هم بنویسیم ) دقیقا همین برنامه رو در اسمبلر میشه نوشت که کمتر از 34 بایت فضا رو بگیره، چراکه اونجا کدی برای تابع main اضافه نمیشه. البته همیشه لازم نیست اینقدر اسمبلی بنویسیم، من این رو به این صورت نوشتم که نشان بدم میشه توی C هم کل برنامه رو با اسمبلی نوشت و مشکلی هم پیش نمیاد.
              http://www.box.net/shared/7gf6yz0101
              از آنجا که گاهی فرصت بازخوانی پست نیست، بابت غلط های املایی و نگارشی احتمالی معذرت میخوام.
              هیچیک از پاسخ هایی که میدم را کاملا تایید نمیکنم و ممکن هست اشتباه کرده باشم، اگر من به نوشته ام مطمئن هستم شما مشکوک باشید.
              اگر در حل مشکل من کمک کردید و دکمه تشکر رو نزدم حتما فراموش کردم کوچکترین کمک شما برایم ارزشمند است!
              اگر به هر طریقی از من ناراحت شدید حتما با یک پیام خصوصی تذکر بدهید تا مشکل رو حل کنیم و رابطه ی صمیمانه، پایدار بماند.
              شاد و موفق باشید

              دیدگاه

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