Google Translate
جهت دريافت رايگان تازه هاي سايت شماره مويايل خود را به همراه نام و نام خانوادگي به شماره 99009123812060 ارسال كنيد.
· موتور همو پلار در 10 ثانيه | [ 5 نظر - 15322 مشاهده ] |
· نصب برنامه در Slax | [ 9 نظر - 11677 مشاهده ] |
· ورود به محيط Slax | [ 16 نظر - 12113 مشاهده ] |
· خواندن فایلهای MMC و SD با فرمت FAT16 , FAT32 | [ 33 نظر - 25947 مشاهده ] |
· رله کنترل فاز Three Phase Monitor | [ 35 نظر - 30039 مشاهده ] |
تابلوروان: ایجاد حرکت در تابلو روان - حرکت به بالادر این مقاله با نحوه ایجاد یکی دیگر از مهم ترین افکتهای موجود بر روی تابلو روان آشنا خواهیم شد. افکت حرکت به سمت پایین در تابلو روان با جاروب ستونی. من در این برنامه سعی کردم با ایجاد تصویر یک فلش در جدول گلایف و نوشتن کدهای برنامه، این فلش را به سمت بالا حرکت دهم. پس شما هم با ما همراه باشید تا با یکی دیگر از افکتهای زیبا و پر کاربرد در تابلو روان آشنا كردیم.
ما اگر در نمایش اطلاعات جدول گلایف هر بار به اندازه یک بیت این اطلاعات را به سمت راست شیفت دهیم و سپس به نمایش آن بپردازیم خواهیم دید که متن و یا تصویر به نمایش در آمده در هر بار اجرای دستور شیفت به اندازه یک سطر به سمت بالا حرکت خواهد نمود. به برنامه زیر دقت کنید. '********************************************* همانطور که مشاهده میکنید بعد از خواندن اطلاعات جدول گلایف و قرار گرفتن آن بر روی پورت B اطلاعات موجود در این پورت توسط دستور [Shift Portb , Right , S] به اندازه S بیت به سمت راست شیفت داده میشود که مقدار متغییر S در هر 10 بار جاروب کامل ماتریس به اندازه یک واحد افزایش مییابد. به نظر میرسد که برنامه کامل شده و میتوانیم با خیال راحت آن را تست کنیم ، ولی پس از اجرای برنامه شاهد صحنه زیر خواهیم بود.
بله همانطور که دیدید ما توانستیم تصویر موجود در جدول گلایف(فلش رو به بالا) را به سمت بالا حرکت دهیم ولی بدنبال این فلش یک مستطیل هم حرکت میکرد که ما انتظار آنرا نداشتیم. اگر یکبار دیگر به برنامه دقت کنید و بخصوص به دستور شیفت به راست متوجه مشکل خواهیم شد. در دستور شیفت، به هر تعداد که بیت های یک متغییر به سمت راست شیفت داده میشوند جای خالی آنها را در سمت چپ صفر پر میکند. و از آنجایی که ما در این تابلو روان کاتد LED ها را به سطر ها متصل کردیم و سطر ها هم توسط پورت B کنترل میشود. لذا با صفر شدن هریک از پین های پورت B سطر مربوطه فعال میشود و LED های آن سطر روشن میگردند. حالا که ایراد کار را پیدا کردیم باید این مشکل را برطرف نماییم. راه های مختلفی برای این کار وجود دارد که من از یک متغییر دیگر در برنامه کمک گرفتم. این متغییر Mask است که نام آن بی ارتباط با نقشش در برنامه نیست. من در ابتدای حلقه For-Next مربوط به متغییر S ابتدا تمامی بیت های متغییر Mask را یک کردم. سپس توسط یک دستور شیفت به چپ به میزانی بیت های این متغییر را به سمت چپ شیفت دادم که در نهایت به تعدادی در سمت چپ متغییر یک بماند که در دستور شیفت به راست مربوط به پورت B در این پورت صفر به سمت چپ وارد شده. '*********************************************
بعنوان مثال فرض کنید که متغییر S مقدارش برابر با 3 باشد در نتیجه مقدار متغییر A برابر با 5 خواهد بود ودر نتیجه متغییر Mask به اندازه 5 بیت به سمت چپ شیفت پیدا میکند و مقدار آن برابر با 11100000خواهد بود. از طرفی پورت B هم در هر بار اجرای حلقه در این حالت به اندازه 3 بیت به سمت راست شیفت پیدا میکند و مقدار آن بصورت 000xxxxx در خواهد آمد. حال اگر این دو متغییر با هم Or شوند سه بیت سمت چپ پورت B یک خواهند شد و بصورت 111xxxxx در خواهند آمد بدین ترتیب مشکل صفر بودن بیت های سمت چپ پورت بر طرف میشود. البته به این عمل که ما با استفاده از عملگر های منطقی بیت های خاصی از یک متغییر را تغییر میدهیم اصطلاحاً ماسک کردن میگویند. و دلیل اتخاب نام Mask نیز برای این متغییر هم همین موضوع است. مجدداً بر نامه را بر روی مدار تابلو روان تست میزنیم که نتیجه آن در فیلم زیر قابل مشاهده است.
ظاهراً هیچ مشکلی نمانده، فقط یک ایراد کوچک بر کار وارد است آنهم این است که فلش به آرامی به سمت بالا حرکت میکند ولی بصورت ناگهانی بر روی تابلو ظاهر میشود. که بهتر بود که در ابتدا به آرامی از پایین وارد تابلو شود و سپس در همان جهت بالا از تابلو خارج شود.
'********************************************* با اجرای کدهای بالا مشکل ظاهر شدن ناگهانی فلش بر روی تابلو برطرف شده است، که با اضافه کردن بخش انتهایی به برنامه این مسئله حل شده است. توضیح این بخش را بر عهده شما خواننده هوشمند سایت !. در زیر فیلم تابلو روان پس از اجرای برنامه فوق مشاهده میکنید.
کلمات کليدي : ارسال شده در مورخه : سه شنبه، 9 مهر ماه ، 1387 توسط admin
مرتبط با موضوع : مثال تابلو 16 در 128 با مبدل آنلاین [پنجشنبه، 11 شهريور ماه ، 1389]تابلو روان و اندازه گیری دما با SMT160 [چهارشنبه، 3 شهريور ماه ، 1389] انیمیشن در تابلوروان توسط 74HC595 [پنجشنبه، 7 مرداد ماه ، 1389] تابلوروان با میکرو 8051 [سه شنبه، 5 مرداد ماه ، 1389] نرم افزار آنلاین تبدیل متن به کد هگز [چهارشنبه، 17 تير ماه ، 1388] ایجاد حرکت در تابلو روان - حرکت به راست [سه شنبه، 9 مهر ماه ، 1387] ایجاد حرکت در تابلو روان - حرکت به چپ [سه شنبه، 9 مهر ماه ، 1387] انیمیشن در تابلو روان [دوشنبه، 4 شهريور ماه ، 1387] جاروب ستوني [يكشنبه، 3 شهريور ماه ، 1387] برنامه نویسی اولین تابلوروان [يكشنبه، 3 شهريور ماه ، 1387]
[ ارسال جوابیه ]
[ ارسال جوابیه ]
[ ارسال جوابیه ] |
امتیاز دهی به مطلب
تعداد آراء: 14 انتخاب ها
|