سلام من می خوام با avrروی تلویزیون متن بنویسم اما چگونه؟
اطلاعیه
Collapse
No announcement yet.
متن روی tvبا avr
Collapse
X
-
پاسخ : متن روی tvبا avr
کلیات کار اینه که سیگنال آنالوگ متناسب تصویر را توسط PWM میسازه
حالا اینکه چطوری و چگونه باید توی همون سایت قسمت توضیحاتش را بخونی
نمونه برنامه را از لینک زیر دانلود کنید
http://avga.prometheus4.com/download.php?get=release/AVGA_release_022.zipامام علی (علیه السلام) : الزکات العلم نشرهُ/ زکات علم نشر آن است
دیدگاه
-
پاسخ : متن روی tvبا avr
نوشته اصلی توسط بنیامین خلیلیایا ربطی به کاراکتر اسکی داره
کد اسکی (Ascii) چیست؟
به ازاء هر کرکتر لاتین و کرکتر های علامت (مثل علامت سوال یا کاما) یک بایت در نظر گرفته شده که به اون کدهای اسکی میگویند :arrow:
حالا کجا اونها را استفاده کنی دست خودته
ولی معقوله TV یک چیز دیگه ای هست
امام علی (علیه السلام) : الزکات العلم نشرهُ/ زکات علم نشر آن است
دیدگاه
-
پاسخ : متن روی tvبا avr
سلام دوست عزیز
توی این دو تا کتاب از صفر تا صد رو توضیح داده (توی هر دو کامل توضیح داده)
اولی
Programming_16_Bit_PIC_Microcontrollers_in_C
دومی
Programming_32_bit_Microcontrollers_in_C_Exploring _the_PIC32
موفق باشید
:bye
دیدگاه
-
پاسخ : متن روی tvبا avr
نوشته اصلی توسط Abbas Saramiکلیات کار اینه که سیگنال آنالوگ متناسب تصویر را توسط PWM میسازه
حالا اینکه چطوری و چگونه باید توی همون سایت قسمت توضیحاتش را بخونی
نمونه برنامه را از لینک زیر دانلود کنید
http://avga.prometheus4.com/download.php?get=release/AVGA_release_022.zip
آخر هیچکس یه جواب درست و حسابی نداد و همه مارو پاس دادن به لینکای مختلف که جواب درستی در اونها هم داده نشده ، ینی یک نفر نیس که اینکارو انجام داده باشه؟!!!!!
من میخوام به تصویر دوربیت یه تکست اضافه کنم فقط
دیدگاه
-
پاسخ : متن روی tvبا avr
نوشته اصلی توسط ShahiMVبرای اینکه با نحوه کار کردن این برنامه آشنا بشید ابتدا باید نحوه نشون دادن تصویر روی تاویزیون رو یاد بگیرید، خوب به عنوان یه آشنایی خیلی ساده و مفید میشه نحوه کار کردن تلویزیون رو اینجوری توضیح داد:
ابتدای کار به تلویزیون میگید که سر خط هستید ( اگه روبه روی تلویزیون بایستید اونوقت گوشه بالا سمت چپ میشه سر خط اول و همینجوری که به سمت پایین بیایید به خط های دوم، سوم و ... می رسید ) خوب نحوه انجام اینکار هم اینطوریه که یک پالس همزمانی افقی(horizontal sync) آخر خط قبلی باید بفرستید تا تلویزیون از اون به بعد اطلاعات رو از اول خط بعدی نشون بده (برای اطلاع بیشتر هم باید بگم که پالس همزمانی افقی یعنی اینکه به تلویزیون 5us ولتاژ صفر بدید).
خوب حالا ممکنه براتون این سوال پیش بیاد که تلویزیون چند تا خط داره؟
تو جواب این سوال میشه گفت که این بستگی به استانداردی داره که با اون دارید اطلاعات رو به تلویزیون میفرستید، ما از استاندارد NTSC-RS170 استفاده کردیم تو این استاندارد تعداد خطها 262.5 تا هستش و طول هر خط هم 63.55us هستش، این مدت زمانیه که طول میکشه تا اشعه تلویزیون از سر خط به انتهای اون برسه و یا بعبارت دیگه مدت زمانیه که شما فرصت دارید تا اطلاعات رو بفرستید هر چه سرعت میکروتون بیشتر باشه اطلاعات بیشتری رو میتونید روی یک خط بفرستید و در نتیجه کیفیت تصویرتون هم بیشتر میشه.
خوب حالا میریم سراغ قسمت دوم کار؛ این بار میپرسید که اگه به آخر صفحه رسیدیم چی کار باید بکنیم؟ این بار باید به تلویزیون پالس همزمانی عمودی (vertical sync) رو بفرستید تا تلویزیون متوجه بشه که صفحه کاملا پر شده و اشعه رو باید دوباره به سر خط اول ببره.
خوب اینم از یه آشنایی ساده با طرز کار تلویزیون. الان دیگه همتون مهندس های تلویزیون شدید :icon_razz:
حالا میریم به سراغ برنامه اصلی؛ این برنامه از سه قسمت اصلی تشکیل شده:
1) تایمر، که وضیفه تولید پالس های همزمانی افقی و عمودی رو داره.
2) آرایه screen، که حامل تصویریکه تلویزیون باید نشون بده.
3) قسمت تبدیل آرایه بالا به اطلاعات قابل نشون دادن روی تلویزیون.
1 : همونطور که مشاهده میکنید تایمر در حالت CTC no prescaling هستش و نیز OCR1A برابر 514 هستش و این یعنی اینکه تایمر هر 64.375us پالس همزمانی افقی رو میفرسته، به علاوه اینکه وقتی شماره خط یعنی متغییر LineCount به 248 میرسه شروع میکنه به فرستادن پالس همزمانی عمودی.
2 : همونطور که مشاهده میکنید این یه آرایه 800 تاییه و ما اون رو به صورت 100 خط 8 بایتی نشون دادیم که دلیلشم قابل فهم شدن هرچه بیشتر اونه؛ همونجوری که قبلا بهتون گفتم ما یه مدت زمان محدودی برای فرستادن اطلاعات روی یک خط داریم، حالا با توجه به اینکه سرعت میکرو 8MHz هست پس تقریبا میشه روی هر خط
64 bit رو نشون داد که میشه همون 8 بایتی که قبلا گفته بودم؛
حالا بریم سراغ این مساله که چرا 100 خط ؟ باید بگم که دلیل خاصی نداشت شما میتونید طولش رو کمتر یا بیشتر کنید؛ ما فقط اطلاعات رو از خط 70 تا 169 نشون دادیم ولی شما میتونید تغییرش بدید.
3 : همونطور که دیدید آرایه screen یک بعدی است، پس برای اینکه بشه روی تلویزیون نشونش داد ما 8 تا متغییر تعریف کردیم و همونطور که میبینید برای هر چه سریع تر شدن کار برنامه اون هارو توی رجیسترها ریختیم،(اونها رو تو رجیسترهای R4 تا R11 ریختیم)
#pragma regalloc-
register char v1 @4;
register char v2 @5;
register char v3 @6;
register char v4 @7;
register char v5 @8;
register char v6 @9;
register char v7 @10;
register char v8 @11;
register int i @12;
#pragma regalloc+
این متغییرها شروع میکنند به خوندن 8 بایت، 8 بایت آرایه و هرکدوم از این 8 بایت خونده شده رو به عنوان یک خط روی تلویزیون نشون میدند.
کدی که در زیر مشاهده میکنید مسولیت خوندن اطلاعات از آرایه و ریختن آنها به رجیسترها رو داره.
#asm
push r26
push r27
ldi r26, low(_screen)
ldi r27, high(_screen)
add r26, r12
adc r27, r13
ld r4, x+
ld r5, x+
ld r6, x+
ld r7, x+
ld r8, x+
ld r9, x+
ld r10, x+
ld r11, x
pop r27
pop r26
#endasm
قسمت بعدی کد که صرفا یک ماکرو به زبان اسمبلی هستش، کارش اینه که شما یک بایت بهش میدید و اون هم اون رو بصورت بیت به بیت روی پورت PD.6 که پایه مربوط به فرستادن اطلاعات هستش قرار میده.
.macro videobits
push r31
bst @0, 7
in r31, 0x12
bld r31, 6
nop
out 0x12, r31
bst @0, 6
in r31, 0x12
bld r31, 6
nop
out 0x12, r31
bst @0, 5
in r31, 0x12
bld r31, 6
nop
out 0x12, r31
bst @0, 4
in r31, 0x12
bld r31, 6
nop
out 0x12, r31
bst @0, 3
in r31, 0x12
bld r31, 6
nop
out 0x12, r31
bst @0, 2
in r31, 0x12
bld r31, 6
nop
out 0x12, r31
bst @0, 1
in r31, 0x12
bld r31, 6
nop
out 0x12, r31
bst @0, 0
in r31, 0x12
bld r31, 6
nop
out 0x12, r31
pop r31
.endm
و در آخر هم که یک کد 6 خطی میبینید که تنها مسولیتش اینه که پایه اطلاعات رو صفر نگه داره که اگر یه وقت زمان بندیتون خوب نبود تلویزیون انتهای هر خط چیزی نشون نده.
امیدوارم توضیحاتم تونسته باشه کمکتون کنه، بازم اگه سوالی داشتید در خدمت هستم.
راستی توی این ماه ماروهم از دعاهاتون بی نصیب نگذارید.سقراط : دانش من بدانجایی رسید که فهمیدم هیچ نمیدانم.
دیدگاه
-
پاسخ : متن روی tvبا avr
نوشته اصلی توسط ShahiMVبرای تولید سیگنال NTSC به سه نوع ولتاژ نیاز داریم(درحالت ساده) 0 ولت برای سیگنال های سنکرون . 0.3 ولت براس رنگ سیاه و 1 ولت برای رنگ سفید
ولی میکرو فقط ولتاژ 5 تولید میکند پس باید با مقاومت ها تقسیم ولتاژ کنیم یا به اصطلاح یک DAC درست کنیم
وقتی که دو مقاومت 300 و 1k به گراند وصل اند ولتاژ ما نیز 0 است و برای سیگنال سنکرون است
وقتی مقاومت 1k به Vcc وصل باشد ولتاژ 0.3 ولت تولید میشه و رنگ سیاه رو داریم
وقتی مقاومت 300 به Vcc وصله ولتاژ 0.86 را داریم و رنگ سفید است
راستی برای مقاومت 75 اهم از دو تا مقاومت 150 که تو بازار پیدا میشه استفاده کردمسقراط : دانش من بدانجایی رسید که فهمیدم هیچ نمیدانم.
دیدگاه
دیدگاه