قه زات له هه ردوک چاوم کا صادق گیان.
من که اویزون آمهدی هستم(فقط بلدم سوال بپرسم).
راستی شما رو این پروژه کار میکردید.بکجا رسیدید؟
قه زات له هه ردوک چاوم کا صادق گیان.
من که اویزون آمهدی هستم(فقط بلدم سوال بپرسم).
راستی شما رو این پروژه کار میکردید.بکجا رسیدید؟
مهندس تو دیتاشیت و شماتیکتون گفته این پین برای چیه
این پین برای ورودیه av سلکت میکنن مهندس شما تمام تستاتون رو با پایه های 4 و 8 و 12 انجام بدید برای دوتا پایه 8 و 12 باید یه جوری وصلش کنی به اخرین خازن ورودیه avbs ولی مطمعنن روی پایه 4 باید جواب بگیری منم درگیر این برد lpc1788 هستم pcb این برد t107 رو هم دادم بزنن تا 5 شنبه دستم میرسه انشا الله این شماتیک lpc تموم شد منم شروع میکنم یکم این t107 رو جلو ببریم چون تو این تاپیک برد کوبی برد همه درگیر اینن به چه تبدیلی این برد رو به ال سی دی های داخل فروشگاه وصل کنن ساده ترین حالتش استفاده از همین t107 هستش که ورودیه vga داره ولی راه انداختنش کار حضرت فیله البته این بورد کوبی برد ورودیه av هم د اره که با همین t107 هم میشه راش انداخت در کل راه انداختن این av باهاش خیلی سریع انجام میشه منم تا فردا این شماتیک lpc رو ردیفش میکنم تا اقای زارعی کاراشو انجام بده یه یه هفته ایو ازادم تا روش کار کنیم البته اقا صادق اگه شما هم این برد مارو تهیه میکردید خالی از لطف نبود با هم کار کنیم ما خیلی مخلصیم اقا صادق
_____________________________________
_____________________________________
سلام اقا صادق همین اخریه هم برای 4.3 و هم برای 7 اینچشو برات میل میکنم اگه دوست داشتید و وقت یاریتون میکنه با ما همراه باشید خوشحال میشیم مهندس
با سلام
دوربین و وصل کردم به برده هیچی نشون نداد.
دارم رو ریجیستر های adcوتایمینگا کار میکنم فک کنم مشکل از اونجا باشه.
برنامرو چیکار کردید که چیزی نشون نداد شما باید بیاید اون بفر my_value رو تو یه حلقه بندازی و تمام رجیسترارو با اون مقدارا پر کنید این بدبخت t107 از کجا بدونه شما چیکار میخوای باهاش بکنی شما باید 3 تا حلقه برای 3 تا پیج بنویسی و هر پیج رو با مقدارای مای ولو پر کنید البته باید رجیسترای تایمینگ ال سی دی و سیگنال av ورودیتون رو هم ست کنید برای سیگنال ورودی شما به چیزی دست نزنید برای ال سی دی تون باید تایمینگهارو ست کنید اگه بافر مای ولو رو ببینید متوجه میشید که تایمینگها برای ال سی دی 9 اینچ ست شده مثلا رزولوشن رو 800 در 480 ست کرده شما فقط رو بافر مای ولو و دیتاشیت کار کن
آمهدی از این کد ها استفاده کردم.
[PHP]printf_me("--------[Page 0]-------- \r\n",29,0);
Page_SEL(0x00);
for(count=0 ; count < 218 ; count++){
v_page_0_tmp[count] = I2C_Read_BYTE(T107BL_Serial_Bus_Reg_Set_Page_0[count]);
printf_me("data: %x ",9,v_page_0_tmp[count]);
delay_ms(20);
printf_me("Default Value: %x ",18, T107BL_Serial_Bus_Reg_Set_My_Value_Page_0[count]);
delay_ms(20);
printf_me("Register Address: %x \r\n",25,T107BL_Serial_Bus_Reg_Set_Page_0[count]);
delay_ms(20);
}
printf_me("--------[Page 1]-------- \r\n",29,0);
Page_SEL(0x01);
for(count=0 ; count < 142 ; count++){
v_page_1_tmp[count] = I2C_Read_BYTE(T107BL_Serial_Bus_Reg_Set_Page_1[count]);
printf_me("data: %x ",9,v_page_1_tmp[count]);
delay_ms(20);
printf_me("Default Value: %x ",18, T107BL_Serial_Bus_Reg_Set_My_Value_Page_1[count]);
delay_ms(20);
printf_me("Register Address: %x \r\n",25,T107BL_Serial_Bus_Reg_Set_Page_1[count]);
delay_ms(20);
}
printf_me("--------[Page 2]-------- \r\n",29,0);
Page_SEL(0x02);
for(count=0 ; count < 49 ; count++){
v_page_2_tmp[count] = I2C_Read_BYTE(T107BL_Serial_Bus_Reg_Set_Page_2[count]);
printf_me("data: %x ",9,v_page_2_tmp[count]);
delay_ms(20);
printf_me("Default Value: %x ",18, T107BL_Serial_Bus_Reg_Set_My_Value_Page_2[count]);
delay_ms(20);
printf_me("Register Address: %x \r\n",25,T107BL_Serial_Bus_Reg_Set_Page_2[count]);
delay_ms(20);
}
[/PHP]
آمهدی یکسری از ریجیستر ها باید برای نوع سیگنال ورودی تعیین بشن
مثله دوتا ریجیستر زیر
ویرایش توسط vurya1 : 24-01-2013 در ساعت 23:50
مهندس تو این کدی که نوشتی اومدی رجیسترارو رید کردی باید برنامرو برای رایت کردن روی t107 تغییر بدی روش همین روشه مهندس
در مورد رجیسترایی که عکسشو گزاشتید هم بله باید ست بشن برید تو این بافر مای ولو ببینید چه مقداری گزاشته و برای چی این مقدارو گزاشته منم متاسفانه امروز رفتم جمهوری این الفا مدار بردو نزده بود این دوروزه هم دستمون تو حناست
آمهدی متوجه نشدم منظورتون این دستوره()I2C_Read_BYTE
میشه یه راهنمایی کوچلو بفرمایید
البته کد ها رو شما و آصادق نوشتید.
سلام
مهندس این دستوری که شما نوشتین برای خوندن دیتا از آدرس مورد نظره.
برای نوشتن دیتا تو آدرس مورد نظرمون باید از دستور زیر استفاده کنید:
پارامتر ADDR_ آدرسی هستش که میخوایم دیتامونو(پارامتر Data_) اونجا بنویسیم و به قولی تنظیمات رو انجام بدیم.کد:I2C_write_BYTE(unsigned char _ADDR,unsigned char _Data)
ویرایش توسط sadmonew : 25-01-2013 در ساعت 01:30
_____________________________________
_____________________________________
یعنی برای این برنامه بصورت زیر باید نوشته بشه
I2C_write_BYTE(T107BL_Serial_Bus_Reg_Set_Page_0[count],T107BL_Serial_Bus_Reg_Set_My_Value_Page_0[count])
درسته؟
بله مهندس درسته باید روی رجیسترا بنویسید تا عمل کنه اون برنامه ای که اول داده بودم یادتونه روی رجیسترای t107 مینوشتم اونم پایه gpio رو تغییر وضعیت میداد برای pwm با تی 107 هم همینطور
این بار از این کدها استفاده کردم ولی میکرو به حلقه while نرسید.
یعنی تو حلقه های ادرس دهی به ریجیستر تی107موند.
بنظر شما اشکال از کجایه برنامه ست؟
[PHP]printf_me("--------[Page 0]-------- \r\n",29,0);
Page_SEL(0x00);
for(count=0 ; count < 218 ; count++){
I2C_write_BYTE(T107BL_Serial_Bus_Reg_Set_Page_0[count],T107BL_Serial_Bus_Reg_Set_My_Value_Page_0[count]);
printf_me("data: %x ",9,v_page_0_tmp[count]);
delay_ms(20);
printf_me("Default Value: %x ",18, T107BL_Serial_Bus_Reg_Set_My_Value_Page_0[count]);
delay_ms(20);
printf_me("Register Address: %x \r\n",25,T107BL_Serial_Bus_Reg_Set_Page_0[count]);
delay_ms(20);
}
printf_me("--------[Page 1]-------- \r\n",29,0);
Page_SEL(0x01);
for(count=0 ; count < 142 ; count++){
I2C_write_BYTE(T107BL_Serial_Bus_Reg_Set_Page_1[count],T107BL_Serial_Bus_Reg_Set_My_Value_Page_1[count]);
printf_me("data: %x ",9,v_page_1_tmp[count]);
delay_ms(20);
printf_me("Default Value: %x ",18, T107BL_Serial_Bus_Reg_Set_My_Value_Page_1[count]);
delay_ms(20);
printf_me("Register Address: %x \r\n",25,T107BL_Serial_Bus_Reg_Set_Page_1[count]);
delay_ms(20);
}
printf_me("--------[Page 2]-------- \r\n",29,0);
Page_SEL(0x02);
for(count=0 ; count < 49 ; count++){
I2C_write_BYTE(T107BL_Serial_Bus_Reg_Set_Page_2[count],T107BL_Serial_Bus_Reg_Set_My_Value_Page_2[count]);
printf_me("data: %x ",9,v_page_2_tmp[count]);
delay_ms(20);
printf_me("Default Value: %x ",18, T107BL_Serial_Bus_Reg_Set_My_Value_Page_2[count]);
delay_ms(20);
printf_me("Register Address: %x \r\n",25,T107BL_Serial_Bus_Reg_Set_Page_2[count]);
delay_ms(20);
}
[/PHP]
مهندس طبق نکته خیلی مهمی که اقا صادق زحمت کشفشو کشیدن تا تابع
[PHP]PWR_Man_CTRL();[/PHP]
رو اجرا نکنید هیچ کدوم از io هاتون فعال نمیشه در مورد همه پایه ها منظورمه پس حتما این تابع رو بیار تو برنامتون این اولین قدمه در مرحله بعد بیاید از این توابعی که گزاشتم استفاده کنید چون من برد رو ندارم نمیتونم الان تستش کنم از دوستان اگه کسی ایرادی توش میبینه متذکر بشه تا کار این اقای یونسی راه بیافته
در مورد توابع حلقه بهتره اون توابع مربوط به پورت سریال رو حزف کنید چون بدردتون نمیخوره عملا چیزی که نوشتید درسته ولی ایا مقادیر تایمینگ رو ست کردید ایا پایه disp ال سی دیو یک کردید ؟؟
ممنون آمهدی بله از این تابع
[PHP]
PWR_Man_CTRL();[/PHP]
استفاده شده.پایه dispهم یک کردم.
منتها تایمینگا(نه هنوز).
از کد های زیر استفاده کردم تا معلوم بشه روند مقدار دهی به ریجیستر ها چه جوری انجام میگیره
[PHP]
//printf_me("--------[Page 0]-------- \r\n",29,0);
Page_SEL(0x00);
for(count=0 ; count < 218 ; count++){
I2C_write_BYTE(T107BL_Serial_Bus_Reg_Set_Page_0[count],T107BL_Serial_Bus_Reg_Set_My_Value_Page_0[count]);
sprintf(count_d,"Count(0)= %X ",count);
set_cursor(2,1);
lcd_putsf(count_d);
delay_ms(50);
}
//printf_me("--------[Page 1]-------- \r\n",29,0);
Page_SEL(0x01);
for(count=0 ; count < 142 ; count++){
I2C_write_BYTE(T107BL_Serial_Bus_Reg_Set_Page_1[count],T107BL_Serial_Bus_Reg_Set_My_Value_Page_1[count]);
sprintf(count_d,"Count(1)= %X ",count);
set_cursor(2,1);
lcd_putsf(count_d);
delay_ms(50);
}
//printf_me("--------[Page 2]-------- \r\n",29,0);
Page_SEL(0x02);
for(count=0 ; count < 49 ; count++){
I2C_write_BYTE(T107BL_Serial_Bus_Reg_Set_Page_2[count],T107BL_Serial_Bus_Reg_Set_My_Value_Page_2[count]);
sprintf(count_d,"Count(2)= %X ",count);
set_cursor(2,1);
lcd_putsf(count_d);
delay_ms(50);
}
[/PHP]که معلوم شد تو ریجیستر d1(که 209مین ریجیستر پیج 0هستش)متوقف میشه.
نمی دونم چرا؟؟؟؟؟؟؟
ویرایش توسط vurya1 : 25-01-2013 در ساعت 20:48
پطور متوجه شدی متوقف شده مهندس ؟
معمولا زمانی متوقف میشه که t107 بیت تصدیق رو نده یا به هر ترتیبی پروتکل i2c اجرا نشه
مهندس شایذ t107 اسیب دیده باشه چکش کردید یا میکرو البته اگه ال سی دی کارکتریوم وصل نکید برنامه تا زمانیکه وصلش نکنید متوقف میمونه اینم چک کنید در ضمن این تی 107 که داغ نمیکنه ؟؟ یا نیستش؟