آقایون کسی تونسته واسه lcd3.2 ssd1289 هم درایور درست کنه.؟؟
آقایون کسی تونسته واسه lcd3.2 ssd1289 هم درایور درست کنه.؟؟
ویرایش توسط mansoory : 15-12-2013 در ساعت 16:16
فرزندم. کلا برای کنترلرهای ssd هنوز کسی درایور ننوشته. من هم این درایور و السیدی رو ندارم که بتونم براتون کاری بکنم. یه همتی کنید خودتون دست بکار بشین. نه اینکه هیچ کاری نکنید و منتظر باشید کسی اینجا پیداش بشه وبراتون این کار رو انجام بده. شما طبق مطالبی که گفته شده ابتدا درایور ساده رو خارج از EMWIN بنویس که بتونی با میکرو بهش وصل بشی. بعدش از MANUAL درایور باید فانکشن های ارسال داده و فرمان رو پیدا کنی و اونها رو توی فایلهای درایور السیدی پیداش کنی. (دستورات خواندن فرمان / داده و نوشتن فرمان/ داده) بعدش باید دستوری که مربوط به نوشتن بلوکی داده است رو پیدا کنی. معمولا در درایورهای آماده السیدی این تابع وجود نداره و باید باتوجه به MANUAL ال سی دی خودت اون رو بنویسی...
من هم اینجا هستم و کمکت خواهم کرد
من تونستم کامل بدون emwin راه اندازی کنم .ولی ظاهرا keil این مدل رو ساپورت نمی کنه! این مدل جزو Compile time configurable هستش.اخه تو هیچ کدوم از مثالهی خود کیل هم این مدل ال سی دی یا درایور استفاده نشده!! من حتی تاچش رو هم کامل راه انداختم البته با کمک ایسی درایور.من حاضرم را کمک دوستان این ال سی دی رو هم راه بندازم و در اختیار همه قرار بدم.مطالب تاپیک خیلی بهم ریخته هستش و جامع نیست.من فایلای پروژه تست ال سی دی و تاچ و مموری کارت رو در اختیار دوستان میگذارم امیدوارم بتونیم به کمک هم مشکل رو حلش کنیم.من ال سی دی n96 هم دارم.یکی از دوستان تو تاپیک ظاهرا راه انداخته.اقای منصوری اگه بتونین فایلای اونم در اختیارم بذارین ممنون می شم.ضمنا از اینکه می بینم یکی هم رشته خودم مدیر تاپیک افتخار می کنم اقای منصوری!
ویرایش توسط ghorban_piriz : 15-12-2013 در ساعت 16:53
emwin دو جور فروخته میشه, precompiled و source.
چیزی که در اختیار ماهست چه در کیل و چه در سایتهای دیگه نسخه precompile است. یعنی فقط یک کتابخونه کامپایل شده در اختیارمون قرار گرفته. در این نسخه نحوه معرفی السیدی با حالت source فرق میکنه و باید توابعی که خدمتتون گفتم رو در portapi به emwin معرفی کنید.
مهندس جان شرمنده که دیر جواب دادم.
فایل شما رو دیدم. تقریبا ردیفه
توابع زیر برای انتقال فرمان و داده بصورت تکی هست فقط می مونه ارسال بلوکی داده . اگر تونستید از دیتاشیت ال سی دی اون رو پیدا کنید که فبها وگر نه مجبوریم یه تابع بنویسیم با یه حلقه for که داده رو تک تک بفرسته که البته سرعت خیلی کم میشه. فایل lcdconf.c رو ملاحظه بفرمایین.
دو تابع زیر رو بافرض اینکه در دیتا شیت تابعی برای ارسال بلوکی داده نیست قرار دادم:
[PHP]
void LCD_X_8080_16_WriteM01_16(U16 * pData, int NumWords)
void LCD_X_8080_16_WriteM00_16(U16 * pData, int NumWords)
[/PHP]
// فایل پیوست خطا داشت دوباره فرستادم//
این فایلی که برات فرستادم رو در EMWIN جایگزین LCDCONF.C کن و نتیجه رو بگو
اگه جواب نداد در قسمت PORTAPI بجای 16، 8 روقرار بده. (در تابع LCD_X_Config(
منظورم این قسمته:
[PHP]
PortAPI.pfWrite16_A0 = wr_cmd;
PortAPI.pfWrite16_A1 = wr_dat;
PortAPI.pfWriteM16_A1 = LCD_X_8080_16_WriteM01_16;
PortAPI.pfReadM16_A1 = LCD_X_8080_16_ReadM01_16;[/PHP]
باید تبدیل بشه به:
[PHP]
PortAPI.pfWrite8_A0 = wr_cmd;
PortAPI.pfWrite8_A1 = wr_dat;
PortAPI.pfWriteM8_A1 = LCD_X_8080_16_WriteM01_16;
PortAPI.pfReadM8_A1 = LCD_X_8080_16_ReadM01_16;
[/PHP]
اگه بازم نشد این قسمت رو تغییر بده:
[PHP]
GUIDRV_FlexColor_SetFunc(pDevice, &PortAPI, GUIDRV_FLEXCOLOR_F66708, GUIDRV_FLEXCOLOR_M16C0B16);
[/PHP]
اینجا رو دیگه باید آزمایش خطا کنی! از جدولی که در قسمت dISPLAY DRIVER دیتاشیت EMWIN هست استفاده کن.
ویرایش توسط mzarkoob : 01-04-2014 در ساعت 18:06 دلیل: ادغام
اون مثالی که آپ کردم از یک دستوری که برا ایجاد دیالوگ(ویندوز) استفاده کردم مشکل داره که در چند پست بعدی گفتم بجاش چی بزارید
برای باز شدن کیبرد ابتدا در یک ویندوز دیگر یک مولتی ادیت بزازرید و در کیس(نوتیفیکیشن) focus (این کیس ها رو کلا در منوال در یک جدول گفته که تو همون جدول کیس paint , pre pant و....) دسستو ساخت کیبورد رو بدین
برای برگردوندن دیتا هنوز روش درست درمونی پیدا نکردم ولی من اینطوری استفاده میکنم که با کلیک رو کلوز کیبورد دستور delete windows کیبورد رو میدم و بعد در همان ویندوز اولی یک کیس notifcation child گذاشتم که باز زیر مجموعه آن کیس delete child هست که در واقع با حذف کیبورد یک نوتیفیکشن برای اینجا میاد و بعد از طریق هندل و ID مولتی ادیت کیبورد،هندل آن مولتی ادیت رو به دست میارم و بعد توسط این هندل از دستور خواندن از مولتی ادیت استفاده میکنم و در نهایت این آرایه رو به مولتی ادیت ویندوز کنونی میفرستم
یه سوال داشتم.
من این تغییری که میگین انجام بدم رو فایلای کدوم برد باید انجام بدم.منظورم mcb1700 یا مال lpc1788 آخه اون اولیه که spi هستش. ولی دومی هم پارالل هستش ولی خوب از درایور داخلی استفاده شده....
من فایلای مربوط به spi اولی رو پاک کردم و فایلای دیگه رو جایگزین کردم این ارورا رو داد
Rebuild target 'Debug_FLASH'
compiling GUI_X.c...
compiling GUIConf.c...
compiling LCDConf.c...
C:\Users\Narges\Downloads\Compressed\LCDConf\LCDCo nf.c(13): error: #11-D: unrecognized preprocessing directive
C:\Users\Narges\Downloads\Compressed\LCDConf\LCDCo nf.c(96): warning: #223-D: function "wr_dat" declared implicitly
C:\Users\Narges\Downloads\Compressed\LCDConf\LCDCo nf.c(111): warning: #223-D: function "wr_cmd" declared implicitly
C:\Users\Narges\Downloads\Compressed\LCDConf\LCDCo nf.c(160): error: #20: identifier "wr_cmd" is undefined
C:\Users\Narges\Downloads\Compressed\LCDConf\LCDCo nf.c(161): error: #20: identifier "wr_dat" is undefined
C:\Users\Narges\Downloads\Compressed\LCDConf\LCDCo nf.c(163): error: #20: identifier "LCD_X_8080_16_ReadM01_16" is undefined
compiling SIMConf.c...
compiling Main.c...
compiling HWConf.c...
compiling LCD_X_8080_16.c...
compiling system_LPC17xx.c...
assembling startup_LPC17xx_Keil.s...
compiling GUI_WIDGET_GraphXYDemo.c...
Target not created
دو تا تابع wr_dar و wr_cmd رو باید کخا براش تعریف کنیم؟!
در صمن این پایه ها کجا تعریف شدن؟
ویرایش توسط ghorban_piriz : 17-12-2013 در ساعت 16:55
من الان دارم از ال سی دی n96 استفاده میکنم و همه فایلا رو هم از رو منوال و دقیق انتخاب کردم ولی این ارورا رو میده !!!! اون متغیرها رو چجوری باید تعریف بشن؟!!!لبته اونا مریوط به تعاریف پایه هان
Rebuild target 'Debug_FLASH'
compiling GUI_X.c...
compiling GUIConf.c...
compiling SIMConf.c...
compiling LCDConf.c...
compiling Main.c...
compiling HWConf.c...
compiling LCD_X_8080_16.c...
System\HW\LCD_X_8080_16.c(116): error: #20: identifier "LCD_DATA_OUT_L" is undefined
System\HW\LCD_X_8080_16.c(116): error: #20: identifier "LCD_DATA_OUT_H" is undefined
System\HW\LCD_X_8080_16.c(128): error: #20: identifier "LCD_DATA_OUT_L" is undefined
System\HW\LCD_X_8080_16.c(128): error: #20: identifier "LCD_DATA_OUT_H" is undefined
System\HW\LCD_X_8080_16.c(141): error: #20: identifier "LCD_DATA_OUT_L" is undefined
System\HW\LCD_X_8080_16.c(141): error: #20: identifier "LCD_DATA_OUT_H" is undefined
System\HW\LCD_X_8080_16.c(156): error: #20: identifier "LCD_DATA_OUT_L" is undefined
System\HW\LCD_X_8080_16.c(156): error: #20: identifier "LCD_DATA_OUT_H" is undefined
System\HW\LCD_X_8080_16.c(171): error: #20: identifier "LCD_DATA_IN_H" is undefined
System\HW\LCD_X_8080_16.c(185): error: #20: identifier "LCD_DATA_IN_H" is undefined
System\HW\LCD_X_8080_16.c(199): error: #20: identifier "LCD_DATA_IN_H" is undefined
System\HW\LCD_X_8080_16.c(214): error: #20: identifier "LCD_DATA_IN_H" is undefined
compiling system_LPC17xx.c...
assembling startup_LPC17xx_Keil.s...
compiling GUI_WIDGET_GraphXYDemo.c...
Target not created
ویرایش توسط ghorban_piriz : 18-12-2013 در ساعت 18:43
من الان رو n96 کار میکنم .دیباگر خود کیل این برنامه رو میتونه شبیه سازی کنه؟برا من کلا وایمیسته!!!!
دوستان من برا n96 همه کارا رو از رو راهنمای emwin انجام دادم.برنامه بدون ارور کامپایل میشه ولی نمی دونم چرا ال سی دی رو init نمی کنه!دیباگ هم کردم اصلا دستورات مربوط به ال سی دی اجرا نمیشن!! من کل پروژه رو می ذارم اینجا دوستان ماهر یه نگاه بندازن ببینن مشکل چیه!!? برنامه حتی ال سی دی رو ریست نمی کنه و همه محتویات برنامه قبلی رو ال سی دی میمونه!! من ترتیب پایه ها رو طبق فایل lcd_x_8080_16.c قرار دادم. با اون ترتیب پایه ها بدون emwin ال سی دی را می افته.
ترتیب پایه هام
Rst p0.26
Rs p0.23
Wr p0.24
Rd p0.25
Cs p0.22
D1 ~d8 & d10~ d17 p1.15~p30
emwin n96.7z - 3.5 MB
ویرایش توسط ghorban_piriz : 20-12-2013 در ساعت 15:57
ما بالاخره این ال سی دی رو راه انداختیم. ولی الان یه مشکلی هست. برنامه بجا نشون دادن یه دایره توپر فقط یه سمت از ال سی دی رو پر می کنه .خط مورب رو که اصلا نشون نمی ده. ولی یه سمپل بود تو سمپل ها که همون منوی دوار بودش اولش منو رو کامل و سریع پر میکنه ولی بعدش یهو قاطی می کنه!! بکگراند هم با هر رنگی بخوام پر می کنه.چک کردم ریجستری های مربوط به ادرس گروهی رو هم درست به ال سی دی میفرسته.ولی خط راست رو از هر جا بهش بگم از صفر می کشه و اگه بعدش دوباره یه خط راست دیگه بدم تو اامه اون خط می کشه!!جالب اینجاست که دقیقا با این کدا و بدون emwin درست کار می کنه!تعجبم اینه که چرا وقتی کد ها یکی اند تو دیباق هم یکی نشون می دن اینجوری باید بشه!!مشکل از کجا می تونه باشه دوستان. اینجا هم که تعطیلللللللهههههههه!!!!
!?
ویرایش توسط ghorban_piriz : 23-12-2013 در ساعت 14:16
من درایور N96 2.8 رو برای emwin و ucgui نوشتم ازش استفاده کنید باخیال راحت سالم سالمه
من تقریباهر روز این تایپک رو چک میکنم. اعتراضت وارد نیس. یه نگاه به این لینک بندازید :
چطور بپرسیم ؟ - ایـــــــــران میـــــــکرو ™
از دستورات emwin برای کشیدن خط و خطوط استفاده می کنی یا دستوراتی که بدون emwin میفرستادی؟
معلومه که وقتی emwin رو فعال می کنی دیگه نباید مستقیما دستوری به ال سی دی بفرستی. خودش کلی فرمان برای رسم اشکال داره. راهنماش رو نگاه کنی می بینی.
درباره قاطی کردنش در منوی چرخان هم باید یه نکته یادآوری کنم. emwin حدود 20 کیلوبایت حافظه رم رو اشغال می کنه. بنابراین میکروهایی مثل LPC1768 بعضی از قابلیتهای emwin رو نمیتونن استفاده کنن (بعلت کمبود حافظه). درسایر موارد هم باید حواستون باشه که حافظه رو مدام خالی کنید.
از سیستم عامل استفاده کردید یا خیر؟
مشکل رو حل کردم.من تو درایو کردن موقع نوشتن دستور پایه r/w رو یک می کردم برا همین اینطوری می شد! الان هم تقریبا همه سمپل ها رو اجرا می کنه.
فقط تو فونت ها مشکل دارم.بعضی از فونت ها رو نشون نمی ده! راستی کسی سمپلی نداره که یه نشانگر رو واسه جایی که تاچ کردیم بفرسته دارم رو تاچ کار می کنم
ال سی دی ssd1289 هم من فایل هاش رو تو سمپل ها ندیدم. فکر کنم emwin از اینا ساپورت نمی کنه.کسی اطلاع داشت مطرح کنه.این فایل و متعلقاتش برا این ال سی دی لازمه.
GUIDRV_CompactColor_16
دوباره سلام.
من به مشکل عجیبی برخوردم.اونم عدم نمایش فونتهای استاندارد خود emwin.خودم فونت درست می کنم عالی جواب میده ولی فونتهای خود برنامه رو یا نشون نمی ده یا پر شده نشون می ده.فایل خود فونتای لستاندارد رو هم گیر نیوردم ولی فکر نمی کنم از این باشه چون اگه فونت رو نمی شناخت یا ارور می داد یا اصلا چیزی نشون نمی داد.جالبش اینه که این اتفاق فقط رو بعضی از ویجت ها رخ می ده.مثلا تو ویجت باتون درست نشون می ده ولی تو ویجت دیالوق خرابه !! درضمن واقعا تا حالا کسی نتونسته ssd1289 رو را بندازه. این سری از ال سی دی ها اصلا تو لایبرری مربوط به کیل ساپورت میشن یا نه؟کسی اطلاع دقیقی نداره.آخه ال یی دی n96/ لا اینکه قیمتش خوبه ولی کوچیکیش رو مخه.دوستان کسی ال سی دی ۳/۲سراغ نداره که درایورش مثل این باشه و راحت راه بیافته!!من با اینکه تونستم n96 رو راه بندازم ولی این یکی رو اصلا نمی تونم و نمی دونم فایلایی که مربوط بهش هستش رو گیر بیارم
لطفا اگه کسی چیزی می دونه کمک کنه. ممنونم
ویرایش توسط ghorban_piriz : 04-01-2014 در ساعت 02:51
بالاخره شد.تونستم روی ssd1289 جواب بگیرم.اینم عکسش
مرسی از اقای ازش حجی رحمانی که زحمت این فایل رو کشیده بودن
منبع:http://Arash-hr.ir
ویرایش توسط arvin2009 : 09-01-2014 در ساعت 23:09
نسخه emwin رو از کجا دانلود کردین؟ بهترین نسخه همونیه که با KEIL 5.01 اومده. ممکنه (البته مطمئن نیستم) که با عوض کردن نسخه مشکل فونتها حل بشه. در غیر اینصورت به احتمال زیاد مشکلی در تخصیص حافظه وجود داره (مثلا استفاده نابجا از اشاره گر ها، نوشتن متغیر فونتها در نوعی از حافظه که مجاز نباشه......).