اطلاعیه

Collapse
No announcement yet.

حرکت متن در تابلو روان با MMC

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

    حرکت متن در تابلو روان با MMC

    سلام دوستان .
    کسی میتونه بگه که برا حرکت متن در تابلو روان با رم MMC باید چکار کرد.
    یهنی بایستی نوشته رو هم مثل عکس یا انیمیشن، فریم به فریم نمایش بدیم .
    یا اینکه روش خاصی وجود داره .
    آخه اگه بخوایم مثل انیمیشن نشونش بدیم کلی درده سر ساخت فریم داره .
    در ضمن برا این که متن یا عکس رو تابلو چند ثانیه نشون داده بشه باید چه کنیم .
    آیا فریم اون عکس یا متنو باید چند بار پشت سر هم تو MMC کپی پیست کنیم .
    یا اینکه برا این کار هم روشی وجود داره (در برنامه)
    ممنونم
    http://www.sharjweb.com/

    #2
    پاسخ : حرکت متن در تابلو روان با MMC

    زمانی که صرف میشه تا دیتای یک فریم رو از ام ام سی بخونی و بریزی توی رم چقدر طول میکشه؟

    دیدگاه


      #3
      پاسخ : حرکت متن در تابلو روان با MMC

      نوشته اصلی توسط daryanavard
      زمانی که صرف میشه تا دیتای یک فریم رو از ام ام سی بخونی و بریزی توی رم چقدر طول میکشه؟
      سلام
      منظورتون از رم ، EEProm داخل میکرو هست؟
      ولی اگه منظورتون همون باشه باید بگم که من این کارو نمی کنم و هر فریم رو بدون اینکه تو رم ذخیره کنم ، رو پورت میکرو میریزم و اونو نشون میدم .بعد فریم بعدی رو از MMC می خونم و نشون میدم .
      آیا روال کاریم اشتباست .
      اکه اشتباست درستش چیه ؟
      ممنون از شما
      http://www.sharjweb.com/

      دیدگاه


        #4
        پاسخ : حرکت متن در تابلو روان با MMC

        منظورم از رم ایتوپرام نیست خود اسرم هست.در ضمن دیتای یک فریم رو که نمیشه به یکباره روی پورت ریخت.در یک تابلوی مثلا 16 در 64 دیتای یک فریم 128بایت میشه و به یکباره نمیتونه روی پورت قرار بگیره.البته یک بایت یک بایت رو می تونی از ام ام سی برداری و بریزی روی پورت (در روش فت).ولی بهتره اول توی اسرم از طریق آرایه ریخته بشه و بعد هرکاری می خوای می تونی روی اونا انجام بدی.اگر تابلوی شما رفرش اون ستونیه کافیه دیتاهای قرار گرفته در اسرم رو دو بایت شیفت بدی تا از آرایه خارج بشه و از طرف دیگه دوبایت را از ام ام سی گرفته و وارد اسرم بکنی.وقتی محتوای آرایه رو نشون بدی متن یک ستون حرکت کرده.
        ولی سوالات دیگه ای هم پیش میاد.شما ام ام سی رو به روش سکتوری می خونی یا فت؟ اگر سکتوری باشه که راهی نداری جز اینکه 512 بایت رو یکجا وارد آرایه بکنی.که این زمان قابل توجهی رو صرف می کنه و سرعت رفرشت رو میاره پایین و لرزش تو نور تابلو به وجود میاد.اگه هم فت باشه که دیگه بدتر

        دیدگاه


          #5
          پاسخ : حرکت متن در تابلو روان با MMC

          سلام دوست عزیز ممنون از اینکه پاسخ دادید.
          از راهنمایی خوبتون تشکر می کنم .
          تابلوی من 24 در 112 هست و من دارم از رفرش ستونی استفاده میکنم .
          روال کاری من اینجوری که ابتدا دیتا رو از MMC میخونم و تو یه آرایه 336 تایی از نوع ورد (یعنی دقیقا دیتای یک بار نمایش کامل صفحه) میریزم .
          ابتدا دیتای سه سطر اول رو ، رو لچ ها میریزم و بعد هر سه سطر رو یجا اسکن میکنم . و این روال رو تا هشت بار تکرار میکنم تا یه فریم نمایش داده بشه .
          1 حالا برای شیفت دادن نوشته رو تابلو به سمت چپ یا راست باید چکار کنم؟
          2 چطور میشه دیتای قرار کرفته روsram رو شیفت داد؟
          3 در روش اسکن سطری آیا میشه نوشته رو به بالا یا پایین حرکت داد . (البته در تابلوی با بیشتر از 16سطر )
          روش من فت هست .
          http://www.sharjweb.com/

          دیدگاه


            #6
            پاسخ : حرکت متن در تابلو روان با MMC

            چندان متوجه روشتون نشدم.چطور میشه دیتای سه سطر رو همزمان تو لچها قرار داد! . این روش فقط زمانی ممکنه که تابلو را به چند قسمت(سگمنت) تقسیم کرده باشیم و برای هر قسمت لچهایی گذاشته باشیم.وگرنه بخوای دیتای یک سطر رو تو لچ بریزی تا نمایشش نداده باشی نمی تونی دیتای سطر بعدی رو توش بریزی چون دیتای اول بدون نمایش یافتن از بین می رود.همچنین از توضیحاتتون حدس می زنم تابلوی شما از رفرش سطری استفاده می کند و نه ستونی.چون در رفرش ستونی دیتای مربوط به ستون در لچها قرار داده شده و بعد ستون مربوطه روشن می شود و کاری با سطر نداریم در حالی که شما نوشتید سطرها را اسکن می کنید و از طرفی نوشتید تابلوی شما از رفرش ستونی استفاده می کند!
            به هر حال در روش اسکن ستونی حرکت متن به جلو بسیار آسان است.در تابلوی شما که عرض آن 24 است باید 3 بایت ، 3بایت محتوای آرایه حرکت کند.فرض کنید 3 بایت محتوای آرایه را شیفت دادید.سه بایت از آرایه خارج می شود و در انتهای آرایه 3 بایت خالی می شود.حالا سه بایت بعدی را از ام ام سی یا هر جایی که کدهای متن شما در آن قرار دارد بر می داریم و در 3 خانه انتهایی آرایه که به خاطر شیفت خوردن خالی شده اند می نویسیم.حالا اگر محتوای آرایه روی تابلو نمایش یابد دیده می شود که متن یک ستون به جلو رفته است.برای شیفت دادن به صورت 3 بایت نیز کافیست یک بایت را برداریم و در سه آدرس جلوتر بنویسیم و برای کل آرایه همین کار را انجام دهیم.وقتی همه را جابجا کردیم می بینیم که آرایه 3 بایت شیفت داده شده است. برای نوشتن کدهای جابجایی بستگی دارد از چه زبان برنامه نویسی استفاده می کنید مثلا برای اسمبلی:
            ابتدا
            LDI R31,$01
            LDI R30,$f3
            آدرس یک بایت فرضی در اسرم در رجیستراشاره گر قرار می گیرد.سپس
            LD R18,-Z
            sbiw r30,$02
            st z,r18
            با دستور اول محتوای خانه ای(همان کد متن) که آدرس آن در اشاره گر قرار دارد در رجیستر18 قرار می گیرد.وبا دستور دوم آدرس اشاره گر تغییر می کند یعنی از آن کاسته می شود.سپس با دستور سوم دوباره همان محتوا(کد متن) از رجیستر آر18 ، برداشته شده و در آدرس جدید محاسبه شده که در اشاره گر قرار دارد نوشته می شود.بدین ترتیب یک بایت از خانه ای برداشته شده و در جای دیگری نوشته می شود.و با تکرار این روند می توان کل آرایه را جابجا کرد.

            دیدگاه


              #7
              پاسخ : حرکت متن در تابلو روان با MMC

              داش daryanavard ممنون از توجهتون .
              اما اسکن من سطری هست نه ستونی .
              فقط من در مورد اسکن ستونی که شما فرموده بودید یه سوال کردم .
              منظور من این بود که دیتا رو به 42 تا لچ میدم و LE هر لچ رو به ترتیب فعال میکنم .
              حالا بگذریم . شما دریانورد جان میشه بگید در اسکن سطری (سطریها ) چطور میتونم متن رو به چپ و راست حرکت بدم ؟
              آخه نرم افزار من دیتا رو سصری تولید میکنه .


              http://www.sharjweb.com/

              دیدگاه


                #8
                پاسخ : حرکت متن در تابلو روان با MMC

                محسن جون ، من تا حالا تابلویی که از رفرش سطری استفاده بکنه عملا نبستم.و فقط از رفرش ستونی استفاده می کنم . ولی روش شما بهتره چون تابلویی که از رفرش سطری استفاده می کنه نور بهتری داره.مخصوصا تابلوی شما که اونو به سه قسمت تقسیم کرده ای و 42 تا لچ بستی یعنی سه ردیف 14 تایی !
                ولی کار نشد نداره فقط حرکت متن به جلو و عقب در رفرش سطری به همون اندازه مشکله که حرکت به بالا و پایین در رفرش ستونی.
                به راحتی میشه حدس زد که اگه بایتها رو با دستورات لازم شیفت بدی میشه.کدهای تولید شده برای سه سطر مثلا اینجوریه دیگه:
                Msb….lsb msb….lsb msb…..lsb msb ….lsb
                Msb….lsb msb….lsb msb…..lsb msb ….lsb
                Msb….lsb msb….lsb msb…..lsb msb ….lsb
                خوب حالا اگه بایتها را یکی یکی برداریم و شیفت بدیم به طوری که ال اس بی یک بایت جای ام اس بی بایت بعدی قرار بگیره و برای همه بایتها این کار انجام بگیره وقتی محتوای آرایه نمایش داده بشه متن یک ستون حرکت کرده.
                ولی اینکار برای یک آرایه 336 بایتی خیلی زمان می بره و احتمالا نمیشه با بسکام انجامش داد.چون خیلی طول میکشه. ولی اگه زحمتشو با اسمبلی بکشی حتما میشه . یادت باشه نرم افزار فقط برای یک باره اگه بنویسیش همیشه ازش استفاده می کنی.
                تو اسمبلی دستوررات
                Lsl –lsr-rol-ror
                رو بررسی کن .
                مثلا دستور ال اس ال تمام بیتهای یک رجیستر رو یک بیت به چپ شیفت می ده. خوب بیت خارج شده کجا می ره؟ تو پرچم سی . بنابراین ما می تونیم با دستور رور اون بیت خارج شده از بایت قبلی رو از پرچم سی برداشته و وارد بایت دیگه ای بکنیم و اگه اینکار رو ادامه بدیم می تونیم بیتها رو در طول بایتهای یک سطر به حرکت دربیاریم که اینکار یعنی حرکت متن به جلو.
                تو عمل نوشتن برنامه با اسمبلی خیلی مشکلتر از این حرفاست ولی نشدنی نیست.روشش هم به نظر من استفاده از همین دستورهاست.بررسی کن ببین به چه نتیجه ای می رسی.

                دیدگاه


                  #9
                  پاسخ : حرکت متن در تابلو روان با MMC

                  فدایت ممنونم ازتون دریانورد جان .
                  من اسمبلیم کمی ضعیفه آخه بیشتر با بیسیک کار کردم .
                  از این که جوابمو دادی ممنونم .میرم با اون دستورایی که کفتین کمی ور برم . تو بیسکام هم میشه اسمبلی بکار برد.
                  http://www.sharjweb.com/

                  دیدگاه

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