اطلاعیه

Collapse
No announcement yet.

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

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

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

    نمایش تصاویر مختلف روی اسیلوسکوپ از پروژه های جالب و چالش برانگیز در ارتباط با میکروکنترلرهایی نظیر AVR است که نمونه هایی از آن هم در اینترنت وجود دارد. در چند سال پیش مسابقه ای را با موضوع نمایش تصاویر روی اسکوپ با همکاری شرکت نوین تراشه ( که متعلق به دوستان بنده است و هیچ رابطه ای با من ندارد) برگزار کردم و علیرغم آنکه جایزه آن یک لپ تاپ بود، افراد بسیار کمی موفق به جواب گرفتن شدند. البته یکی از دوستان با استعداد و فعال که در همین سایت هم عضو هستند یک بازی روی اسیلوسکوپ درست کرده بودند که به عنوان برنده مسابقه انتخاب شدند. اخیرا هم مشاهده کردم تبلیغاتی در همین سایت مبنی بر انجام مسابقه ای با همین مضمون توسط یکی از دانشگاه ها انجام شده که می تواند حرکت مثبتی باشد. به هرحال در پروژه ای که در این پست ضمیمه شده است، سورس اسمبلی لازم برای ایجاد سیگنال های لازم روی خروجی های DACB.CH0 و DACB.CH1 قرار داده شده است و می تواند یک متن با 256 کاراکتر و فونت های 8X8 را نمایش دهد. اگر سوالی در مورد این پروژه خاص برای دوستان مطرح بود که این تاپیک پابرجا خواهد بود. در غیر اینصورت این پست به تاپیک نمونه کدهای XMEGA منتقل و تاپیک حذف خواهد شد.

    فایل های پیوست شده
    اوژن: به معنای افکننده و شکست دهنده است
    دانایی، توانایی است-Knowledge is POWER
    برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
    وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
    قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
    اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
    ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

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

    سلام آقای کی نژاد
    لطفا درمورد الگوریتم این برنامه یه کم توضیح بدین.
    ممنون
    بنده آن دمم كه ساقي گويد
    يك جام دگر بگير و من نتوانم

    دیدگاه


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

      نوشته اصلی توسط ecm-tank
      لطفا درمورد الگوریتم این برنامه یه کم توضیح بدین.
      الگوریتم برنامه به این صورت است که به هر کد ascii یک عدد در جدول CODE_TABLE نسبت داده شده است. بنابراین با خواندن به ترتیب کاراکترهای لازم برای نمایش از جدول SCREEN_TABLE، کد متناظر آن از جدول CODE_TABLE استخراج می شود و 8 برابر این عدد به شروع اطلاعات Font در جدول FONT_TABLE اشاره می کند. به عبارت دیگر 8 بایت معادل 8 ستون یک فونت در اختیار برنامه است که به ازای هر بیت آن که یک باشد باید به DAC مقدار مناسب داده شود. حال با اجرای خطوط برنامه تک تک این بیت ها ارزیابی می شوند و در صورت یک بودن آن در یک محور نمایش اسیلوسکوپ به DAC مقدار داده می شود. محور دیگر هم با مکانیزم جاروب عمل می کند و نقطه متناظر در محور دوم را به کانال دیگر DAC مقدار دهی می کند. تا این مرحله یک توضیح بصورت کلی داده شد، اما بیان جزئیات بیشتر مستلزم تسلط شما به برنامه نویسی اسمبلی است تا بصورت جزئی تر درباره عملکرد برنامه توضیح داده شود.
      اوژن: به معنای افکننده و شکست دهنده است
      دانایی، توانایی است-Knowledge is POWER
      برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
      وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
      قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
      اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
      ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

      دیدگاه


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

        نسخه تغییر داده شده همین پروژه برای mega8 در این پست ضمیمه می شود. برای انجام عملیات DAC از TLC7528 استفاده شده که نحوه اتصال آن به mega8 در ابتدای فایل asm بصورت کامنت قرار داده شده است. جالب این است که در جایی که برنامه C برای XMEGA با کلاک 32 مگاهرتز از نظر سرعت جوابگو نبود، برنامه اسمبلی برای mega8 با کلاک 16 مگاهرتز به خوبی جواب می دهد و این مثال بارزی از همان کاربردهای Time critical است که زبان اسمبلی حرف اول و آخر را در آن می زند. دوستانی که در تاپیک های دیگر گاهی سوال می کنند که آن چه کاربردی است که نتوان آن را مثلا با بسکام انجام داد، به امثال همین کاربرد توجه کنند و سعی کنند آن را با بسکام انجام دهند تا ببینند که ابزارهایی مانند بسکام در چنین سرعت هایی عملا بدون خاصیت و غیرقابل استفاده است. ضمنا این دو پروژه در سایت AVRFreaks هم قرار داده شده است.
        فایل های پیوست شده
        اوژن: به معنای افکننده و شکست دهنده است
        دانایی، توانایی است-Knowledge is POWER
        برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
        وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
        قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
        اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
        ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

        دیدگاه


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

          با سلام به جناب طراح و تشکر برای مطالب مفیدشون در مورد سرعت اجرای دستورات باید بگم من خودم این مطلب را حس کردم من 1 سال پیش میخواستم در یک پروژه که با بیسکام انجام داده بودم میخواستم دوتا پالس pwm با تایمرها با فرکانس 1k-25k وپهنای پالس 10-90 درصد با اختلاف فاز 180 درجه بسازم اما با استفاده از وقفه نتونستم این کار را انجام بدم چون وقتی تو وقفه میرفت خیلی زمان میگرفت اگر از دستور nosave بعد از وقفه استفاده میکردیم میشد اما چون رجیسترها ذخیره نمیشد همه چیز به هم میریخت البته هر کی بخواد ببینه چقدر این وقفه ها در بیسکام و کدویژن زمان میگیره میتونه یه پالس با کمترین زمان با وقفه روی یه پایه ایجاد کنه یعنی یک پین را فقط صفر و یک کنه ممنون از همه دوستان

          دیدگاه

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