PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : آموزش emWin



صفحه ها : 1 [2] 3 4 5

mori64
07-05-2013, 22:12
برای چی استفاده نکنید؟؟روال برنامه اینه که شما از یکسری از توابع استفاده میکنی و در مجموع یکسری تغییرات میدهد با استفاده از ای دستور emwin فرصت انجام کارهای جدید و کارهای دیگه خودش مثل چک کردن باتون ها ،در صورت استفاده از progbar ،آن را کم یا زیاد،جابه جا کردن پنجره ها در صورتی که پنجره مورد نظر خاصیت movelable داشته باشه(درست مثل ویندوز کامپیوتر) و ..

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

titery
07-05-2013, 23:47
متوجه هستم .ولی پروسه اصلی که میکرو قرار کنترل کنه چی ؟ قرار نیست که فقط نمایش
داشته باشیم.
فکر کنم اینجاست که rtx باید استفاده کرد و کارایش به وضوح معلوم هست من در باره تئوری rtx خوندم ولی تا حالا در عمل کار نکردم.

lpln852
08-05-2013, 00:42
من کل تاپیک رو خوندم

ممنون از مطالب خوبی که گذاشتید

ولی من دقیق نفهمیدم برای استفاده از emwin باید چی کار کرد

منظورم اینه که چطور باید برای یه سخت افزار خاص تغییرش داد یا باهاش bmp , jpg پخش کرد

ممنون میشم ، اگه راهنمایی کنید برای پیاده سازی emwin روی برد lpc1768 کویر باید چی کار کنم

Dr.ROOSTA
08-05-2013, 11:02
من کل تاپیک رو خوندم

ممنون از مطالب خوبی که گذاشتید

ولی من دقیق نفهمیدم برای استفاده از emwin باید چی کار کرد

منظورم اینه که چطور باید برای یه سخت افزار خاص تغییرش داد یا باهاش bmp , jpg پخش کرد

ممنون میشم ، اگه راهنمایی کنید برای پیاده سازی emwin روی برد lpc1768 کویر باید چی کار کنم


این فایلو نگاه کن ، همه چیزو گفته

mori64
08-05-2013, 14:50
برای داشتن فونت دلخواه نرم افزاری توسط ewin طراحی شده :
داخل فولدر tools یک فایل بنام setupfontCvt.exe وجود دارد برنامه را نصب کنید.
برنامه را اجرا کنید . در پنجره باز شده نوع خروجی font را انتخاب کنید که
کیفیت را مشخص میکند .برای شروع میتوانید از standard استفاده کنید .
در یخش encode برای فونت فارسی حتما unicode را انتخاب کنید.

در مرحله بعدی فونت دلخواه رو انتخاب کنید .

در این مرحله تمام حروف یک فونت برای شما قابل مشاهده است در این محیط شما
میتوانید فونت را به سلیقه خودتون تغییر بدید .

از منوی فایل save as را انتخاب کنید و فایل را در محل مورد نظر ذخیره کنید .

فایل ساخته شده را به پروژه خود اضافه کنید .

در ابتدای فایل خط زیر را مشاهده میکنید :

/* The following line needs to be included in any file selecting the
font.
*/
extern GUI_CONST_STORAGE GUI_FONT GUI_FontZeytoon22;

همان طور که ملاحظه میکنید این خط باید در فایلی که میخواهیم از فونت استفاده کنیم
تعریف شود .

برای فونت های فارسی قبل از استفاده باید 2 تابع فراخوانی شود :

GUI_UC_SetEncodeUTF8(); /* Enable UTF8 decoding */
GUI_UC_EnableBIDI(1); /* Enable bidirectional text */

در تابع اول unicode بودن نوع نمایش و فونت را مشخص میکنیم .
در تابع دوم جهت راست به چپ بودن نمایش را انتخاب میکنیم .

و با این تابع فونت دلخواه را معرفی میکنیم:


GUI_SetFont(&GUI_Font2Bardiya42);

برای نمایش عبارت فارسی 2 راه وجود دارد:
1-مستقیم : ;( " تست ")GUI_DispString
2-استفاده از برنامه U2C موجود داخل فولدر tools :
یک فایل با Notepad ایجاد کنید نوشته دلخواه را بنویسد
از منوی فایل save as را انتخاب کنید نوع فرمت را UTF-8 بزارید .
برنامه U2C را اجرا کنید فایل txt را انتخاب کنید و کانورت را بزنید .
در همان محل فایل txt یک فایل c ایجاد شده است داخل فایل کد های unicode
موجود است .

و از همان تابع قبلی میتوان استفاده کرد :

GUI_DispString("\xd8\xa8\xd9\x84\xd8\xa8\xd9\x84\xdb\x8c \xd8\xae\xd9\x88\xd9\x86 \xd8\xaf\xd9\x84\xdb\x8c \xd8\xae\xd9\x88\xd8\xb1\xd8\xaf \xd9\x88 \xda\xaf\xd9\x84\xdb\x8c \xd8\xad\xd8\xa7\xd8\xb5\xd9\x84 \xda\xa9\xd8\xb1\xd8\xaf "
"");

پیوست 2 تا فایل فونت و مثال برای نمایش موجود است

yraeisi
09-05-2013, 19:07
با سلام به همه ی دوستان
اینم یه کیبرد فارسی با emwin

mansoory
11-05-2013, 16:08
با سلام به همه ی دوستان
اینم یه کیبرد فارسی با emwin
استفاده کنید حالشو ببرید (ضمنا برام دعا کنید)

خیلی عالی بود دست شما درد نکنه آقای رییسی.
در Callback باتونهای کیبرد، از WM_SetFocus استفاده کرده اید که فوکوس فعال رو به editbox منتقل کنه تا پیام کلید های فشرده شده به اون منتقل بشه. با هر بار کلیک شدن باتونها این دستور یکبار اجرا میشه ( که موجب کاهش احتمالی سرعت سیستم میشه و چرخش فوکوس رو توی سیستم زیاد میکنه). پیشنهاد میکنم بجای اینکار، در قسمت initialize باتونها، برای هر باتون این دستور را استفاده کنید:

BUTTON_SetFocussable(hButton, 0);
که در اون hButton هندل باتون مربوطه است. صفر کردن Focusable موجب میشه که این باتون فوکوس دریافت نکنه. وقتی این کار رو برای همه باتونها انجام بدهید، تنها آیتمی که میمونه editbox است که اگر فوکوس گرفته باشه،میتونه رویدادهای صفحه کلید رو دریافت کنه. در نتیجه با هرکلیک باتونها پیام صفحه کلید به Widget ی که فوکوس رو در اختیار داره فرستاده میشه.
فرض کنید پنجره ای که قراره متن توش نوشته بشه فعاله و طوری برنامه نویسی کردیم که با کلیک روی editbox اون پنجره، صفحه کلید ظاهربشه. اگر فوکوس رو به پنجره قبلی برگردونیم (باکلیک روی پنجره) اون وقت رویدادهای صفحه کلید به اون پنجره ارسال میشه و متن مستقیما در editbox مقصد نوشته میشه...

یه پیشنهاد دیگه هم دارم.
درصورتیکه متن در editbox صفحه کلید نوشته میشه، هنگام زدن کلید ثبت ما به هندل editbox مقصد نیاز خواهیم داشت تا با دستور settext متن رو کپی کنیم، بهتره تابع CreateKeyBoard یه آرگومان ورودی از نوع هندل editbox داشته باشه. این عمل علاوه بر اینکه هندل رو برای نوشتن روی editbox در اختیارمون میگذاره، اجازه میده که مابرعکس هم کار کنیم یعنی درقسمت initialize مربوط به editbox صفحه کلید، متن فعلی editbox مقصد رو در editbox صفحه کلید کپی می کنیم، تا کاربر بتونه مقدار فعلی متن editbox مقصد رو دوباره ببینه و اون رو اصلاح کنه...
درصورتیکه کلید ثبت زده شده محتویات editbox صفحه کلید روی editbox مقصد کپی میشه و درصورتیکه کلید انصراف زده شد فقط پنجره صفحه کلید بسته میشه...

هنگام بستن صفحه کلید از دستور WM_DeleteWindow استفاده کنید تا حافظه آزاد بشه. درصورتیکه از HidwWindow استفاده کنید پنجره در حافظه میمونه و با هر دستور Create Window، یک نمونه جدید از صفحه کلید ساخته میشه...

avr.mohsen
14-05-2013, 19:21
با سلام خدمت اساتید محترم
این برنامه پیوستی را با کربرد 1788 نوشتم با RTX و rl_usb و rl_flash کولدیسک را می خواند
چند تا مشکل دارم و از اساتید استدعای کمک دارم.
1. چرا وقتی تابع GUI_Init() را در تابع main فراخوانی می شود دیگر lcd پیکربندی نمیشود.ولی در تسک init پیکربندی میشود.:baad:
2.چرا پیکربندی تاچ بعضی مواقع کار میکنه ولی بعضی مواقع error OS میدهد.:unh:
باتشکر از همه اساتید

در ضمن برنامه به درد کار شما آقای رئیسی میخوره. فقط کافیه یه کمی تغییرات تو فایل File_Config.c انجام بدی اونم ویزاردی!!!!

mansoory
15-05-2013, 09:50
با سلام خدمت اساتید محترم
این برنامه پیوستی را با کربرد 1788 نوشتم با RTX و rl_usb و rl_flash کولدیسک را می خواند
چند تا مشکل دارم و از اساتید استدعای کمک دارم.
1. چرا وقتی تابع GUI_Init() را در تابع main فراخوانی می شود دیگر lcd پیکربندی نمیشود.ولی در تسک init پیکربندی میشود.:baad:
2.چرا پیکربندی تاچ بعضی مواقع کار میکنه ولی بعضی مواقع error OS میدهد.:unh:
باتشکر از همه اساتید

در ضمن برنامه به درد کار شما آقای رئیسی میخوره. فقط کافیه یه کمی تغییرات تو فایل File_Config.c انجام بدی اونم ویزاردی!!!!

تابع GUI_Init باید درون اولین تسکی که RTX اجرا میکنه و قبل از همه دستورات قرار بگیره. فکر می کنم پیکر بندی رم رو باید در تابع InitController قبل از GLCD_Init قرار بدهید (مطمئن نیستم ولی GUI_Init باید قبلش اجرا شده باشه. تابع GUI_Init خودش Init Controller رو اجرا میکنه)
علت اینکه تاچ بعضی وقتا کارمیکنه و بعضی وقتا نه، خیلی معلوم نیست چیه.
توابع تاچی که استفاده می کنید (فایل GUI_Touch Store State.c) قدیمی است و من بعدا اصلاحاتی روش انجام داده ام. تایپک رو بخونیدو اصلاحات رو انجام بدهید. احتمالا مشکل حل خواهد شد.

yraeisi
15-05-2013, 11:40
با سلام خدمت اساتید محترم
این برنامه پیوستی را با کربرد 1788 نوشتم با RTX و rl_usb و rl_flash کولدیسک را می خواند
چند تا مشکل دارم و از اساتید استدعای کمک دارم.
1. چرا وقتی تابع GUI_Init() را در تابع main فراخوانی می شود دیگر lcd پیکربندی نمیشود.ولی در تسک init پیکربندی میشود.:baad:
2.چرا پیکربندی تاچ بعضی مواقع کار میکنه ولی بعضی مواقع error OS میدهد.:unh:
باتشکر از همه اساتید

در ضمن برنامه به درد کار شما آقای رئیسی میخوره. فقط کافیه یه کمی تغییرات تو فایل File_Config.c انجام بدی اونم ویزاردی!!!!

سلام
کار نکردن برنام شما احتمالا مربوط میشه به مقدار رم که به تسک هاتون دادید و اینکه تو تسک مربوط به GUI_Exec باید یه تاخیر حداقل 1ms بذارید.

titery
19-05-2013, 13:07
سلام به همگی بالاخره پروژه ی اولی که تو سایت مطرح شد به صورت کامل انجام شد ولی خیلی طول کشید در عوض فک کنم چیز قشنگی شدش
دوستان اگر پیشنهادی برای اصلاح و بهتر شدن این کیبورد بدهند ممنون میشم(البته یک drop down هم گذاشته بودم برای انتخاب فونت که دیگه فرصت نشد و امتحان ها در پیش هست)
دعا فراموش نشه

microprocesor_2002
19-05-2013, 13:48
سلام به همگی بالاخره پروژه ی اولی که تو سایت مطرح شد به صورت کامل انجام شد ولی خیلی طول کشید در عوض فک کنم چیز قشنگی شدش
دوستان اگر پیشنهادی برای اصلاح و بهتر شدن این کیبورد بدهند ممنون میشم(البته یک drop down هم گذاشته بودم برای انتخاب فونت که دیگه فرصت نشد و امتحان ها در پیش هست)
دعا فراموش نشه

سلام دوستان ...
این کیبورد رو کدوم ال سی دی کار میکنه ؟ 4.3 یا 7 اینچ ؟؟؟

mansoory
19-05-2013, 14:11
سلام به همگی بالاخره پروژه ی اولی که تو سایت مطرح شد به صورت کامل انجام شد ولی خیلی طول کشید در عوض فک کنم چیز قشنگی شدش
دوستان اگر پیشنهادی برای اصلاح و بهتر شدن این کیبورد بدهند ممنون میشم(البته یک drop down هم گذاشته بودم برای انتخاب فونت که دیگه فرصت نشد و امتحان ها در پیش هست)
دعا فراموش نشه

خیلی زیبا بود. به شما هم پیشنهاد می کنم فوکوس های باتونها رو غیر فعال کنید(ظاهرا بعضی از widgetها هنوز فوکوس میگیرند در نتیجه فوکوس دائما روی editbox نمی مونه که باعث میشه بعضی اوقات متن نوشته نشه)
ضمنا مکان نما رو هم چشمک زن کنید بهتره.
دستورش:

MULTIEDIT_EnableBlink(hEditHandle, time, 1);
که در اون hEditHanlde هندل ادیت باکس و time زمان تناوب چشمک زدن مکان نما به میلی ثانیه است.
موفق باشید

titery
19-05-2013, 14:23
سلام 4.3 اینچ با 5 اینچ که سایزش میشود 480*272

titery
19-05-2013, 14:24
خیلی زیبا بود. به شما هم پیشنهاد می کنم فوکوس های باتونها رو غیر فعال کنید(ظاهرا بعضی از widgetها هنوز فوکوس میگیرند در نتیجه فوکوس دائما روی editbox نمی مونه که باعث میشه بعضی اوقات متن نوشته نشه)
ضمنا مکان نما رو هم چشمک زن کنید بهتره.
دستورش:

multiedit_enableblink(hedithandle, time, 1);که در اون hedithanlde هندل ادیت باکس و time زمان تناوب چشمک زدن مکان نما به میلی ثانیه است.
موفق باشید
ممنون من همشون رو غیر فعال کردم به غیر مولتی ادیت ولی این مشکل بازم وجود داره ایا قسمت دیگری هست که باید فوکوسش رو غیر فعال کنم؟

dmco
19-05-2013, 20:58
سلام. دوستان یه سوال مبتدی! من تو چندتا فیلم که از emwin دیدم همشون اون گوشه پایین سمت راست برای بارگزاری صفحه جدید یه بار شروع به پر شدن میکنه و درصد نشون میده. اینو اجباری وجود داره یا اینکه اختیاری هستش و میشه حذفش کرد چون واسه یه پروژه حسابی چیز خیلی ضایعی هستش و اگه اجباری باشه اصن به درد پروژه ای که من میخوام نمیخوره. میخوام بدونم بیخیال emwin بشم یا نه. ممنون

titery
19-05-2013, 22:16
سلام. دوستان یه سوال مبتدی! من تو چندتا فیلم که از emwin دیدم همشون اون گوشه پایین سمت راست برای بارگزاری صفحه جدید یه بار شروع به پر شدن میکنه و درصد نشون میده. اینو اجباری وجود داره یا اینکه اختیاری هستش و میشه حذفش کرد چون واسه یه پروژه حسابی چیز خیلی ضایعی هستش و اگه اجباری باشه اصن به درد پروژه ای که من میخوام نمیخوره. میخوام بدونم بیخیال emwin بشم یا نه. ممنون
سلام در emwin نمایش هر چیزی اختیاری هست شما هر چی نیاز داشته باشی استفاده میکنی

avr.mohsen
20-05-2013, 19:48
برای نوشتن فارسی کافی است در کیل از منوی edit گزینه configuration را انتخاب کنید در پنجره باز شده وارد تب Editor شوید(به صورت پیش فرض هست) در قسمت General Editor Settings: قسمت Encoding
گزینه دوم یعنی Encode in UTF_8 without signature را انتخاب کنید و بعد OK را بزنید .
بعد از اون در برنامه بجای اینکه کدهای فارسی را وارد کنید کافی است کلید Alt+Shift را بزنید و مستقیماً فارسی را بنویسید.


BUTTON_SetFont(hItem, &GUI_FontBNazanin30);
//BUTTON_SetText(hItem,"\xd9\x81\xd8\xa7\xdb\x8c\xd9\x84" );
BUTTON_SetText(hItem,"فایل" );


فکر میکنم کار با فارسی رو خیلی راحتتر میکنه

titery
21-05-2013, 22:48
در فایلهایی که فرستاده اید دراپ دان هم دارای فوکوس می شود. میشه پس از اصلاح دوباره پروژه رو آپ کنید؟
ممنون اینم اصلاح شده اش

iranabad
24-05-2013, 21:11
سلام دوستان
داخل فایلی که فروشگاه برای برد 1788 داده هیچکدام از مایکرو هایی که اقای منصوری توضیح داده اند LCD_BITSPERPIXEL نیست!!!
ایا توضیحات اقای منصوری، برای ورژن های جدید emwinهم هماهنگ هست؟

dmco
25-05-2013, 19:32
دوستان با میکرو LPC1788 وقتی میخوای یه عکس 480*800 پیکسل رو به وسیله emwin روی السیدی 7 اینچ(480*800) نشون بده تصویر رو یه باره میاره یا از بالا به پایین پر میکنه(رفرش تصویر دیده میشه)؟

kamikazi
25-05-2013, 20:15
من دموی خود نرم افزارو با ال سی دی 9 اینچ راش انداختم رسید به اون قسمت نشون دادن عکس اصلا متوجه رفرش نشدم خیلی سریع نشونش داد این کنترلر خیلی سریعتر از ssd هستش ولی خوب قیمتشم بیشتره شما برای اینکار باید عکسو به فرمت باینری در بیارید و از اس دی رم بخونید که بهترین کاره ولی خیلی مشکله

dmco
26-05-2013, 13:55
مهنسین عزیز کسی تونسته emWin5.2 رو برای کوربورد راه بندازه؟
اگه تونسته یه لطف میکنه بزاره اینجا تا بقیه که نتونستن راه بندازن هم یه بررسی بکنن.
این اشک منو در آورده:baad:

ez1362
07-06-2013, 23:00
با سلام
وقتی از پیام WM_timer در WINDOW استفاده می شود ، event مربوطه به درستی اجرا می شود ولی اگر در FRAMEWIN استفاده کنیم اجرا نخواهد شد . راه حلی برای این موضوع دارید ؟

skiboys
11-06-2013, 04:01
سلام خدمت دوستان محترم و تشکر از اقای منصوری و دیگر دوستان که این کار را شروع کردند
منم به امید خدا دارم کار با این کتابخونه را شروع می کنم
1_ترتیب پایه ها در کدوم هدر هستش من دارم می گردم تا الان پیدا نکردم
2_ برنامه اصلی در کدام قسمت قرار دارد مثلا NXP_emWin514_MCB1700_BSP را اجرا کنیم روی LCD چه چیزی می بینیم؟
ممنون

mansoory
11-06-2013, 11:17
با سلام
وقتی از پیام WM_timer در WINDOW استفاده می شود ، event مربوطه به درستی اجرا می شود ولی اگر در FRAMEWIN استفاده کنیم اجرا نخواهد شد . راه حلی برای این موضوع دارید ؟

من هم به مشکلی شبیه به این برخورد کردم. رویداد WM_PAINT در Framewin فقط دوبار اجرامیشه

mansoory
11-06-2013, 11:21
سلام خدمت دوستان محترم و تشکر از اقای منصوری و دیگر دوستان که این کار را شروع کردند
منم به امید خدا دارم کار با این کتابخونه را شروع می کنم
1_ترتیب پایه ها در کدوم هدر هستش من دارم می گردم تا الان پیدا نکردم
2_ برنامه اصلی در کدام قسمت قرار دارد مثلا NXP_emWin514_MCB1700_BSP را اجرا کنیم روی LCD چه چیزی می بینیم؟
ممنون

ترتیب پایه های ال سی دی و نحوه کانفیگ سخت افزار ربطی به emwin نداره. شما باید ابتدا ال سی دی رو فارغ از emwin راه اندازی کنید. سپس توابعی که برای ارسال دستور و داده(بصورت تکی و بلوکی) هست رو به emwin معرفی کنید. همینطور تابع initialize السیدی رو هم نیاز دارید. توابعی فوق رو میتونید از دیتاشیت السیدی یا اینترنت پیداکنید. یا اینکه اینجا بپرسید تا دوستانی که از همون السیدی استفاده میکنند درایورهاش رو براتون بگذارند

sjafarim
11-06-2013, 11:43
سلام مهندس منصوری
یه خدا قوت بهت بگم که واقعا این تاپیکو با زحمت زیاد پیش بردی، هزاران بار تشکر هم برای کار قشنگی که کردی کمه...
من از ورژن 5.16 استفاده میکنم و مشکی با framewin ها ندارم،فک کنم مال شما یه چیزیش هس...!:wink:

skiboys
11-06-2013, 21:19
ترتیب پایه های ال سی دی و نحوه کانفیگ سخت افزار ربطی به emwin نداره. شما باید ابتدا ال سی دی رو فارغ از emwin راه اندازی کنید. سپس توابعی که برای ارسال دستور و داده(بصورت تکی و بلوکی) هست رو به emwin معرفی کنید. همینطور تابع initialize السیدی رو هم نیاز دارید. توابعی فوق رو میتونید از دیتاشیت السیدی یا اینترنت پیداکنید. یا اینکه اینجا بپرسید تا دوستانی که از همون السیدی استفاده میکنند درایورهاش رو براتون بگذارند
ممنون من lcd را راه اندازی کرده ام بدون emwin برای توابع هم با استفاده از هدرهای موجود خودم هدر نوشته ام برای درایور ILI9325
منظورم این بود که پایه های کنترلی و پایه های دیتا کجا تعریف شده اند که من طبق سخت افزار خود تغییرشان دهم؟

برای ان برنامه نگفتید روی LCD چه چیزی مشاهده خواهیم کرد؟

sjafarim
12-06-2013, 02:00
ببینید دوست عزیز emwin اصلا کاری به درایور lcd شما نداره، شما فقط باید چندتا روتینو تو lcd_conf به emwin بدی،نوشتن یک داده،یک دستور و چند داده... (توابع خوندن تکی و گروهی داده رو هم ندی بیشتر چیزای emwin کار می کنه)
تعریف پایه های کنترلی و... تو خود درایور lcd ایت که نوشتی انجام میشه و ربطی به emwn نداره...

mansoory
12-06-2013, 13:23
ممنون من lcd را راه اندازی کرده ام بدون emwin برای توابع هم با استفاده از هدرهای موجود خودم هدر نوشته ام برای درایور ILI9325
منظورم این بود که پایه های کنترلی و پایه های دیتا کجا تعریف شده اند که من طبق سخت افزار خود تغییرشان دهم؟

برای ان برنامه نگفتید روی LCD چه چیزی مشاهده خواهیم کرد؟

وقتی ال سی دی رو راه اندازی کردید بدون emwin، دیگه به سخت افزار کاری نخواهیم داشت. فقط به سراغ فایل LCDCONF.H بروید.
اونجا چند تا تابع هست. السیدی من 320*240 با درایورILI9320 است که بصورت SPI به میکرو وصل شده. در فایل LCDCONF.H فایل هدر السیدی روincludeکنید.
سپس تنظیمات ماکروهای اول فایل رو انجام بدهید:


// Color depth
//
#define LCD_BITSPERPIXEL 16 /* Currently the values 16 and 18 are supported */
//
// Physical display size
//
#define XSIZE_PHYS 320
#define YSIZE_PHYS 240

//
// Color conversion
//
#define COLOR_CONVERSION GUICC_565

//
// Display driver
//
#define DISPLAY_DRIVER GUIDRV_FLEXCOLOR

//
// Orientation
//
//#define DISPLAY_ORIENTATION (0)
//#define DISPLAY_ORIENTATION (GUI_MIRROR_X)
//#define DISPLAY_ORIENTATION (GUI_MIRROR_Y)
//#define DISPLAY_ORIENTATION (GUI_MIRROR_X | GUI_MIRROR_Y)
//#define DISPLAY_ORIENTATION (GUI_SWAP_XY)
//#define DISPLAY_ORIENTATION (GUI_MIRROR_X | GUI_SWAP_XY)
#define DISPLAY_ORIENTATION (GUI_MIRROR_Y | GUI_SWAP_XY)
//#define DISPLAY_ORIENTATION (GUI_MIRROR_X | GUI_MIRROR_Y | GUI_SWAP_XY)

سپس تابع InitController رو ملاحظه کنید. در این تابع باید تابع LCDInit رو قرار بدهید و تمام.

از اینجا به بعد شما دو انتخاب دارید:
یکی استفاده از توابع ارسال تکی و بلوکی و دیگری توابع ارسال ساده اطلاعات/
اگر می خواهید به روش ساده عمل کنید، تابع LCD_X_DisplayDriver رو ببینید، اونجا چند قسمت هست که در نسخه BSP همه اونها حذف شده (چون از روش اول استفاده شده).
در نسخه precompile که با کیل اومده، فایل دست نخورده در فولدر سمپل قرار گرفته.
در اون فایل تابع بصورت زیر تعریف شده:


int LCD_X_DisplayDriver(unsigned LayerIndex, unsigned Cmd, void * pData) {
int r;

switch (Cmd) {
case LCD_X_INITCONTROLLER: {
//
// Called during the initialization process in order to set up the
// display controller and put it into operation. If the display
// controller is not initialized by any external routine this needs
// to be adapted by the customer...
//
// ...
return 0;
}
case LCD_X_SETVRAMADDR: {
//
// Required for setting the address of the video RAM for drivers
// with memory mapped video RAM which is passed in the 'pVRAM' element of p
//
LCD_X_SETVRAMADDR_INFO * p;
p = (LCD_X_SETVRAMADDR_INFO *)pData;
//...
return 0;
}
case LCD_X_SETORG: {
//
// Required for setting the display origin which is passed in the 'xPos' and 'yPos' element of p
//
LCD_X_SETORG_INFO * p;
p = (LCD_X_SETORG_INFO *)pData;
//...
return 0;
}
case LCD_X_SHOWBUFFER: {
//
// Required if multiple buffers are used. The 'Index' element of p contains the buffer index.
//
LCD_X_SHOWBUFFER_INFO * p;
p = (LCD_X_SHOWBUFFER_INFO *)pData;
//...
return 0;
}
case LCD_X_SETLUTENTRY: {
//
// Required for setting a lookup table entry which is passed in the 'Pos' and 'Color' element of p
//
LCD_X_SETLUTENTRY_INFO * p;
p = (LCD_X_SETLUTENTRY_INFO *)pData;
//...
return 0;
}
case LCD_X_ON: {
//
// Required if the display controller should support switching on and off
//
return 0;
}
case LCD_X_OFF: {
//
// Required if the display controller should support switching on and off
//
// ...
return 0;
}
default:
r = -1;
}
return r;
}
که در اون دستورات مختلفی که emwin بهش نیاز داره رو نشون داده. شما باید در هر case دستور مورد نیاز رو قرار بدهید.
اگر میخواهید از روش اول استفاده کنید که پیشنهاد میکنم استفاده کنید، تابع LCD_X_Config رو باید اصلاح کنید:
در این تابع، در نسخه BSP ساختاری به نام PortAPI تعریف شده که وظیفش معرفی توابع ارسال تکی و بلوکی رجیستر و داده السیدی است. توابعPortAPI برای مودهای 8، 16 و 32 وجود دارند. من مود 16 بیتی که 65K رنگ بود رو انتخاب کرده ام. چون مود 18 بیتی که السیدی ساپورت میکنه رو emwin ساپورت نمیکنه.!!


PortAPI.pfWrite16_A0 = LCD_X_SPI_Write00;
PortAPI.pfWrite16_A1 = LCD_X_SPI_Write01;
PortAPI.pfWriteM16_A1 = LCD_X_SPI_WriteM01;
PortAPI.pfReadM16_A1 = LCD_X_SPI_ReadM01;
در مثال فوق LCD_X_SPI_Write00 برای ارسال یک فرمان و LCD_X_SPI_Write01 برای ارسال یک داده ، LCD_X_SPI_WriteM01 برای ارسال بلوکی از داده ها و LCD_X_SPI_ReadM01 برای خواندن بلوکی از داده ها به ساختار PortAPI معرفی شده است.
این هم شرح توابع فوق:

/************************************************** *****************************
* Write command *
* Parameter: c: command to write *
* Return: *
************************************************** *****************************/
void LCD_X_SPI_Write00(U16 c)
{
wr_cmd(c);
}

/************************************************** *****************************
* Write data byte *
* Parameter: c: word to write *
* Return: *
************************************************** *****************************/
void LCD_X_SPI_Write01(U16 c)
{
wr_dat(c);
}

/************************************************** *****************************
* Write multiple data bytes *
* Parameter: pData: pointer to words to write *
* NumWords: Number of words to write *
* Return: *
************************************************** *****************************/
void LCD_X_SPI_WriteM01(U16 * pData, int NumWords)
{
LCD_CS(0);
spi_tran_fifo(SPI_START | SPI_WR | SPI_DATA); /* Write : RS = 1, RW = 0 */

while(NumWords--)
{
spi_tran_fifo(((*pData) >> 8)); /* Write D8..D15 */
spi_tran_fifo(((*(pData++)) & 0xFF)); /* Write D0..D7 */
}
while(LPC_SSP0->SR & (1<<4)); /* wait until done */
LCD_CS(1);
}

/************************************************** *****************************
* Read multiple data bytes *
* Parameter: pData: pointer to words to read *
* NumWords: Number of words to read *
* Return: *
************************************************** *****************************/
void LCD_X_SPI_ReadM01(U16 * pData, int NumWords)
{
LCD_CS(0);
spi_tran_fifo(SPI_START | SPI_RD | SPI_DATA); /* Read: RS = 1, RW = 1 */
spi_tran_fifo(0); /* Dummy byte 1 */
while(NumWords--)
{
*pData = spi_tran(0) << 8; /* Read D8..D15 */
*(pData++) |= spi_tran(0); /* Read D0..D7 */
}
while(LPC_SSP0->SR & (1<<4)); /* wait until done */
LCD_CS(1);
}
به نحوه ارسال و دریافت بلوکی داده ها توجه کنید. در دیتاشیت درایور السیدی شماحتما در این مورد صحبت شده. اگر تصمیم دارید که سرعت نمایش تصاویر بالا باشه یااحیانا فیلم نمایش بدهید گریزی از این توابع نیست. مخصوصا اگر سرعت انتقال اطلاعات پایین باشه مثل السیدی من که SPI است. سایر توابع که مربوط به lowlevel ارسال اطلاعات با SPI بوده رو دیگه ننوشتم...
در آخر مقادیر تعریف شده رو به emwin میفرستیم:


GUIDRV_FlexColor_SetFunc(pDevice, &PortAPI, GUIDRV_FLEXCOLOR_F66708, GUIDRV_FLEXCOLOR_M16C0B16);

//
// Orientation
//
Config.Orientation = DISPLAY_ORIENTATION;
Config.NumDummyReads = 2; /* 5 dummy bytes are required when reading GRAM by SPI. 1 byte is read in LCD_X_SPI_WriteM01, so 4 bytes are left */
GUIDRV_FlexColor_Config(pDevice, &Config);


اگه همه چیز درست باشه، با پروگرام کردن bsp دموی EMWIN اجرا خواهد شد

این لینک هم مفیده حتما بخونید:
You can see links before reply
نکته دیگه درباره این فایل، تعریف pDevice است. در پست بعدی توضیح می دهم

mansoory
12-06-2013, 14:09
ساختار دیگه ای که در تابع LCD_X_Config تعریف شده pDevice است. باتوجه به Manual emwin در قسمت DisplayDriver باید نوعش رو درست انتخاب کنید. اکثر درایورهای السیدی ها بصورت زیر تعریف می شوند:


//
// Color conversion
//
#define COLOR_CONVERSION GUICC_565

//
// Display driver
//
#define DISPLAY_DRIVER GUIDRV_FLEXCOLOR

سپس بصورت زیر به emwin معرفی می شود:



pDevice = GUI_DEVICE_CreateAndLink(DISPLAY_DRIVER, COLOR_CONVERSION, 0, 0);
برای مطالعه بیشتر به این لینک مراجعه کنید خیلی مفیده و جواب همه سوالات رو در اینجا میبینید:
SEGGER Microcontroller - Embedded Software Solutions - GUIDRV_FlexColor (You can see links before reply)

sjafarim
12-06-2013, 18:43
2تا نکته راجع به بکاگیری emwin در rtos ها:
1- تسک های کم اهمیت رو با اولویت کمتر از emwin قرار بدین، emwin فرصت پردازش به اونا رو هم میده.
2- tick time سیستم رو کم (حدود 1ms) قرار بدین تا emwin روون تر کار بکنه.(round robin timeout=5) اگر زمان tick رو زیاد کنید مثلا list wheel ها کند عمل میکنن.

skiboys
13-06-2013, 13:49
وقتی ال سی دی رو راه اندازی کردید بدون emwin، دیگه به سخت افزار کاری نخواهیم داشت. فقط به سراغ فایل LCDCONF.H بروید.
اونجا چند تا تابع هست. السیدی من 320*240 با درایورILI9320 است که بصورت SPI به میکرو وصل شده. در فایل LCDCONF.H فایل هدر السیدی روincludeکنید.

خیلی ممنون از جواب های کاملی که می دهید من هدر LCD خودم را به LCDCONF.H اضافه کردم برای initialize کردن LCD من از مدi80/9-bit System Interface استفاده می کنم به صورتی که 16 پایه از یک پورتی را به data اختصاص داده ام و چندتا هم به پایه های کنترلی، شما پایه های کنترلی را به پایه های SPI متصل کرده اید؟ من پایه های SPI را به مموری متصل کرده ام فکر کنم اگر بخواهم برای LCD هم از SPI استفاده کنم باید برم سراغ SSP
راستی این تابعLCD_X_ فقط برای حالتی هستند که LCD را درمد SPI راه اندازی کنیم درسته؟ اگه من LCD را با SPI راه اندازی نکنم برای استفاده از emwin چه کاری باید انجام دهم؟
داخل سایت SEGGER دوتا بخش برای راه اندازی این درایورها داره
GUIDRV_FlexColor (You can see links before reply) و GUIDRV_CompactColor_16 (You can see links before reply) فرقشون چیه؟

mansoory
17-06-2013, 10:44
خیلی ممنون از جواب های کاملی که می دهید من هدر LCD خودم را به LCDCONF.H اضافه کردم برای initialize کردن LCD من از مدi80/9-bit System Interface استفاده می کنم به صورتی که 16 پایه از یک پورتی را به data اختصاص داده ام و چندتا هم به پایه های کنترلی، شما پایه های کنترلی را به پایه های SPI متصل کرده اید؟ من پایه های SPI را به مموری متصل کرده ام فکر کنم اگر بخواهم برای LCD هم از SPI استفاده کنم باید برم سراغ SSP
راستی این تابعLCD_X_ فقط برای حالتی هستند که LCD را درمد SPI راه اندازی کنیم درسته؟ اگه من LCD را با SPI راه اندازی نکنم برای استفاده از emwin چه کاری باید انجام دهم؟
داخل سایت SEGGER دوتا بخش برای راه اندازی این درایورها داره
GUIDRV_FlexColor (You can see links before reply) و GUIDRV_CompactColor_16 (You can see links before reply) فرقشون چیه؟

سلام. یک اشکالی که به نظرم میاد اینه که ظاهرا هنوز السیدی رو مستقل از emwin راه اندازی نکرده اید. آیا در توضیحاتی که گفته شد به نحوه ارتباط السیدی به میکرو هم اشاره شد؟
من فقط یک مثال رو تشریح کردم که در اون السیدی بصورت spi وصل بوده. در اون مثال توابع مربوطه رو نشون دادم و مهم اینه که بفهمیم اون توابع رو کجا و چطوری به emwin معرفی کنیم.
شما هم باید همین کار رو انجام بدین. اینکه السیدی چطوری به میکرو وصل شده lowlevel است و شما باید در توابع مربوط به السیدی به این موارد بپردازید... مطالبی که در پستهای قبلی گفتم کلی است.

sjafarim
21-06-2013, 12:28
این یه نمونه از guiکامل فارسی که برای یه دستگاه لاگر طراحی شده:
(پیوست شد)

mansoory
22-06-2013, 13:58
یک مقاله درباره کالیبراسیون تاچ:
همونطور که می دونید emwin از روش خطی ساده برای کالیبراسیون تاچ استفاده کرده. تابع GUI_TOUCH_Calibrate دو تا نقطه بعنوان نقاط مرجع روی ال سی دی میگیره و مختصات دو نقطه هم ه از خروجی A/D تاچ میگیره و ضرایب تناسب رو با محاسبه می کنه.
وقتی ابعاد تاچ بزرگ میشه، رابطه خطی دیگه صادق نیست؛ مثلا در گوشه های تاچ. ضمنا در کالیبراسیون تاچ، 3 فاکتور جابجایی، کشیدگی و دوران محورهای تاچ نسبت به السیدی، روی معادله کالیبراسیون تاثیر میگذارند. وقتی از 2نقطه برای کالیبراسیون استفاده بشه، اثر کشیدگی و دوران درهم ادغام میشه که خیلی مناسب نیست.
برای السیدیهای کوچک از روش 3نقطه و برای السیدیهای بزرگتر 5 یا 9 نقطه استفاده می شود.
این مقاله به بررسی معادلات مربوطه و روش نوشتن تابع کالیبراسیون پرداخته است.
امیدوارم مفید باشه

titery
23-06-2013, 06:01
اینم emwin520 برای کوره برد همراه با تاچ و موس.ولی من هنوز نفهمیدم چرا سرعت رفرش صفحه در ورژن 5.16 داخل سی دی کوره برد سرعتش خیلی بیشتر از 5.18 و 5.20 هست.
start520_coreboard(4).rar (You can see links before reply)

mehrdad224
05-07-2013, 17:44
سلام من هر کاری میکنم مثال emwin داخل dvd کور بورد روی ال سی دی 7 اینچ اجرا نمیشه حتی فایل شما را هم پروگرم کردم ,و سایز lcd به 7 انیچ تغییر دادم .صفحه کاملا سفیده ایا دلیلی داره ؟
ولی مثال GLCD کاملا جواب میده .

microprocesor_2002
09-07-2013, 16:57
سلام به همه دوستان .....
یه سوال ..
کی تو emwin با امکانات multi layer کار کرده ...
هر کاری میکنم درست از آب در نمیاد...
ممنون

sjafarim
09-07-2013, 18:16
دقیق بگو مشکلت چیه؟
چیکارمی خوای بکنی و کجاش مشکل داری؟
کد برنامتم پیوست کن.

microprocesor_2002
10-07-2013, 12:41
دقیق بگو مشکلت چیه؟
چیکارمی خوای بکنی و کجاش مشکل داری؟
کد برنامتم پیوست کن.
سلام به همه ....
ممنون از جوابت ...
مثلا یک شکل هندسی دارم مثل دایره .... میخوام یک شکل دیگه مثل مستطیل بتونه روش حرکت کنه .... بدون اینکه شکل دایره خراب بشه ....

sjafarim
10-07-2013, 14:55
ببین هر دوتا چیزی که میخوای رو هم حرکت کنن واقعا دوتا شکل هندسی هستن؟
چند ضلعی هستن؟ اگر مثلا یکی یه ویندوز هست و یکی شکل فرق میکنه، یا هر دو ویندوز، یا این که دو تا شکل مد نظر فرزند یک ویندوز هستن یا نه؟دقیق بگو چیه، حتی اگر عکس باشن باز روشش فرق داره...(علاوه برین روش های مختلف نیاز به رم و پردازش متفاوتی دارن)
الان برداشت من از حرف شما اینه که دو تا شکل (مثلا چندضلعی) که هر دو فرزند یه ویندوز (البته این نکترو توجه کن که اگر از ویندوز منیجر استفاده کنی برای رسم اشکال دو بعدی در یک صفحه فقط باید از مسیج overlay استفاده کنی و کارت سخت و با پردازش سنگین میشه پس بهتره دو شکل مذکور به عنوان فرزند background win باشن که مستقیما قابل رسم باشن و اگر از وین منیجر استفاده نکنی کارت راحت تر خواهد بود و مستقیم همه چی قابل رسمه اما قابلیت های زیادی رو از دست میدی) هستن قراره روی هم حرکت کنن، برای این کار کافیه یه مموری دیوایس بسازی، انتخابش کنی، شکلتو رسم کنی، به lcd منتقل کنی. بعد هر تغییرات مکانی یا زاویه ای خواستی رو هندل مموریت میدی...
برای هر دو شکل به همین صورت عمل میکنی،یعنی هر شکل یه مموری دیوایس و ...
یه فایل مثال هم تو خود emwin بود که اگه اشتباه نکنم WM_Sample بود که همین چیزی که شما میخوایو مثال زده... (البته با اون فقط میشه 4 ضلعی رو کار کرد چون از win به عنوان شکل استفاده کرده)
راه دیگش هم sprite هست که برای کار شما استفاده ازش معقول نیست...
* به نظر من در مورد مباحث وراثت پنجره ها و نحوه ترسیم بواسطه پیغام ها همچنین نحوه عملکرد ویندوز منیجر بیشتر تحقیق کنید...
موفق باشید.

microprocesor_2002
10-07-2013, 15:23
ببین هر دوتا چیزی که میخوای رو هم حرکت کنن واقعا دوتا شکل هندسی هستن؟
چند ضلعی هستن؟ اگر مثلا یکی یه ویندوز هست و یکی شکل فرق میکنه، یا هر دو ویندوز، یا این که دو تا شکل مد نظر فرزند یک ویندوز هستن یا نه؟دقیق بگو چیه، حتی اگر عکس باشن باز روشش فرق داره...(علاوه برین روش های مختلف نیاز به رم و پردازش متفاوتی دارن)
الان برداشت من از حرف شما اینه که دو تا شکل (مثلا چندضلعی) که هر دو فرزند یه ویندوز (البته این نکترو توجه کن که اگر از ویندوز منیجر استفاده کنی برای رسم اشکال دو بعدی در یک صفحه فقط باید از مسیج overlay استفاده کنی و کارت سخت و با پردازش سنگین میشه پس بهتره دو شکل مذکور به عنوان فرزند background win باشن که مستقیما قابل رسم باشن و اگر از وین منیجر استفاده نکنی کارت راحت تر خواهد بود و مستقیم همه چی قابل رسمه اما قابلیت های زیادی رو از دست میدی) هستن قراره روی هم حرکت کنن، برای این کار کافیه یه مموری دیوایس بسازی، انتخابش کنی، شکلتو رسم کنی، به lcd منتقل کنی. بعد هر تغییرات مکانی یا زاویه ای خواستی رو هندل مموریت میدی...
برای هر دو شکل به همین صورت عمل میکنی،یعنی هر شکل یه مموری دیوایس و ...
یه فایل مثال هم تو خود emwin بود که اگه اشتباه نکنم WM_Sample بود که همین چیزی که شما میخوایو مثال زده... (البته با اون فقط میشه 4 ضلعی رو کار کرد چون از win به عنوان شکل استفاده کرده)
راه دیگش هم sprite هست که برای کار شما استفاده ازش معقول نیست...
* به نظر من در مورد مباحث وراثت پنجره ها و نحوه ترسیم بواسطه پیغام ها همچنین نحوه عملکرد ویندوز منیجر بیشتر تحقیق کنید...
موفق باشید.

ببین من میخوام یه اسکرین artificial horizon که تو هواپیما بکار رفته درست کنم ... مثل شکل ....
یه دایره داریم بعنوان صفحه اصلی و اون قسمت قهوه ای یه مستصیل هستش که باید روی دایره حرکت کنه ....

sjafarim
10-07-2013, 17:34
پروسسورت چیه؟رم چقدر داری؟
از همون روش مموری دیوایس که گفتم استفاده کن. (شاید یکم سخت تر باشه ولی من ترجیح میدم اینکارو)
راه دیگشم اینه که مستطیل زیریرو یه ویندوز بزرگتر با virtual display بگیری، بعد یه ویندوز خالی تو ارتفاع بالاتر ازون قبلی بزاری و با استفاده از پیغام overlay مربوط به owner drow این ویندوز حاشیه دورتو نمایش بدی. حالا ویندوز زیریو کامل بالا پایین کنی با ویندوز منیجر... (این راه رم بیشتری نیاز داره)

microprocesor_2002
11-07-2013, 00:42
پروسسورت چیه؟رم چقدر داری؟
از همون روش مموری دیوایس که گفتم استفاده کن. (شاید یکم سخت تر باشه ولی من ترجیح میدم اینکارو)
راه دیگشم اینه که مستطیل زیریرو یه ویندوز بزرگتر با virtual display بگیری، بعد یه ویندوز خالی تو ارتفاع بالاتر ازون قبلی بزاری و با استفاده از پیغام overlay مربوط به owner drow این ویندوز حاشیه دورتو نمایش بدی. حالا ویندوز زیریو کامل بالا پایین کنی با ویندوز منیجر... (این راه رم بیشتری نیاز داره)
ممنون از جوابت دوست عزیز ...
والا من core board LPC1788 رو از فروشگاه تهیه کردم....

sjafarim
11-07-2013, 01:07
برد خوبیه،نیازتو کامل ارضا میکنه...
استارتشو بزن هرجا مشکل داشتی بگو با دوستان اگر کمکی از دستمون بر بیاد پشتت هستیم...
نتایج کارتم همینجا آخر سر قرار بده که به عنوان نمونه همه استفاده کنن...
موفق باشی.

mansoory
11-07-2013, 10:42
ببین من میخوام یه اسکرین artificial horizon که تو هواپیما بکار رفته درست کنم ... مثل شکل ....
یه دایره داریم بعنوان صفحه اصلی و اون قسمت قهوه ای یه مستصیل هستش که باید روی دایره حرکت کنه ....

همونطور که آقای جعفری گفتند، راه حل شما استفاده از MEMDEVICE است. ابتدا در راهنمای emwin بخش مربوط به Memory Devices رو مطالعه کنید. انشالله به کمک آقای جعفری موفق خواهید شد. مثال MEMDEV_Banding.c رو هم مطالعه کنید

rah1450
11-07-2013, 16:27
نرم افزار uvision 4.7 رو از سايت keil‌دانلود كنيد. و با patchهاي ورژنهاي قبلي كركش كنيد. همه كتابخانه هاي emwin رو به همراه نرم افزارهاي توليد صفحات گرافيكي ميتونيد داشته باشيد. در ضمن help خوبي هم داره.

microprocesor_2002
13-07-2013, 12:59
برد خوبیه،نیازتو کامل ارضا میکنه...
استارتشو بزن هرجا مشکل داشتی بگو با دوستان اگر کمکی از دستمون بر بیاد پشتت هستیم...
نتایج کارتم همینجا آخر سر قرار بده که به عنوان نمونه همه استفاده کنن...
موفق باشی.

آخه یه مشکلی که دارم اینه که نمیتونم کاری کنم که میکرو بجای استفاده از فلش و رم داخلی (که خیلی کمه)، از فلش و رم خارجی که رو خود بورد هست استفاده کنه.... البته نمیدونم اصلا این میکرو میتونه واسه بوت شدن از اونا اسنفاده کنه یا اونا صرفا یه حافظه جانبی محسوب میشه مثل at2402 ...

sjafarim
13-07-2013, 14:33
برای برنامتون که 512 کیلو فلش داخلی کافی نیست؟!!!
رم هم که باید از واحد (External Memory Controller (EMC استفاده کنید که بتونید دسترسی مستقیم داشته باشید، همون 32 sdram رو باید استفاده کنید.
البته من با lpc کار نمیکنم و اینکه گفتم برد خوبیه با توجه به امکاناتش بود، این پست مهندس منصوری رو هم که حتما خوندید :

لطف دارید. البته سوال شما خارج از موضوع تایپکه. من هم اطلاعات خیلی دقیقی درباره اختلاف NAND FLASH و NOR FLASH ندارم. این لینک (You can see links before reply) تفاوت اونها رو توضیح داده:

1- آدرس دهی به حافظه:
NAND FLASH: فقط به بلوکهای 512 یا 2048 بایتی دسترسی دارید (برای خواندن یا نوشتن)
NOR FLASH: دسترسی تصادفی به کل حافظه (بایت به بایت)، به این نوع دسترسی Memory-mapped addresses گفته میشه.
از این اختلاف میشه نتیجه گرفت که NandFlash برای حافظه برنامه و NorFlash برای حافظه داده ماندگار(شبیه به کاربرد EEPROM) مناسبه.

2- دسترسی مستقیم برای نوشتن و خواندن: (شبیه به رم)
NandFlash: خیر
NorFlash: بله
3-برای دوباره نویسی حافظه باید اول حافظه erase شود؟
NandFlash: در نوع SLC بله و در نوع MLC خیر
NorFlash: خیر
3- معمولا حافظه های NAND در مقایسه قیمتی، حجم بیشتری دارند و بعنوان حافظه برنامه بکار میروند. ضمنا، دارای مکانیزمی برای رفع خطاهای احتمالی در نوشتن هم هستند.

اینکه چطوری میشه توی این حافظه برنامه نوشت رو نمیدونم؛ ولی برای اجرای برنامه حافظه NandFlash، در KEIL، با معرفی آدرس شروع و پایان حافظه در صفحه تنظیمات پروژه( در قسمت ROM1، ROM2 و ROM3 ) و انتخابش بعنوان Startup(درصورتیکه میخواهید اجرای برنامه از حافظه جانبی آغاز شود)، دسترسی بهش امکانپذیرمیشه.

من شماتیکی از core board گیر نیاوردم که بررسی کنم اون دوتا حافظه فلش هم قابلیت دسترسی مستقیم دارن یا نه ولی قاعدتا برای همین فکر کنم تعبیه شدن، از دوستان lpc کار بهتر میتونن کمکتون کنن، البته یه تاپیک جدا بزنی هم خوبه...

microprocesor_2002
16-07-2013, 11:28
برای برنامتون که 512 کیلو فلش داخلی کافی نیست؟!!!
رم هم که باید از واحد (External Memory Controller (EMC استفاده کنید که بتونید دسترسی مستقیم داشته باشید، همون 32 sdram رو باید استفاده کنید.
البته من با lpc کار نمیکنم و اینکه گفتم برد خوبیه با توجه به امکاناتش بود، این پست مهندس منصوری رو هم که حتما خوندید :


من شماتیکی از core board گیر نیاوردم که بررسی کنم اون دوتا حافظه فلش هم قابلیت دسترسی مستقیم دارن یا نه ولی قاعدتا برای همین فکر کنم تعبیه شدن، از دوستان lpc کار بهتر میتونن کمکتون کنن، البته یه تاپیک جدا بزنی هم خوبه...

من شماتیکشو دارم .... حافظه های nand و ram به قسمت emc وصله .... مشکلم اینه که نمیدونم چطوری راه اندازیش کنم .... میتونم با توابعی که داره مثلا چیزی توش ذخیره کنم ولی اونطوری مثل یک حافظه جانبی عمل میکنه .... من نمیخوام مثل حافظه جانبی باشه ، میخوام جای flash و ram داخلی از flash و ram خارجی استفاده کنم ....
ممنون از جوابتون ...

kamikazi
16-07-2013, 12:33
فکر کنم اقای ازاده تو مثال اودیو کدک از نور فلش استفاده کرده بشه در واقع فکر کنم از این دوتا نند فلش و نور فلش به عنوان حافظه موقت استفاده میکنه یعنی دیتاهارو میریزه روش و با سرعت پخش میکنه ولی اگر منظورتون یه چیزی تو مایه های کوبی برد که ایمیجی ریخته بشه روش و میکرو از روی اون بخونه فکر کنم کار خیلی سختی باشه حداقل مثال درست درمونی در موردش نیست

sjafarim
16-07-2013, 13:31
برای حافظه برنامه واقعا نمیدونم راه دقیقش چیه، 512 کیلو هم کم نیستا مهندس، ولی رم وقتی با همون emc راه بیفته میشه به عنوان مموری برای emwin ازش استفاده کرد. یعنی باید بشه، تو st هم ما به جای emc واحد fsmc داریم که کارش دقیقا همینه...
بعد از راه اندازی اون کاملا از حافظه تحت امرشون میشه به عنوان رم استفاده کرد. اگر بخوای نمونه هم دارم از st که این کارو کرده ، برات آپ کنم...

titery
16-07-2013, 18:38
منم تو یک پروژه ساده با emwin بخاطر استفاده از چند سایز فونت وچند تا عکس کوچک حافظه فلش کم آمدش،حال اگه بخواهیم یک استفاده سطح پایین فقط به عنوان حافظه خارجی داشته باشیم مثلا هدر های فونت ها یا عکس ها رو درونش قرار دهیم چکار باید کنیم؟cry::

sjafarim
16-07-2013, 20:39
ببینید، تو کامپیوتر هم با اونهمه رم، از رم به عنوان حافظه دائمی استفاده نمیشه، فونتا که حجم خیلی زیادی ندارن، عکسه که مشکل ساز میشه، اونم باید تو یه حافظه معقول مثل sd مثلا ذخیره کنید و موقعی که نیاز داشتید لود کنید تو رم، اونم حتی نیاز نیست کامل تو رم میکروتون لود بشه برای نمایش و همین که مستقیم تو رم کنترولر lcd لود بشه کافیه، اگرم دیدید سرعت کمه موقتا تو رم میکرو لود کنید، نمایشش بدید بعد پاکش کنید از تو رم...

mansoory
17-07-2013, 10:58
یک نکته خارج از بحث جاری:

دوستان، در راهنمای emwin هم این نکته اشاره شده که باید resource ها پس از استفاده آزاد بشوند. فرض کنید یک پنجره میخواهیم نمایش بدهیم. به محض ایجاد پنجره مقداری از حافظه رم اشغال خواهد شد. (با استفاده از شبیه ساز میتوانید این نکته را بررسی کنید). پس از بستن پنجره، حافظه آزاد نخواهد شد. درمیکروهایی مثل 1768 که امکان اتصال به حافظه خارجی ندارند، این مساله موجب کاهش سرعت emwin در نمایش پنجره های بعدی خواهد شد تا جایی که بعلت کمبود حافظه، سیتم هنگ میشه. پس دقت بفرمایید. پس از اینکه کارتون بایک پنجره تموم شد و اون رو بستید، بایدبا WM_DELETE اون رو پاک کرده و Handle اون رو هم null کنید.

// درباره مساله استفاده از NandFlash، از آقای وثوق خواهش دارم با من درتماس باشن شاید بتونیم طوری حلش کنیم و گزارشش رو تقدیمتون کنیم

mansoory
17-07-2013, 16:07
تعریف یک متغیر در نقطه دلخواه از حافظه (فلش یا رم):
در KEIL برای تعریف یک متغیر در محل خاصی از حافظه از
__attribute__((at(address))) استفاده میشه. برای اینکه یک ثابت در فلش تعریف کنید باید از تعریف const استفاده بشه:



const int __attribute__((at(0x120000))) xx=4500;


در اینجا یک ثابت به نام xx در محل 0x120000 حافظه فلش تعریف شده است. توجه کنید که اگر آدرس حافظه در محدوده فلش خارجی باشه قاعدتا باید اونجا قرار بگیره (آزمایش نکرده ام)

دوستانی که به coreboard دسترسی دارند این راه رو آزمایش کنند و نتیجه رو اعلام کنند
متشکرم

microprocesor_2002
18-07-2013, 10:56
تعریف یک متغیر در نقطه دلخواه از حافظه (فلش یا رم):
در KEIL برای تعریف یک متغیر در محل خاصی از حافظه از
__attribute__((at(address))) استفاده میشه. برای اینکه یک ثابت در فلش تعریف کنید باید از تعریف const استفاده بشه:



const int __attribute__((at(0x120000))) xx=4500;


در اینجا یک ثابت به نام xx در محل 0x120000 حافظه فلش تعریف شده است. توجه کنید که اگر آدرس حافظه در محدوده فلش خارجی باشه قاعدتا باید اونجا قرار بگیره (آزمایش نکرده ام)

دوستانی که به coreboard دسترسی دارند این راه رو آزمایش کنند و نتیجه رو اعلام کنند
متشکرم
سلام به همه .....
من تست کردم به کلمه at گیر داد
Application\frm_allinfoDLG.c(44): error: #1222: the "at" attribute does not apply to local variables
این بود ارورش ....

microprocesor_2002
18-07-2013, 12:15
سلام به همه ...
یه سوال ....
اگه یه اسکرین تو emwin داشته باشیم و این اسکرین رو با MEM DEVICE رو LCD نشون بدیم ... تا اینجاش هیچ مشکلی نیست ...و ولی حالا من اومدم تاچ رو هم بهش اضافه کردم ...
حالا مشکلم اینجاست که وقتی از mem device استفاده میکنم قسمت تاچ درست کار نمیکنه ... من از lcd . 4.3 اینچ و تاچ همراه خودش که تو فروشگاه هست استفاده میکنم .... پروژه رو اینجا میزارم میتونید ببینید اگه فمیدید مشکلش چیه ممنون میشم بگید ...
Data Logger_1 - Download - 4shared - Omid Azadeh (You can see links before reply)

mansoory
18-07-2013, 12:43
سلام به همه .....
من تست کردم به کلمه at گیر داد
Application\frm_allinfoDLG.c(44): error: #1222: the "at" attribute does not apply to local variables
این بود ارورش ....

این خطا که معلومه..
متغیر رو داخل تابع یا بلوک تعریف کرده اید. باید بصورت global تعریف کنید (خارج از توابع و بلافاصله بعد از #include ها)

مثال:

#include <LPC17xx.h>
const int __attribute__((at(0x120000))) xx=4500;
int main()
{...

microprocesor_2002
18-07-2013, 14:29
سلام به همه ...
یه سوال ....
اگه یه اسکرین تو emwin داشته باشیم و این اسکرین رو با MEM DEVICE رو LCD نشون بدیم ... تا اینجاش هیچ مشکلی نیست ...و ولی حالا من اومدم تاچ رو هم بهش اضافه کردم ...
حالا مشکلم اینجاست که وقتی از mem device استفاده میکنم قسمت تاچ درست کار نمیکنه یعنی وقتی که دست رو تاچ میزارم تصویر Flicker پیدا میکنه... من از lcd . 4.3 اینچ و تاچ همراه خودش که تو فروشگاه هست استفاده میکنم .... پروژه رو اینجا میزارم میتونید ببینید اگه فهمیدید مشکلش چیه ممنون میشم بگید ...
Data Logger_1 - Download - 4shared - Omid Azadeh (You can see links before reply)

sjafarim
18-07-2013, 21:24
اینو اول build کن بعد امتحانش کن ببین درسته:
You can see links before reply

(اصول اولیه زیادی رو رعایت نکردین در برنامه نویسیه emwin، البته من از چارت کارت چیزیو تغییر ندادم چون اگر میخواستم تغییر بدم باید 90 درصدشو تغییر میدادم.فقط چنتا چیز که فک میکردم مشکل ساز باشن، فرضم هم برین بود که مقدار دهی اولیه اینتراپت تایمرت درست نوشته شده و کار میکنه)

microprocesor_2002
19-07-2013, 15:39
اینو اول build کن بعد امتحانش کن ببین درسته:
You can see links before reply

(اصول اولیه زیادی رو رعایت نکردین در برنامه نویسیه emwin، البته من از چارت کارت چیزیو تغییر ندادم چون اگر میخواستم تغییر بدم باید 90 درصدشو تغییر میدادم.فقط چنتا چیز که فک میکردم مشکل ساز باشن، فرضم هم برین بود که مقدار دهی اولیه اینتراپت تایمرت درست نوشته شده و کار میکنه)

سلام به همه ...
ممنون دوست عزیز که وقت گذاشتی ...
ای کاش یه چندتاشو میگفتی کجاش مشکل داره ....

sjafarim
19-07-2013, 17:35
درست شد حالا یا نه؟
نیگا گفتنی نیست، سر نخ باید بیاد دستت، خیلی پخش کد مینویسی، حتی دسته بندی فایل ها و دسته بندی شاخه های پروژه هم پخشه خیلی، یه پروژه بزرگو هیچوقت نمیتونی با اینقدر بی نظمی انجام بدی، توی اپلیکیشن emwin ات هم ساختار برنامه درست نیست، تعریف کالبک ها ، صدا زدنشون، توابع create کردن، تابع مقدار دهی اولیه و حلقه بینهایتش، اینا همه ترتیبشون باید رعایت بشه که لااقل توسط خودت قابل بازبینی باشن، مثال های همراه emwin رو نگاه کن، چقدر منظم و به قاعده نوشته شدن، همه چی سرجای خودشه...

microprocesor_2002
19-07-2013, 22:10
درست شد حالا یا نه؟
نیگا گفتنی نیست، سر نخ باید بیاد دستت، خیلی پخش کد مینویسی، حتی دسته بندی فایل ها و دسته بندی شاخه های پروژه هم پخشه خیلی، یه پروژه بزرگو هیچوقت نمیتونی با اینقدر بی نظمی انجام بدی، توی اپلیکیشن emwin ات هم ساختار برنامه درست نیست، تعریف کالبک ها ، صدا زدنشون، توابع create کردن، تابع مقدار دهی اولیه و حلقه بینهایتش، اینا همه ترتیبشون باید رعایت بشه که لااقل توسط خودت قابل بازبینی باشن، مثال های همراه emwin رو نگاه کن، چقدر منظم و به قاعده نوشته شدن، همه چی سرجای خودشه...

میدونم اینایی رو که گفتی ....
من برنامه نویسی اصولی رو خوب بلد نیستم ....
رو EMWIN هم هنوز تسلط ندارم ... یه جورایی تازه شروع کردم و اولین پروژه هشتش که با emwin انجام میدم ... ایشالا تموم بشه سورسشو میزارم همینجا با کمک دوستان optimaize بشه و شاید به درد یکی خورد ....

sjafarim
20-07-2013, 01:08
میدونم اینایی رو که گفتی ....
من برنامه نویسی اصولی رو خوب بلد نیستم ....
رو EMWIN هم هنوز تسلط ندارم ... یه جورایی تازه شروع کردم و اولین پروژه هشتش که با emwin انجام میدم ... ایشالا تموم بشه سورسشو میزارم همینجا با کمک دوستان optimaize بشه و شاید به درد یکی خورد ....

بازم نگفتی درست شد یا نه اونی که برات اصلاح کردم؟؟؟!!!:shj:

microprocesor_2002
20-07-2013, 11:12
بازم نگفتی درست شد یا نه اونی که برات اصلاح کردم؟؟؟!!!:shj:
سلام به همه ...
نه داداش درست نشد ...
هنوز هم وقتی تاچ رو فشار میدم lcd ، پرش داره ....
نمیدونم کجای برنامه رو تغییر بدم که درست بشه ...

sjafarim
20-07-2013, 22:12
یه بار دیگه تابع تاچتونو نگاه کردم.
دلیلش DelayUS های زیادیه که تو تابع تاچ وجود داره، یا اونارو کم کنید یا از rtos استفاده کنید و تابع تاچ رو در اولویت پایین تر از emwin قرار بدید تا flicker رفع بشه...
موفق باشید.

internetmmbr0
21-07-2013, 01:51
نسخه کرک شده emwin وجود داره .اون نسخه ای که داخل سایت هست نسخه دمو است

titery
23-07-2013, 13:27
سلام من یک مشکلی در قسمت مولتی ادیت دارم فرض کنید در ویندوز شماره یک ،ده تا مولتی ادیت دارم که با کلید بر روی هر یک از آن ها قرار هست یک کیبورد که خود یک ویندوز جدا(ویندوز شماره دو) هست باز شود و محتوای مولتی ادیت ویندوز شماره یک به ویندوز شماره دو انتقال یابد و بعد از ok زدن در ویندوز دو آن مقدار به مولتی ادیت ویندوز یک انتقال یابد.
حالا من در در قسمت notifction در بخش release مولتی ادیت ویندوز یک این ها رو گذاشتم
<div align="left">

case ID_MULTIEDIT_1:

hItem = Createkeypad();
hItem2 = WM_GetDialogItem(hItem , (GUI_ID_USER + 0x0D));
MULTIEDIT_SetText(hItem2, " 92/4/24");
WM_ValidateWindow(hItem);
break;
ولی وقتی ویندوز جدید ایجاد می شود "92/4/24" در آن نیست حال چطور میتوانم این کار رو انجام بدم

sjafarim
23-07-2013, 17:35
hItem2 رو بصورت global تعریف کن بعد این خطو:

MULTIEDIT_SetText(hItem2, " 92/4/24");

منتقل کن به پیغام WM_INIT_DIALOG در ویندوز جدید. (البته به جای اون متنه که نوشتی اول محتوای مولتی ادیتتو (قبل create کردن ویندوز جدید) تو یه متغیر global ذخیره کن و به جای اون متنه بزار که میدونی قطعا خودت)

titery
27-07-2013, 10:48
سلام من یک مشکلی در قسمت مولتی ادیت دارم فرض کنید در ویندوز شماره یک ،ده تا مولتی ادیت دارم که با کلید بر روی هر یک از آن ها قرار هست یک کیبورد که خود یک ویندوز جدا(ویندوز شماره دو) هست باز شود و محتوای مولتی ادیت ویندوز شماره یک به ویندوز شماره دو انتقال یابد و بعد از ok زدن در ویندوز دو آن مقدار به مولتی ادیت ویندوز یک انتقال یابد.
حالا من در در قسمت notifction در بخش release مولتی ادیت ویندوز یک این ها رو گذاشتم
<div align="left">

case ID_MULTIEDIT_1:

hItem = Createkeypad();
hItem2 = WM_GetDialogItem(hItem , (GUI_ID_USER + 0x0D));
MULTIEDIT_SetText(hItem2, " 92/4/24");
WM_ValidateWindow(hItem);
break;
ولی وقتی ویندوز جدید ایجاد می شود "92/4/24" در آن نیست حال چطور میتوانم این کار رو انجام بدم
من یک راه حلی پیدا کردم برای ویندوز دوم چند کیس با دیفاین زیر

#define WM_SHOW_up (WM_USER + 1)
تعریف و کیس ها رو و چیزهایی که قرار بود انجام بشه را در کال بک ویندوز دوم گذاشتم.در ویندوز یک هربار که میخواستم کیپد(ویندوز دوم) رو ایجاد کنم با دستور زیر متناسب با نیاز،ویندوز دوم رو با کیس مورد نظر آپدیتش میکردم

WM_SendMessageNoPara(hWin_alaki,WM_USER + 1);

titery
03-08-2013, 00:03
سلام یک نکته خیلی عجیب
تا حالا کسی تو برنامه اش حالتی پیش آمده که با ایجاد یک پنجره،برنامه بره تو حالتی که انگار تو یک GUI_Delay بی نهایت بمونه.منظورم همان برنامه کیبورد قبلی خودم هست که به محض ایجاد

h_KEYBOARD=CreateKEYBOARD();حتی هندل خودش هم دیگه برنمیگردونه،
ولی من h_KEYBOARD را گلوبال تعریف کردم و در کال بکش،هندلش رو داخل h_KEYBOARD ریختم و درون while حتی قبل از GUI_Delay دستور delete ویندوز رو دادم انگار نه انگار
کلا مطمئنم که حتی وارد while هم نمیشه چون ب روش های مختلف تست هایی انجام دادم.

void MainTask(void) {

GUI_Init();

BUTTON_SetDefaultSkin(BUTTON_SKIN_FLEX);

h_KEYBOARD=CreateKEYBOARD();
while (1) {

WM_DeleteWindow(h_KEYBOARD);
GUI_Delay(100);

}
}حالا مشکل از چی میتونه باشه؟؟؟؟؟؟

sjafarim
03-08-2013, 00:35
منظورتو در واقع مشکلتو متوجه نمیشم، ببین دستورات emwin وقتی اعمال میشن که delay اجرا بشه وقتی از rtos استفاده نمیکنی.
شما اول پنجررو ساختی، بعد پاکش کردی، حالا emwin میرسه به delay ، سرجمع کاری برای انجام نداره چون قبل از اینکه برسه به delay شما پنجررو delete کردی. دور دوم که while اجرا بشه اصلا میکروت هنگ میکنه فک کنم چون هندلی که وجود نداره رو میخواد پاک کنه، هنگم نکنه شما شاهد اتفاق خاصی رو lcd نحواهی بود.

yraeisi: با چه میکرویی کار میکنی؟ تو صفحات قبل پورت کردن lcd آموزش داده شده(نمونه با ssd هم تا جای که یادمه هست)، شما اول باید lcd یت رو جدا راه بندازی، بعد چند تا تابعشو به emwin بدی که توضیح داده شده، از رابط flex color هم استفاده کن. مشکل کجاست؟

titery
03-08-2013, 12:07
منظورم اینه که به محظ ساختن کیبورد دیگه برنامه دستورات نوشته شده رو اجرا نمیکنه اون دستور deldete هم برای این گذاشتم که نشون میده اون خط اجرا نمیشه(در واقعه اصلا وارد while نمیشه)چون با وجود این خط کیبورد داره کار میکنه.انگاری که به محظ ساخت پنجره وارد یک GUI_Delay بی نهایت میشه که کارهایی که مربوط به کال بک ها هستند اجرا میشوند و دیگر درون حلقه while نمیشه

titery
03-08-2013, 13:06
بالاخره فهمیدم مشکل از چی بود به جای استفاده از

hWin = GUI_CreateDialogBox(_aDialogkeyboard, GUI_COUNTOF(_aDialogkeyboard), &_cbDialogkeyboard, WM_HBKWIN, 0, 0);
از این استفاده کرده بودم
hWin = GUI_ExecDialogBox(_aDialogkeyboard, GUI_COUNTOF(_aDialogkeyboard), &_cbDialogkeyboard, WM_HBKWIN, 0, 0);
-یک سوال اینکه در هر فایل اسم های تکراری با آدی های یوزر تکراری استفاده شده مشکلی پیش نمیاید یعنی امکان نداره حالتی برای میکرو پیش بیاد که قاطی کنه یا باید اینها رو عوض کنیم

sjafarim
03-08-2013, 15:09
خداروشکر حل شد.
من تازه فایلتو گرفته بودم داشتم نگاش میکردم.
یه چیزم حواست باشه، تو شبیه سازی، gui_delay اصلا مهم نیست چون از ساختار سیستم عاملی استفاده می کنه.
منظورت از "هر فایل" اپلیکیشن های متفاوته؟
تو چند تا ویندوز نمیشه از id های تکراری استفاده کرد خواصشون قاطی میشه...

titery
03-08-2013, 16:11
sjafarim (You can see links before reply):منظورت از "هر فایل" اپلیکیشن های متفاوته؟
منظورم مثلا ایجاد چند ویندوز با ویدجت های مختلف توسط gui_builder هست که در هر ویندوز آی دی ها از GUI_ID_USER + 0x00 aشروع میکنه البته من تا حالا مشکلی ندیدم ولی باز هم من دستی تغییر میدهم.

sjafarim
03-08-2013, 17:35
اگر همزمان استفاده نشن مشکلی نداره، یعنی مثلا یه ویندوزو delete کنی بعد ویندوز بعدیو بسازی، ولی اگه همزمان ویندوزات باز باشن قاطی میشه...

sjafarim
05-08-2013, 17:11
سلام دوستان
من میخوام درایور LDS285 رو که توسط emwin پشتیبانی نمیشه باهاش مچ کنم، روش کار چجوریه؟ راهنمای emwin خیلی مبهم این قضیرو توضیح داده.

لینک دانلود emwin ورژن 5.2 :
You can see links before reply

m_electronic
09-08-2013, 22:28
با سلام
یه سوال کلی و ابتدایی داشتم.
آیا نرم افزار emwin نرم افزار مستقلی هست (از لحاظ برنامه نویسی و پروگرام) یا بایستی در کنار keil و... بکار رود؟
نحوه کار با این نرم افزار ( طراحی برنامه و پروگرام از طریق پروگرامر ) از کجا باید شروع کرد؟


با تشکر

sjafarim
10-08-2013, 02:17
مستقل از محیط برنامه نویسیه و قطعا هیچ ربطی به پروگرامرت هم نداره، تاپیکو از اول مطالعه کنید توضیحات کاملی درباره راه اندازی و نحوه ساخت gui مهندس ناصری نوشتن.
در کل یه کتابخونه وسیعه، شما باید نحوه استفاده از این کتابخونرو یاد بگیری چه برنامتو تو notepad بنویسی چه Eclipse، مهم اینه که آخر سر کامپایل بشه...

titery
15-08-2013, 10:09
این یک ساعت آنالوگ هست که میتونید ازش استفاده کنید
همچنین یک فایل فونت که ترکیب b_mitra فارسی با Plantagenet Cherokee انگلیسی که اعداد فارسی انگلیس رو با هم داره و کاراکتر های اضافی فونت که باعث اشغال حافظه میشه حذف شده
در ضمن emwin5.22 هم آمد.کسی نمیدونه که تغییرات نسبت به ورژن های قبلی چیه و کجا اعلام میشه؟

sjafarim
15-08-2013, 15:55
دوستان راجع به درایورهایی که emwin مستقیم ساپورت نمیکنه کسی تجربه ای نداره؟

این تفاوتایی که تو دیتاشیت 2.2 نوشته:

AS Various corrections.
New chapter 11 ’Movies’ added.
Chapter 12 ’Colors’
- New color conversion GUICC_8 added.
Chapter 13 ’Memory Devices’
- New function GUI_MEMDEV_BlendWinBk() added.
- New function GUI_MEMDEV_BlurAndBlendWinBk() added.
- New function GUI_MEMDEV_BlurWinBk() added.
- New function GUI_MEMDEV_CreateBlurredDevice32() added.
- New function GUI_MEMDEV_CreateBlurredDevice32HQ() added.
- New function GUI_MEMDEV_CreateBlurredDevice32LQ() added.
- New function GUI_MEMDEV_PunchOutDevice() added.
- New function GUI_MEMDEV_RotateHQHR() added.
- New function GUI_MEMDEV_RotateHR() added.
- New function GUI_MEMDEV_SetBlurHQ() added.
- New function GUI_MEMDEV_SetBlurLQ() added.
Chapter 16 ’ Widgets’
- Added notification messages sent by the IMAGE widget.
- Added notification messages sent by the TEXT widget.
- New function GRAPH_SetAutoScrollbar() added.
- New function GRAPH_GetScrollValue() added.
- New function GRAPH_SetScrollValue() added.
- New function ICONVIEW_SetIconAlign() added.
- New function LISTWHEEL_GetItemFromPos() added.
- New function MULTIEDIT_SetFocussable() added.
- New function MULTIPAGE_GetPageText() added.
- New function TREEVIEW_ScrollToSel() added.
- New section 16.1.2 ’Custom widgets’ added.
Chapter 25 ’Sprites’
- New function GUI_SPRITE_SetLoop() added.
- New function GUI_SPRITE_StartAnim() added.
- New function GUI_SPRITE_StopAnim() added.
Chapter 27 ’Antialiasing’
- New function GUI_AA_FillRoundedRect() added.
- New function GUI_AA_FillRoundedRectEx() added.
- New function GUI_AA_DrawRoundedRect() added.
- New function GUI_AA_DrawRoundedRectEx() added.
Chapter 29 ’Display drivers’
- New display driver GUIDRV_UC1698G added.
- Support for Solomon SSD1306 added to GUIDRV_SPage.
Chapter 33 ’Timing- and execution-related functions’
- New function GUI_TIMER_Create() added.
- New function GUI_TIMER_Delete() added.
- New function GUI_TIMER_Restart() added.
- New function GUI_TIMER_SetPeriod() added.

مهم تریناش به نظر من پخش فیلم و تایمر مخصوص gui هست، جالبه...

mansoory
17-08-2013, 11:04
ورژن 5.22 رو از lpcware دانلود کردم.
یک نکته ای که تابحال بهش توجه نکرده بودم اینه که این نسخه های سایت lpcware نسخه light هست.
LE که در نام کتابخانه های اون اومده مخفف LIGHT EDITION است.
ولی نسخه ای که در KEIL وجود داره ظاهرا PROاست.
SEGGER Microcontroller - Embedded Software Solutions - Pricelist emWin (You can see links before reply)

microprocesor_2002
20-08-2013, 10:41
سلام به همه ....
آقا یه پروژه میزارم که هم توش nand راه اندازی شده هم ram خارجی .... ببینید چطوری میشه با emwin باهاش کار کرد که راندمان بالا بره ..... منم یکم سرم خلوت بشه روش کار میکنم .....

mori64
21-08-2013, 18:40
اینم emwin520 برای کوره برد همراه با تاچ و موس.ولی من هنوز نفهمیدم چرا سرعت رفرش صفحه در ورژن 5.16 داخل سی دی کوره برد سرعتش خیلی بیشتر از 5.18 و 5.20 هست.
start520_coreboard(4).rar (You can see links before reply)

شما بعضی از فایلهای ورژن قبلی رو استفاده کردید علت خاصی داشت.

من خودم هر کاری کردم نتونستم ورژن 5.2 رو بالا بیارم با اینکه تغیرات لازم برای سخت افزار
(emc , lcd ) رو مثل نسخه قبلی دادم .

البته همین ورژنی که شما گزاشتید رو بردم تست کردم جواب داد .
ولی سیمولیشنی که گزاشتید ارور میده !

titery
23-08-2013, 15:58
شما بعضی از فایلهای ورژن قبلی رو استفاده کردید علت خاصی داشت.

من خودم هر کاری کردم نتونستم ورژن 5.2 رو بالا بیارم با اینکه تغیرات لازم برای سخت افزار
(emc , lcd ) رو مثل نسخه قبلی دادم .

البته همین ورژنی که شما گزاشتید رو بردم تست کردم جواب داد .
ولی سیمولیشنی که گزاشتید ارور میده !
برای تطبیق 520 برای کوره برد از اون ها استفاده کردم.
برای سیمولسشن باید از نسخه که هیچ تغییراتی در آن اعمال نکردی استفاده کن.

dmco
24-08-2013, 00:31
سلام به همه اساتید. من میخوام از emwin واسه نمایش عکس بخ اندازه کل السیدی 7 یعنی 800*480 پیگسل با میکرو 1788 استفاده کنم. مثالهای داخل کوربورد وقتی میخواد صفحه رو رفرش کنه کامل دیده میشه که از بالا شروع میکنه تا پایین. ولی واسه پروژه من نباید اینجوری باشه و باید عکس یه دفه ظاهر چیزی شبیه نمایش عکس روی موبایل یا تبلت یا کامپیوتر). دوستانی که تچربه دارن لطفا راهنمایی کنن که emwin با 1788 میتونه این کار رو با سرعت مورد نظر واسه من انجام بده؟ یا در حدی هست کهدقابل اغماض باشه؟ اگه بخواد از رو sd لود کنه چطور؟ میخوام بدونم روش وقت بزارم یا برم سراغ چیزای دیگه(مثلا marsboard). ممنون از همه

mansoory
24-08-2013, 09:39
سلام به همه اساتید. من میخوام از emwin واسه نمایش عکس بخ اندازه کل السیدی 7 یعنی 800*480 پیگسل با میکرو 1788 استفاده کنم. مثالهای داخل کوربورد وقتی میخواد صفحه رو رفرش کنه کامل دیده میشه که از بالا شروع میکنه تا پایین. ولی واسه پروژه من نباید اینجوری باشه و باید عکس یه دفه ظاهر چیزی شبیه نمایش عکس روی موبایل یا تبلت یا کامپیوتر). دوستانی که تچربه دارن لطفا راهنمایی کنن که emwin با 1788 میتونه این کار رو با سرعت مورد نظر واسه من انجام بده؟ یا در حدی هست کهدقابل اغماض باشه؟ اگه بخواد از رو sd لود کنه چطور؟ میخوام بدونم روش وقت بزارم یا برم سراغ چیزای دیگه(مثلا marsboard). ممنون از همه

سلام. کار emwin ساخت و مدیریت پنجره هاست. و کلا یک رابط گرافیکی است نه چیزی که شما دنبالش هستید.

sjafarim
24-08-2013, 11:13
سلام حق با مهندس منصوریه.
چیزی ک شما مد نظرته وابسته به سرعت خواندن و دسترسی cpu به داده های عکس و سرعت انتقال اونها به lcd داره. بهتره عکس حتی اگر تو sd ذخیره شده ابتدا کامل خونده بشه و در رم emc (یا اگر جا بشه داخلی) قرار بگیره بعد ازونجا لود بشه تو lcd.
رابط بین lcd و میکرو هم هرچه پارالل تر بهتر، یعنی از 18 بیتی موازی استفاده کن بالفرض.
تابع مورد استفاده درایورت هم بهینه کن ازین نظر که داده ها رو به صورت بلوکی به lcd بفرسته برا نمایش عکس.
اینا رعایت بشه با 1788 تصویر سریعی میتونی داشته باشی.
:wink:

skiboys
24-08-2013, 15:13
سلام به همه اساتید. من میخوام از emwin واسه نمایش عکس بخ اندازه کل السیدی 7 یعنی 800*480 پیگسل با میکرو 1788 استفاده کنم. مثالهای داخل کوربورد وقتی میخواد صفحه رو رفرش کنه کامل دیده میشه که از بالا شروع میکنه تا پایین. ولی واسه پروژه من نباید اینجوری باشه و باید عکس یه دفه ظاهر چیزی شبیه نمایش عکس روی موبایل یا تبلت یا کامپیوتر). دوستانی که تچربه دارن لطفا راهنمایی کنن که emwin با 1788 میتونه این کار رو با سرعت مورد نظر واسه من انجام بده؟ یا در حدی هست کهدقابل اغماض باشه؟ اگه بخواد از رو sd لود کنه چطور؟ میخوام بدونم روش وقت بزارم یا برم سراغ چیزای دیگه(مثلا marsboard). ممنون از همه
همین طور که اقا جعفری گفتند چیزی که می خواهید ربطی به emwin نداره شما کارهایی که دوستان گفتند انجام دهید یعنی انتقال از روی مموری به رم داخلی بریزید و با روش بلوکی پشت سرهم نشانش دهید البته فرمت شما نیز خیلی مهمه اگر bmp با این روش جواب نداد باید برید سراغ فرمت های دیگر مثل JPG

titery
26-08-2013, 00:14
همین طور که اقا جعفری گفتند چیزی که می خواهید ربطی به emwin نداره شما کارهایی که دوستان گفتند انجام دهید یعنی انتقال از روی مموری به رم داخلی بریزید و با روش بلوکی پشت سرهم نشانش دهید البته فرمت شما نیز خیلی مهمه اگر bmp با این روش جواب نداد باید برید سراغ فرمت های دیگر مثل JPG
سلام این روش بلوکی برای 1788 هم هست یا نه فقط مال درایور 1963 هستش.
و این که فرمودید bmp نمیده یعنی تو کدوم قسمت کم میاره ؟چون ظاهر قضیه اینه که داریم از رم داخلی عکس را لود میکنیم.

sjafarim
26-08-2013, 01:23
روش بلوکی به این معنیه که برای ارسال دیتا پیکسل ها به جای اینکه برای هر پیکسل یک فرمان سپس یک داده ارسال بشه، یک فرمان برای بلوک ارسال شده سپس کل داده های ان بلوک پشت سر هم ارسال میشه،اینجوریه که سرعت زیاد میشه،مربوط به میکرو نیست بلکه روش انتقالیه که مربوط به درایور lcd هست.
در مورد bmp هم خدمتتون بگم که در واقع فرمت عکس تا اونجایی در سرعت نقش داره که شما هنوز داده های rgb پیکسل هارو از تو فایل بیرون نکشیده باشید و در رم قرار داده نباشید.یعنی فرمت فایل فقط زمان decode کردن فایل رو تغییر میده، هرچه از فرمتی با compression کمتر برای نگهداری فایل استفاده کنید قطعا زمان decode کردن کمتر خواهد بود در ازای حافظه مورد نیاز بیشتر(معمولا!) برای نگهداری فایل.
سریعترین حالت نگهداری عکس همون برنامه هایی هست که خودشون عکسو میگیرن و یک فایل هدر با داده های پیکسلی 8-16-24 یا ... بیتی بهتون تحویل میدن.

skiboys
26-08-2013, 13:20
سلام این روش بلوکی برای 1788 هم هست یا نه فقط مال درایور 1963 هستش.
و این که فرمودید bmp نمیده یعنی تو کدوم قسمت کم میاره ؟چون ظاهر قضیه اینه که داریم از رم داخلی عکس را لود میکنیم.
توضیحات کامل را اقای جعفری دادن من چند نکته اضافه می کنم
من با1768 کار می کنم و 1788 ندارم نمی دونم سرعت خودند از nand flash یا norflash چقدره در 1768 هنگامی که من از روی فلش داخلی عکس لود می کنم برای lcd320*240 سرعت خیلی خوبه و هیچ گونه پرشی ندارم ولی چون حافظه ام محدوده وچندتا عکس بیشتر نمی شه به این روش پخش کرد از SD استفاده می کنم که در این قسمت خواندن از SD است که وقت زیادی می گیره:0013: برای همین رفتم سراغ JPG و دارم یه کارهایی می کنم زمانی که تمام شد برنامه را در قسمت پخش فیلم که در امضا من هم هست قرار می دهم درضمن در ان تاپیک در مورد روش بلوکی و تابعش صحبت کردیم شما تست کنید ببیند برای این LCD 7 inch شما چقدر طول می کشهlcd را رنگ امیزی کنه:0013:

titery
26-08-2013, 15:09
توضیحات کامل را اقای جعفری دادن من چند نکته اضافه می کنم
من با1768 کار می کنم و 1788 ندارم نمی دونم سرعت خودند از nand flash یا norflash چقدره در 1768 هنگامی که من از روی فلش داخلی عکس لود می کنم برای lcd320*240 سرعت خیلی خوبه و هیچ گونه پرشی ندارم ولی چون حافظه ام محدوده وچندتا عکس بیشتر نمی شه به این روش پخش کرد از SD استفاده می کنم که در این قسمت خواندن از SD است که وقت زیادی می گیره:0013: برای همین رفتم سراغ JPG و دارم یه کارهایی می کنم زمانی که تمام شد برنامه را در قسمت پخش فیلم که در امضا من هم هست قرار می دهم درضمن در ان تاپیک در مورد روش بلوکی و تابعش صحبت کردیم شما تست کنید ببیند برای این LCD 7 inch شما چقدر طول می کشهlcd را رنگ امیزی کنه:0013:
سلام این سرعت رو با emwin بررسی کنم یا بدون emwin?
لطفا به درایور 1788 که برای emwin هست یک نگاه بیاندازید و اگر قابلیت ارسال بلوکه ای را دارا میباشد اعلام بفرمایید که تو این زمینه برم دنبالش و روش کار کنم

skiboys
26-08-2013, 18:56
سلام این سرعت رو با emwin بررسی کنم یا بدون emwin?
لطفا به درایور 1788 که برای emwin هست یک نگاه بیاندازید و اگر قابلیت ارسال بلوکه ای را دارا میباشد اعلام بفرمایید که تو این زمینه برم دنبالش و روش کار کنم
فکر نکنم این موضوع ربطی به emwin داشته باشه شما باید برنامه ای در هدر lcd خود بنویسید که به صورت بلوکی پیکسل ها را پر کنه برای مثال برنامه ای شبیه این:

void LCD_write_pic_fast (int x0, int y0 , const unsigned short *image) { unsigned int i; LCD_WindowMax(); LCD_SetCursor(0,0); LCD_CS(0) wr_cmd(0x22); wr_dat_start(); for(i = 0; i < (WIDTH*HEIGHT); i++) wr_dat_only(image[i+2]); wr_dat_stop(); }



به نظر من کار را ساده تر کنید بهتره ابتدا بدون emwin تست کنید بعد که جواب گرفتید emwin هم اضافه کنید:wink:
دوستان من هنوز وقت نکردم emwin را راه اندازی کنم اگر مثالی پورت شده کسی برای lpc1768 داره ممنون می شم در این قسمت قرار بدهید تا ما هم بتونیم سریع تر پیش بریم:hi:

titery
26-08-2013, 23:07
دوستان کسی با دستور زیر آشنایی داره؟
برای رسم از حافظه خارجی مثلا mmc ابتدا باید توسط نرم افزار تبدیل کد به عکس emwin به یک فایل تکست با فرمت عکس مثلا JPEG به صورت stream تبدیل و داخل مموری قرار داده و با استفاده از دستور زیر

int GUI_GET_DATA_FUNC(void * p, const U8 ** ppData, unsigned NumBytesReq,
U32 Off);
مکان عکس رو به دستور رسم عکس از حافظه خارجی مثلا دستور زیر

int GUI_JPEG_DrawEx(GUI_GET_DATA_FUNC * pfGetData, void * p,
int x0, int y0);
بدیم. خیلی تو نت دنبال این گشتم که چطور میتونم فایل استریم رو به این تابع GUI_GET_DATA_FUNC معرفی کنم یعنی آرگومان های ورودی رو چی بزارم. البته چند وقت پیش تو نت یک مثال تو یک سایتی دیدم ولی امروز چندین ساعت گشتم ولی نتونستم اون رو پیدا کنم کهفکر کنم به جای آرگومان اولی یک چیزی شبیه openfile نوشته بود.یکسری توضیحات صفحه 174 داکیومنت هست ولی چیزی متوجه نشدم و ساختار داخلی این تابع رو هم نوشته

Example (BMP, GIF and JPEG)
The following code excerpt shows how to implement a ’GetData’ function for usage
with BMP, GIF and JPEG data:
int APP_GetData(void * p, const U8 ** ppData, unsigned NumBytes, U32 Off) {
static char _acBuffer[0x200];
HANDLE * phFile;
DWORD NumBytesRead;
phFile = (HANDLE *)p;
//
// Check buffer size
//
if (NumBytes > sizeof(acBuffer)) {
NumBytes = sizeof(acBuffer);
}
//
// Set file pointer to the required position
//
SetFilePointer(*phFile, Off, 0, FILE_BEGIN);
//
// Read data into buffer
//
ReadFile(*phFile, acBuffer, NumBytes, &NumBytesRead, NULL);
//
// Set data pointer to the beginning of the buffer
//
*ppData = acBuffer;
//
// Return number of available bytes
//
return NumBytesRead;
من mmc رو با کتابخانه کیل راه انداختم حال اگه دوستان بتونن نظری بدهند که من با سخت افزار تست کنم:125:

kamikazi
27-08-2013, 01:04
مهندس دی کمپرس کردن یه عکس جی پی جی خیلی زمانبر هستش شما چرا از توابع fat برای این میکرو استفاده نمیکنید عکس رو بصورت فایل باینری روی اس دی کارت دخیره کنید و از روی اس دی کارت فایلو باز کنید و 16 بیت 16 بیت بخونید و روی اس دی رم بریزید با dma و عکسو روی ال سی دی نشون بدید من با توابع دیکد جی پیگ با اس تی ام 32 کار کردم سرعتش تعریفی نداره

sjafarim
27-08-2013, 01:07
دقیقا منم همینو میگم،نمیدونم چرا بچه ها اینقد دنباله decode کردن هستن!
به نظر من فقط زمانی این کار توجیه داره که دستگاه مستقیما از کاربر قرار باشه عکس دریافت کنه و نمایش بده.

titery:
من اون بخشو خوندم، باهاش کار نکردم ولی واقعا بد نوشتنش، کاملا گنگه، پوینتراش معلوم نیس چجوریه قضیش، من که نحوه عملکردشو نفهمیدم ...
در مورد ارسال بلوکی در emwin هم تابع LcdWriteDataMultiple یا همان pfWriteM16_A1 به احتمال قوی مخصوص ارسال بلوکیه.
نحوه عملکرد توابع سطح پایین درایور های lcd در emwin هم قابل تغییر (فهم!) نیستن.

titery
27-08-2013, 09:54
مهندس دی کمپرس کردن یه عکس جی پی جی خیلی زمانبر هستش شما چرا از توابع fat برای این میکرو استفاده نمیکنید عکس رو بصورت فایل باینری روی اس دی کارت دخیره کنید و از روی اس دی کارت فایلو باز کنید و 16 بیت 16 بیت بخونید و روی اس دی رم بریزید با dma و عکسو روی ال سی دی نشون بدید من با توابع دیکد جی پیگ با اس تی ام 32 کار کردم سرعتش تعریفی نداره
من زیاد فرمت خاصی مد نظرم نیست(دیدم تو فروم بیشتر سر JPEG بحث شده من این مثالش رو گفتم) چون با همین نرم افزار emwin فرمت های دلخواه از جمله PNG,BMPو..میشه تبدیل کرد.یکی از مزیت های دستوری که گفتم موقع رسم یک لاین از پیکسل ها را لود و بعد رسم میکنه و اگر میکرو حافظه(حتی رم)کمی مثل 1768 داشته باشه قایل استفاده هست درست سرعت رسم پایین میاد ولی بستگی به این داره کجا بخواهیم استفاده کنیم (که حتی آهسته رسم شدن میتونه خودش یک افکت باشه).حالا بازم اگه کسی بتونه کمک کنه تو این زمینه عالی میشه؟
مهندس رحیمی در مورد توابع dma که فرمودید میشه یکم توضیح دهید کجا بهش اشاره(مطلب) شده؟

titery
27-08-2013, 10:36
سرعت نمایش رو تست کردم بدین صورت که 80 بار صفحه رو از رنگ های مختلف fill کردم و زمان کل رو تقسیم بر تعداد کردم:
بدون emwin در السیدی 7 اینچ هربار تقریبا 175 میلی ثانیه
با emwin قایل تست نبود چون وقتی دستور رسم بعدی رو میدادم ادامه صفحه که هنوز از رنگ قبل پر نشده بود رو رنگ جدید پر میکرد

skiboys
27-08-2013, 12:21
مهندس دی کمپرس کردن یه عکس جی پی جی خیلی زمانبر هستش شما چرا از توابع fat برای این میکرو استفاده نمیکنید عکس رو بصورت فایل باینری روی اس دی کارت دخیره کنید و از روی اس دی کارت فایلو باز کنید و 16 بیت 16 بیت بخونید و روی اس دی رم بریزید با dma و عکسو روی ال سی دی نشون بدید من با توابع دیکد جی پیگ با اس تی ام 32 کار کردم سرعتش تعریفی نداره
سلام اقای رحیمی ما پیش دوستانی مثل شما داریم درس پس می دیم :hi:
بله بهترین حالت اینه که مستقیم از SD بریزیم داخل lcd بدون پردازش و با استفاده از DMA
شاید من زیاد گیر دادم به JPG:mrgreen: همش از سر کنجکاوی بود که چطور یک عکس BMP به اندازه 125 کیلو حجم داره ولی همون عکس با فورمت JPG به اندازه 25 کیلو می شه و با کیفیت بهتر و اخرش سر از فرمول های ریاضی در اوردم خیلی جاهاش جالب بود و خیلی خوب بود وخیلی جاهاش دیگه سخت شده بود:0013:
در کل اگه JPG هم به صورت بلوکی ریخته بشه سرعت خیلی خوبه شما به صورت پیکسلی با JPG کار کردید؟
ولی همچنان jpg درگیری CPU را داره که پردازش زیادی از CPU می گیره و بقیه کارها مختل می شه
به هر حال دوستان ببخشند اگر صحبت های بی مورد کردم یا پر حرفی کردم

skiboys
27-08-2013, 12:31
دقیقا منم همینو میگم،نمیدونم چرا بچه ها اینقد دنباله decode کردن هستن!

گیرمیدم به یک چیز دیگه ول کن نیستم دیگه:0013:


به نظر من فقط زمانی این کار توجیه داره که دستگاه مستقیما از کاربر قرار باشه عکس دریافت کنه و نمایش بده.

:wink:



نحوه عملکرد توابع سطح پایین درایور های lcd در emwin هم قابل تغییر (فهم!) نیستن.
این یعنی چی؟ یعنی من نمی تونم هدری که خودم نوشتم را به emwin بدم? برای درایور می گم
دوستان یکی یک مثال emwin برای 1768 بده من یک تستی بگیرم cry::

kamikazi
27-08-2013, 12:42
در مورد استفاده از تبدیل شده فایل عکس به باینری خوب خیلی راحته شما هرچی که داری از مموری میخونی در حقیقت اطلاعات پیکسلات هستش بدون اینکه وقتی صرف دیکد کردنو از فرمول رد کردنو این حرفا داشته باشه من این حرکتو با میکرو اس تی ام 32 و با کمک اقا صادق گل پیاده کردم برنامه ای که ایشون برای تبدیل عکس به فایل باینری نوشته بودن محشر بود فقط عکسو بهش میدادم تبدیل به فایل باینری میکردم میریختمش رو اس دی کارت و تو برنامه با توابع فت فایلو باز میکردم و 24 بیت 24 بیت میخوندم و تک تک پیکسلهارو میچیدم کنار هم ولی با توجه به اینکه روش بلوکی سریعتر هستش وقتی که خوندین باید بصورت یه بلوک پشت سر هم اطلاعات رو بفرستین روی ال سی دی اینم یکم مهارت میخواد متاسفانه منم مثل بقیه دوستان برنامه اماده گرفته بودم و این قسمت dma او تو خود برنامه بود و منم چون درست کار میکرد اصلا روش ریز نشدم ولی مطمعننا خروجی تمام برنامه های emwine برای dma پورت شده فقط باید یکم با هدرا سروکله زد فهمید اونجا که داره اطلاعات پیکسلارو نمایش میده از چه طریقی با dma ارتباط داره برقرار میکنه همین نکته خاصی هم نداره ولی زحمت چرا؟؟!!

sjafarim
27-08-2013, 13:20
سلام اقای رحیمی ما پیش دوستانی مثل شما داریم درس پس می دیم :hi:
بله بهترین حالت اینه که مستقیم از SD بریزیم داخل lcd بدون پردازش و با استفاده از DMA
شاید من زیاد گیر دادم به JPG:mrgreen: همش از سر کنجکاوی بود که چطور یک عکس BMP به اندازه 125 کیلو حجم داره ولی همون عکس با فورمت JPG به اندازه 25 کیلو می شه و با کیفیت بهتر و اخرش سر از فرمول های ریاضی در اوردم خیلی جاهاش جالب بود و خیلی خوب بود وخیلی جاهاش دیگه سخت شده بود:0013:
در کل اگه JPG هم به صورت بلوکی ریخته بشه سرعت خیلی خوبه شما به صورت پیکسلی با JPG کار کردید؟
ولی همچنان jpg درگیری CPU را داره که پردازش زیادی از CPU می گیره و بقیه کارها مختل می شه
به هر حال دوستان ببخشند اگر صحبت های بی مورد کردم یا پر حرفی کردم

سلام دانیال جان.
-میدونی چرا jpg حجمش کمتره؟چون الگوریتم داخلی کدینگش دینامیکه، وارد جزئیات نمی خوایم بشیم، compression یه علم خیلیییی مفصلیه، اتفاقا کیفیت jpg اصلا بیشتر از bmp نیست چون میزان lossi بودنش بیشتره یعنی در ازای حجم کمتر اطلاعات بیشتری از عکسو حذف میکنه و بجاش تخمین میزنه با روش های ریاضی.
- jpg مستقیم بصورت بلوکی که نمیشه ریخت، داده های دیکد شده rgb نهایتا به lcd داده میشه و فرمت عکس مهم نیست، فرمت مال قبل دیکد کردنه.
- اصلا پرحرفی و بی مورد نیست، compression فوق العاده جذاب و مهمه، تو مخابرات حرف اولو میزنه، به فرض اگر کدینگی ابداع بشه که فقط روی داده های متنی مثلا rate دو برابر unicode یا ascii داشته باشه، سرعت اینترنتو بدون تغییر سخت افزارهای کل دنیا میشه 2 برابر کرد!:018:


این یعنی چی؟ یعنی من نمی تونم هدری که خودم نوشتم را به emwin بدم? برای درایور می گم
دوستان یکی یک مثال emwin برای 1768 بده من یک تستی بگیرم
- یعنی اینکه شما از هدر درایوری که برا lcd نوشتی فقط توابع خام نوشتن و خواندن یک یا چند داده و دستور رو به emwin معرفی می کنید، اونه که تصمیم میگیره چجوری ازشون استفاده کنه، یعنی کی داده بفرسته، کی دستور بفرسته، چند تا داده بفرسته، داده هارو بلوکی بفرسته یا تکی و ... که اونم طبق اینکه کجا و چقدر از تصویر lcd رو باید تغییر بده تصمیم میگیره.

skiboys
27-08-2013, 15:11
سلام دانیال جان.
- jpg مستقیم بصورت بلوکی که نمیشه ریخت، داده های دیکد شده rgb نهایتا به lcd داده میشه و فرمت عکس مهم نیست، فرمت مال قبل دیکد کردنه.

خیلی ممنون :mrgreen:
منظورم از بلوکی فرستادن jpg این هستش که اون مستطیل هایی که در هنگام decod کردن داریم را یک جا بفرستیم بجای اینکه به صورت پیکسلی رنگ ها را بریزیم، این طوری نمی شه؟

sjafarim
27-08-2013, 17:05
چرا اینجوری تیکه تیکش کنی میشه ولی این تیکه ها کم نیستن هی هم باید پرش کنی بعیده خیلی سریع تر بشه ، همون بهتره کلشو دیکد کنی یه بلوک بفرستی.

dmco
01-09-2013, 10:16
سلام به همه اساتید. من میخوام از emwin واسه نمایش عکس بخ اندازه کل السیدی 7 یعنی 800*480 پیگسل با میکرو 1788 استفاده کنم. مثالهای داخل کوربورد وقتی میخواد صفحه رو رفرش کنه کامل دیده میشه که از بالا شروع میکنه تا پایین. ولی واسه پروژه من نباید اینجوری باشه و باید عکس یه دفه ظاهر چیزی شبیه نمایش عکس روی موبایل یا تبلت یا کامپیوتر). دوستانی که تچربه دارن لطفا راهنمایی کنن که emwin با 1788 میتونه این کار رو با سرعت مورد نظر واسه من انجام بده؟ یا در حدی هست که قابل اغماض باشه؟ اگه بخواد از رو sd لود کنه چطور؟ میخوام بدونم روش وقت بزارم یا برم سراغ چیزای دیگه(مثلا marsboard). ممنون از همه


دقیقا منم همینو میگم،نمیدونم چرا بچه ها اینقد دنباله decode کردن هستن!
به نظر من فقط زمانی این کار توجیه داره که دستگاه مستقیما از کاربر قرار باشه عکس دریافت کنه و نمایش بده.

titery:
من اون بخشو خوندم، باهاش کار نکردم ولی واقعا بد نوشتنش، کاملا گنگه، پوینتراش معلوم نیس چجوریه قضیش، من که نحوه عملکردشو نفهمیدم ...
در مورد ارسال بلوکی در emwin هم تابع lcdwritedatamultiple یا همان pfwritem16_a1 به احتمال قوی مخصوص ارسال بلوکیه.
نحوه عملکرد توابع سطح پایین درایور های lcd در emwin هم قابل تغییر (فهم!) نیستن.

دوست عزیز کاری که من باید انجام بدم دقیقا همینه

sjafarim
02-09-2013, 07:44
سلام
برای نمایش عکس، علاوه بر صرفا نمایش، نیاز به محیط تعاملی گرافیکی با کاربر دارید؟
اگر اره اونوقت برو سراغ emwin که علاوه به ساخت gui تو دیکد کردن هم کمکت کنه ولی اگه فقط نمایشه خودت یه لایبرری بنویس که که فرمتای مختلفو دیکد کنه اینجوری به منابع سخت افزاری کمتری هم نیاز پیدا میکنی.:wink:

dmco
03-09-2013, 10:35
سلام
برای نمایش عکس، علاوه بر صرفا نمایش، نیاز به محیط تعاملی گرافیکی با کاربر دارید؟
اگر اره اونوقت برو سراغ emwin که علاوه به ساخت gui تو دیکد کردن هم کمکت کنه ولی اگه فقط نمایشه خودت یه لایبرری بنویس که که فرمتای مختلفو دیکد کنه اینجوری به منابع سخت افزاری کمتری هم نیاز پیدا میکنی.:wink:
سلام دوست عزیز. آره، نیاز به محیط تعاملی دارم. اونم یه محیط تعاملی خفن!

titery
03-09-2013, 13:21
سلام به دوستان کسی نمیدونه که آرگومان های دستور get data function رو چه چیزی باید گذاشت؟

Alireza2079
16-09-2013, 15:03
سلام دوستان

من به تازگی با EMWIN آشنا شده ام و دیدم که واقعا قدرت مند و کارا می باشد . ولی هنوز بطور کافی به آن مسلط نشده ام بجز اجرای چند تا Demo تقریبا چیزی انجام نداده ام .

تو یه پروژه احتیاج خیلی شدیدی به قابلیت های اون دارم مثلا می خوام چند تا منو بسازم . اگه کسی خوب تسلط داره و می تونه کمک کنه خواهش می کنم اعلام کنه حق زحمت کار نیز محفوظه فقط من یه کمی عجله دارم .

با تشکر

mansoory
17-09-2013, 09:36
سلام دوست عزیز. آره، نیاز به محیط تعاملی دارم. اونم یه محیط تعاملی خفن!

میکرو های cortex-m اونقدر سرعت و حافظه ندارند و برای دیکد کردن تصاویر یا نمایش فیلم بازدهی ضعیفی دارند. شما بهتره بری سراع cortex-a
موفق باشید

yraeisi
26-09-2013, 16:18
با سلام خدمت دوستان
کسی تونسته SSD1963 رو با درایور emWin راه اندازی کنه؟
اگه کسی اطلاعاتی داره ممنون میشم یه کمکی کنه.

microprocesor_2002
01-11-2013, 23:30
سلام به همه.....
من ال سی ذی 7 اینچ رو از فروشگاه خریدم ....
سوالم اینه که : راه اندازیه تاچ ال سی دی 7 اینچ مثل 4.3 هستش یا نه ....
ممنون میشم جواب بدین .....

sjafarim
02-11-2013, 11:41
تاچ های فروشگاه همشون مقاومتی چهار سیمه، یعنی بله همون جوری با xpt2046 یا ads7843 راه اندازیش کن و در آخر رو رنج پیکسلی 7 اینچت در x و y اسکیل کن که واضحه،فقط هرچی سایز تاچت بالاتر میره باید کالیبراسیون بهتری انجام بدی روش مثلا روش ماتریسی به جای کالیبراسیون خطی تا در گوشه ها عملکرد بهتری داشته باشی، البته میزان خطا بسته به جنس تاچ متفاوته و در بدترین حالت خطای لگاریتمی غیر متقارن خواهی داشت که البته امیدوارم این اتفاق نیفته:mrgreen:

mansoory
02-11-2013, 13:08
سلام به همه.....
من ال سی ذی 7 اینچ رو از فروشگاه خریدم ....
سوالم اینه که : راه اندازیه تاچ ال سی دی 7 اینچ مثل 4.3 هستش یا نه ....
ممنون میشم جواب بدین .....

سلام.
من با السیدی 7 و 10 کارش رو دیدم. سرعت اجرا در این السیدی ها کمتره و کالیبراسیون تاچ مقاومتی خوب جواب نمیده. اگه میتونید تاچ خازنی استفاده کنید

بابک رضایی
02-11-2013, 17:34
سلام
ممنون بایت آموزشتون
من بیشتر مطالب رو خوندم یه جورایی متوجه نشدم استارت کار از کجا به کجاست
من 1768 دارم و n96 2.8 میخوام این رابط گرافیکی رو تست کنم
فایلهایی که جناب منصوری گفتن رو دانلود کردم و وقتی با ویژوال استودیو بازمیکنم ارور میده
یه مثال ندارین که روی اون کار کنم ؟
البته یه جایی هم گفتین که با این میکرو نمیشه!

mansoory
03-11-2013, 09:34
سلام
ممنون بایت آموزشتون
من بیشتر مطالب رو خوندم یه جورایی متوجه نشدم استارت کار از کجا به کجاست
من 1768 دارم و n96 2.8 میخوام این رابط گرافیکی رو تست کنم
فایلهایی که جناب منصوری گفتن رو دانلود کردم و وقتی با ویژوال استودیو بازمیکنم ارور میده
یه مثال ندارین که روی اون کار کنم ؟
البته یه جایی هم گفتین که با این میکرو نمیشه!

سلام.
استارت کار در اینه که بتونید در ابتدا السیدی رو خارج از emwin راه اندازی کنید(initialization). بعد باید از datasheet توابعی رو که مسوول ارسال فرمان، یک داده و بلوکی از داده ها هستند رو بنویسید.سپس با توجه به توضیحاتی که قبلا گفته شده این توابع رو به emwin معرفی کنید و تابع راه اندازی ال سی دی رو هم در جای مناسب قرارش بدهید...
visual studio چه خطایی میده؟ آیا با برنامه نویسی در visual studio آشنایی دارید؟ سمپلهای موجود برای ال سی دی که شما استفاده می کنید وجود نداره. بنابراین سعی کنید از فکرش بیرون بیایید و تلاش کنید تا Emwin رو راه اندازی کنید. موفق باشید

بابک رضایی
03-11-2013, 11:51
ممنون از پاسختون
من یه مثال از segger دانلود کردم که شروع کنم اما همون اولش تو ویژوال خطا میده

Error 1 error LNK1123: failure during conversion to COFF: file invalid or corrupt SimulationTrial

توی آموزش همون اول گفتین که فایل رو دانلود کنید و در ویژوال اجرا کنید که قبل از اجرا با built کردن خطا بالا رو میده

mansoory
03-11-2013, 13:55
ممنون از پاسختون
من یه مثال از segger دانلود کردم که شروع کنم اما همون اولش تو ویژوال خطا میده

Error 1 error LNK1123: failure during conversion to COFF: file invalid or corrupt SimulationTrial

توی آموزش همون اول گفتین که فایل رو دانلود کنید و در ویژوال اجرا کنید که قبل از اجرا با built کردن خطا بالا رو میده
برای شبیه سازی من از این پروژه استفاده کرده ام:
You can see links before reply

از visual studio برای شبیه سازی استفاده میشه. برای برنامه نویسی روی میکرو به صفحه 6 مراجعه کنید.
باتشکر

mori64
16-11-2013, 21:28
سلام
فرض کنید چند صفحه با gui builder ساختید .
بهترین روش برای نمایش و بستن این صفحات چیه ؟

من روی هر صفحه یک کلید گزاشتم و درکال بک کلید فانکشن ساخت
صفحه دیگر رو گزاشتم .
در بعضی از موارد صفحه قبلی یک بار بسته و دوباره باز میشود
در بعضی موارد هم با چند بار باز و بسته شدن صفحات بعد از باز
شدن یک صفحه تاچ تا چند ثانیه عمل نمیکند .


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

sjafarim
16-11-2013, 22:20
سلام
کاری که کردی درسته، فقط باید حواست باشه یک صفحه یک بار ساخته بشه نه چند بار.
به عنوان مثال :
-صفحه 1 در حال اجراست، یه کلید زده میشه و من تو کالبکش صفحه 2 رو میسازم.
-حالا به صورت خودکار فوکوس رو صفحه 2 قرار داره پس صفحه 2 نمایش داده میشه، پس دیگه حق نداری کال بکی از صفحه 1 رو فراخوانی کنی، این کار باعث این میشه که صفحه 1 نمایش داده بشه.
- (میتونی خودت فوکوس رو دستی با دستورای فوکوس یا show ها عوض کنی تا معلوم کنی کوم صفحه رو باشه)
- توجه داشته باش که صفحه 1 الان از بین نرفته، فقط پشت صفحه 2 هست.
- کارت با صفحه 2 تموم میشه و میخوای برگردی به صفحه 1. 2 تا راه داری، اول:صفحه 2 رو از بین ببری و چون آخرین هندل نمایش داده شده مربوط به صفحه 1 هست خود به خود صفحه 1 نمایش داده میشه، دوم: بدون اینکه صفحه 2 رو از بین ببری (delete) فقط فوکوس رو به صفحه 1 بدی.
- از بین نبردن پنجره ها و سویچ بوسیله فوکوس بینشون باعث میشه عملیات تعویض پنجره سریع تر انجام بشه و داده های محلیشون از بین نره اما رم رو بیشتر اشغال میکنه این کار.
- توصیه میشه که برای سویچ بین پنجره ها پنجره جدید ساخته بشه بعد پنجره قبل پاک بشه (به ترتیب این عملیات دقت کن چون اگه رعایت نکنی یک پنجره در حالی که کال بکش در حال اجراست پاک میشه که باعث هنگ کردن emwin میشه) بعد وقتی خواستی برگردی به پنجره قبل باز همین طور جدیدرو بساز و قبلیو پاک کن.
- به عنوان مثال من تو پنجره 1 هستم، بدون اینکه 1 رو پاک کنم 2 رو میسازم، بعد میخوام برگردم، اینجا اگه دوباره 1 رو create کنی قاطی میکنه اگه دقت نکنی بعضی نکات رو!
موفق باشی.

mori64
17-11-2013, 19:03
سلام
کاری که کردی درسته، فقط باید حواست باشه یک صفحه یک بار ساخته بشه نه چند بار.
به عنوان مثال :
-صفحه 1 در حال اجراست، یه کلید زده میشه و من تو کالبکش صفحه 2 رو میسازم.
-حالا به صورت خودکار فوکوس رو صفحه 2 قرار داره پس صفحه 2 نمایش داده میشه، پس دیگه حق نداری کال بکی از صفحه 1 رو فراخوانی کنی، این کار باعث این میشه که صفحه 1 نمایش داده بشه.
- (میتونی خودت فوکوس رو دستی با دستورای فوکوس یا show ها عوض کنی تا معلوم کنی کوم صفحه رو باشه)
- توجه داشته باش که صفحه 1 الان از بین نرفته، فقط پشت صفحه 2 هست.
- کارت با صفحه 2 تموم میشه و میخوای برگردی به صفحه 1. 2 تا راه داری، اول:صفحه 2 رو از بین ببری و چون آخرین هندل نمایش داده شده مربوط به صفحه 1 هست خود به خود صفحه 1 نمایش داده میشه، دوم: بدون اینکه صفحه 2 رو از بین ببری (delete) فقط فوکوس رو به صفحه 1 بدی.
- از بین نبردن پنجره ها و سویچ بوسیله فوکوس بینشون باعث میشه عملیات تعویض پنجره سریع تر انجام بشه و داده های محلیشون از بین نره اما رم رو بیشتر اشغال میکنه این کار.
- توصیه میشه که برای سویچ بین پنجره ها پنجره جدید ساخته بشه بعد پنجره قبل پاک بشه (به ترتیب این عملیات دقت کن چون اگه رعایت نکنی یک پنجره در حالی که کال بکش در حال اجراست پاک میشه که باعث هنگ کردن emwin میشه) بعد وقتی خواستی برگردی به پنجره قبل باز همین طور جدیدرو بساز و قبلیو پاک کن.
- به عنوان مثال من تو پنجره 1 هستم، بدون اینکه 1 رو پاک کنم 2 رو میسازم، بعد میخوام برگردم، اینجا اگه دوباره 1 رو create کنی قاطی میکنه اگه دقت نکنی بعضی نکات رو!
موفق باشی.


تشکر
من نتونستم از delet window استفاده کنم ولی با close dialog جواب داد.

titery
19-11-2013, 13:42
سلام
مشکل از اینجا پیش میاد که بعد پاک کردن یک ویندز در چند خط بعد دوباره داریم دستوری در باره اون ویندوز استفاده میکنیم(منظورم در تابع کال بک هست) البته در چنین مواقعی وقتی به delete windows یا close windows برسه هنگ میکنه.
واگر جایی close dialog کار کنه delete windows هم کار میکنه(خودم دارم باهش کار میکنم ویندوزام هم دیالوگ هست)

mohsenarm
27-11-2013, 16:51
دوستان
من دیگه سر درد گرفتم از بس این تاپیک را بالا پایین کردم!
من برد زیر را از فروشگاه خریداری کردم

NXP ARM LPC1768 DevBoard Cortex-M3+ 3.2"touchscreen LCD,with JLink On board (You can see links before reply)

یکی یک مثال جمع و جور بهم بده لود کنم تو این برد و خورجی داشته باشم
یک مثال که کار کنه داشته باشم بقیش حله
لطفا کمک کنید

mansoory
28-11-2013, 09:35
دوستان
من دیگه سر درد گرفتم از بس این تاپیک را بالا پایین کردم!
من برد زیر را از فروشگاه خریداری کردم

NXP ARM LPC1768 DevBoard Cortex-M3+ 3.2"touchscreen LCD,with JLink On board (You can see links before reply)

یکی یک مثال جمع و جور بهم بده لود کنم تو این برد و خورجی داشته باشم
یک مثال که کار کنه داشته باشم بقیش حله
لطفا کمک کنید

چرا سردرد فرزندم؟ در این تایپک هر کسی تجربیات و دونسته هاش رو قرار داده. هر کسی بایک برد و السیدی کار کرده (اکثرا با LPC1788 Coreboard). من با LPC1768 و LCD ili9320 SPI اون رو راه اندازی کردم. کسی نمیتونه مثالی به شما بده که بدون تغییر بریزی رو میکرو و جواب بده.
باید خودت راهش بندازی و قدم اول هم اینه که شما فایلهای راه انداز السیدی و تاچ رو داشته باشی و خارج از emwin اونها رو تست کرده باشی.

در سی در همراه بردشما فایلهای نمونه ای هست که میتونی برای راه اندازی emwin ازش استفاده کنی
این مثالها رو ببینید:
LCD
Touch1289
ucosII

در این مثالها ucosii خیلی شبیه با emwin است و می تونی ازش برای راه اندازی emwin استفاده کنی.
شروع کن من هم کمکت می کنم

mohsenarm
28-11-2013, 18:52
چرا سردرد فرزندم؟ در این تایپک هر کسی تجربیات و دونسته هاش رو قرار داده. هر کسی بایک برد و السیدی کار کرده (اکثرا با LPC1788 Coreboard). من با LPC1768 و LCD ili9320 SPI اون رو راه اندازی کردم. کسی نمیتونه مثالی به شما بده که بدون تغییر بریزی رو میکرو و جواب بده.
باید خودت راهش بندازی و قدم اول هم اینه که شما فایلهای راه انداز السیدی و تاچ رو داشته باشی و خارج از emwin اونها رو تست کرده باشی.

در سی در همراه بردشما فایلهای نمونه ای هست که میتونی برای راه اندازی emwin ازش استفاده کنی
این مثالها رو ببینید:
LCD
Touch1289
ucosII

در این مثالها ucosii خیلی شبیه با emwin است و می تونی ازش برای راه اندازی emwin استفاده کنی.
شروع کن من هم کمکت می کنم
ممنون از لطف شما
اول از همه می خواهم بدانم lcd من چه درایوی هست؟(LCD ili9320 هست یا خیر ) و با SPI می توان آن را راه اندازی کرد؟
چطور از این موضوع می توانم اطلاع پیدا کنم؟

mohsenarm
28-11-2013, 21:41
wow :o
سمپل آماده ای که در برنامه های همراه برد هست به نام uCOSII2.91+UCGUI3.90A هست عین یک مرد رو برد کار کرد!
Demo را نشان می دهد
خیلی خوب
خیلی عالی
حال چگونه این ها را بنا به نیازم تغییر بهم؟ :018:

saeed110
30-11-2013, 00:46
سلام بر همه.
اگر کسی از آقایان مهندس با قسمت lcd LPC1788 کار کرده لطفا" به من کمک کند تا من هم به توانم از این میکرو خیلی خوب برای کارم بدون استفاده از GUI های تجاری مانند EmWin استفاده کنم.
لازم به ذکر می باشد که من این پروژه را قبلا" با استفاده از LPC2378 و ssd1963 با TFT LCD 7 inch راه انداختم اما به علت هزینه بالا وسرعت کم تصمیم گرفته ام که با استفاده از LPC1788 که کار سه عدد chip گرانقیمت(LPC2378,ssd1963,VNC1L-1A) را برای من میتواند انجام دهد را استفاده کنم. امید وارم که یکی از دوستان مرا راهنمایی کند.

mohsenarm
30-11-2013, 22:36
داخل پروژه رو بگردید. حتما درایور ال سی دی رو میبینید. اوناها رو آپلود کنید. اگه می تونید کل پروژه رو آپلود کنید.
موفق باشید

جناب منصور کل پروژه را اینجا آپلود می کنم
توضیح هم بدم برای کسایی که این را می خواهند استفاده کنند بدونند که:
این برنامه جزو سمپل های آماده ای هست که همراه برد فروشگاه (You can see links before reply) کویر هست
فایل هم این جا آپلود نشد حجم بالا1.5mb از سایت های بیرون کمک گرفتم -امیدوارم که سایت پایداری لازم را داشته باشه و زود از بین نره:
Download File : uCOS.rar (You can see links before reply)

این هم لینک با Dropbox (You can see links before reply)


بی زحمت فایلهای شماتیک برد رو هم بفرستید.

شماتیک:

You can see links before reply

mansoory
01-12-2013, 15:31
#define LCD_CLR_RESET() P7 &= ~(1<<0)
#define LCD_SET_RESET() P7 |= (1<<0)
#define LCD_CLR_A0() P8 &= ~(1<<0)
#define LCD_SET_A0() P8 |= (1<<0)
#define LCD_CLR_WR() P8 &= ~(1<<1)
#define LCD_SET_WR() P8 |= (1<<1)
#define LCD_CLR_RD() P8 &= ~(1<<2)
#define LCD_SET_RD() P8 |= (1<<2)
#define LCD_CLR_CS() P8 &= ~(1<<4)
#define LCD_SET_CS() P8 |= (1<<4)
#define LCD_DATA_IN_L P10
#define LCD_DATA_IN_H P1
#define LCD_DATA_OUT_L P10
#define LCD_DATA_OUT_H P1
#define LCD_SET_DIR_IN() P1D = 0; P10D = 0
#define LCD_SET_DIR_OUT() P1D = 0xff; P10D = 0xff

این کد قطعه ای از فایل LCD_X_8080.c است که برای مشخص کردن پینهای ال سی دی است.
جای P1 الی آخر رو با پینهای مربوطه میکرو باید عوض بشه. شما هم اگر میتونید از شماتیک و فایلهای مربوط به ال سی دی پایه ها رو مشخص کنید.
متشکرم

mohsenarm
01-12-2013, 20:55
#define LCD_CLR_RESET() P7 &= ~(1<<0)
#define LCD_SET_RESET() P7 |= (1<<0)
#define LCD_CLR_A0() P8 &= ~(1<<0)
#define LCD_SET_A0() P8 |= (1<<0)
#define LCD_CLR_WR() P8 &= ~(1<<1)
#define LCD_SET_WR() P8 |= (1<<1)
#define LCD_CLR_RD() P8 &= ~(1<<2)
#define LCD_SET_RD() P8 |= (1<<2)
#define LCD_CLR_CS() P8 &= ~(1<<4)
#define LCD_SET_CS() P8 |= (1<<4)
#define LCD_DATA_IN_L P10
#define LCD_DATA_IN_H P1
#define LCD_DATA_OUT_L P10
#define LCD_DATA_OUT_H P1
#define LCD_SET_DIR_IN() P1D = 0; P10D = 0
#define LCD_SET_DIR_OUT() P1D = 0xff; P10D = 0xff

این کد قطعه ای از فایل LCD_X_8080.c است که برای مشخص کردن پینهای ال سی دی است.
جای P1 الی آخر رو با پینهای مربوطه میکرو باید عوض بشه. شما هم اگر میتونید از شماتیک و فایلهای مربوط به ال سی دی پایه ها رو مشخص کنید.
متشکرم
آقای منصوری من فایل ها را گشتم ولی همچین قطعه کدی پیدا نکردم
کارهایی که کردم:
Ucos روی برد اجرا کردم و بدون مشکل دمو را نشان داد
الان emWin514 را دانلود کردم و بدون مشکل کامپایل می شود ولی نمی دونم LCD را چطور به آن معرفی کنم
Task هایی که مد نظر من هست را کجا باید بنویسم و چطور متناسب با کار خودم آنها را تغییر دهم
آقای منصوری لطفا راهنمایی فرمایید

mansoory
02-12-2013, 10:39
اینا رو امتحان کنید.

Aghaeifar
02-12-2013, 20:42
آقای منصوری عزیز اگه ما بخواهیم از این کتابخونه برای ال سی دی 4.3 اینچ فروشگاه که درایورش 1963 هست و با lpc1768 می خواهیم کار کنیم استفاده کنیم دردسر زیادی برای تغییر دادنش هست؟
چون جزء مثالهای آماده ی emWin برای این حالت نبود.
اگر شدنش مکافات نیست ممکنه فقط بفرمایید که کدوم بخش و صفحات منوال رو باید بخونم؟

متشکر.

mohsenarm
03-12-2013, 00:17
اینا رو امتحان کنید.


cry::
اصلا نمی دانم چیکارشون کنم!!!!

tarasheh
03-12-2013, 09:24
من برد LPC1788 را دارم و نرم افزار های موجود در DVD همراه برد را راه اندازی کردم
اما الان می خوام خودم برای برد برنامه بنویسم
یک برنامه ساده برای راه اندازی ال سی دی و تاچ نوشتم و راه اندازی شد.
الان می خوام از emwin برای راه اندازی ال سی دی و ساخت منو استفاده کنم.
تاپیک emwin را خواندم اما سوالات زیادی در رابطه با راه اندازی ال سی دی دارم.
1. من می خوام با استفاده از روش مستقیم ال سی دی را راه اندازی کنم.از کدام فایل LCDConf.c باید استفاده کنم؟
2. ال سی دی من 5 اینچ است. چرا همه 24 پایه مربوط به RGB به پین میکرو مستقل وصل نشده.مثلا R0 , R5 مستقیم رفته اند به P2.7 یا G0 , G6 به P1.24 وصل شده اند؟؟؟؟!!!
3....

kamikazi
03-12-2013, 09:40
من برد LPC1788 را دارم و نرم افزار های موجود در DVD همراه برد را راه اندازی کردم
اما الان می خوام خودم برای برد برنامه بنویسم
یک برنامه ساده برای راه اندازی ال سی دی و تاچ نوشتم و راه اندازی شد.
الان می خوام از emwin برای راه اندازی ال سی دی و ساخت منو استفاده کنم.
تاپیک emwin را خواندم اما سوالات زیادی در رابطه با راه اندازی ال سی دی دارم.
1. من می خوام با استفاده از روش مستقیم ال سی دی را راه اندازی کنم.از کدام فایل LCDConf.c باید استفاده کنم؟
2. ال سی دی من 5 اینچ است. چرا همه 24 پایه مربوط به RGB به پین میکرو مستقل وصل نشده.مثلا R0 , R5 مستقیم رفته اند به P2.7 یا G0 , G6 به P1.24 وصل شده اند؟؟؟؟!!!
3....
خوب دوست گرامی تو دیتاشیت گفته که السیدی رو تو چه مد هایی به چیه پینهایی ارتباط داشته باشه در کل تو 565 استفاده شده و برای اینکه تصویر وضوح بیشتری داشته باشه اون 8 بیتی که استفاده نشده راه با بیتهای پر ارزش رنگها پر کرده (چی گفتم خودمم متوجه نشدم) در کل چون ارتباط با توابع emwin بصورت 16 بیتی هستش ار فرمت 565 استفاده کرده

tarasheh
03-12-2013, 11:47
ممنون.درسته اما چرا پین ها را مطابق دیتا شیت (صفحه 309 )وصل نکرده؟
آیا هر ین رو میشه به یک LCD_VD وصل کرد یا در جایی باید انها را تعریف کنیم؟
من تو فایل GLCD.cو GLCD.h چیزی پیدا نکردم.

mansoory
04-12-2013, 17:47
آقای منصوری عزیز اگه ما بخواهیم از این کتابخونه برای ال سی دی 4.3 اینچ فروشگاه که درایورش 1963 هست و با lpc1768 می خواهیم کار کنیم استفاده کنیم دردسر زیادی برای تغییر دادنش هست؟
چون جزء مثالهای آماده ی emWin برای این حالت نبود.
اگر شدنش مکافات نیست ممکنه فقط بفرمایید که کدوم بخش و صفحات منوال رو باید بخونم؟

متشکر.

سلام.
مهندس جان، این Emwin همش داره تغییر میکنه، الان نسخه 5.22 اومده که در بخش Display Driver می تونید نحوه پیکربندی ال سی دی رو مطالعه کنید (از روش Precompile استفاده کنید).
راستی یه مدته که من در بدر دنبال درایور ال سی دی SSD1963 برای LPC1768 میگردم اگه شما دسترسی دارید ممنون میشم آپلود بفرمایین
متشکرم
منصوری

mori64
05-12-2013, 11:59
سلام به همگی بالاخره پروژه ی اولی که تو سایت مطرح شد به صورت کامل انجام شد ولی خیلی طول کشید در عوض فک کنم چیز قشنگی شدش
دوستان اگر پیشنهادی برای اصلاح و بهتر شدن این کیبورد بدهند ممنون میشم(البته یک drop down هم گذاشته بودم برای انتخاب فونت که دیگه فرصت نشد و امتحان ها در پیش هست)
دعا فراموش نشه
لطف میکنید یک مثال از فراخوانی این کیبورد برگشت آن بزارید .
به عنوان مثال روی یک editbox کلیک کنیم و کیبورد باز بشه و در نهایت مقدار
به editbox داده بشه .
تشکر
دوستان
راهنمایی میفرمایید از کیبورد های نوشته شده چطور باید استفاده کرد؟

arvin2009
05-12-2013, 14:11
دوستان یک کچولو توضیح میدن منم با برد اموزشی lpc1768 سایت همسایه شروع کنم.
برای شروع بکار چه لازم دارم؟با ال سی دی روی برد میشه یا باید ال سی دی مخصوصی بگیرم؟
اصلا کسی روی برد اموزشی سایت همسایه این سیستم عامل گرافیکی رو نصب کرده؟
اگه میشه یک توضیح مقدماتی برای تازه کار ها هم بدید ممنون میشم
تمامی فایلهایی که در Dropbox (You can see links before reply) اپلود شده غیر قابل دانلود هست ایا روش خاصی هست؟

mansoory
07-12-2013, 10:13
دوستان یک کچولو توضیح میدن منم با برد اموزشی lpc1768 سایت همسایه شروع کنم.
برای شروع بکار چه لازم دارم؟با ال سی دی روی برد میشه یا باید ال سی دی مخصوصی بگیرم؟
اصلا کسی روی برد اموزشی سایت همسایه این سیستم عامل گرافیکی رو نصب کرده؟
اگه میشه یک توضیح مقدماتی برای تازه کار ها هم بدید ممنون میشم
تمامی فایلهایی که در Dropbox (You can see links before reply) اپلود شده غیر قابل دانلود هست ایا روش خاصی هست؟

برای شروع بکار باید دیتاشیت درایور ال سی دی رو بخونی و نحوه ارسال فرمان و داده رو بصورت تکی و بلوکی مطالعه کنی. بعدش باید توابع ارسال رو بنویسی و بقیه مطالب رو از این تایپک دنبال کنی.
اگر نمیتونی دراپ باکس رو باز کنی یه بار با فایرفاکس امتحان کن. من هم همین مشکل رو با کروم دارم ولی فایرفاکس مشکلی نداره.
سعی می کنم در اولین فرصت یک آموزش ساده برای اتصال ال سی دی به emwin قرار بدم.
موفق باشی

mansoory
07-12-2013, 11:10
cry::
اصلا نمی دانم چیکارشون کنم!!!!

فایلهایی که فرستادم رو جایگزین فایلهای موجود در پروژه کنید. و پروگرام کنید.
نتیجه رو به ما هم اطلاع بدین

mohsenarm
07-12-2013, 15:46
فایلهایی که فرستادم رو جایگزین فایلهای موجود در پروژه کنید. و پروگرام کنید.
نتیجه رو به ما هم اطلاع بدین


این کار را کردم ولی جواب نداد
جناب منصوری الان من برنامه uCOS زا رو برد ران می کنم مشکلی نیست
فقط می خواهم demo دیگر اجرا نشود و برنامه مد نظر من(ساختن چند منو و زیر منو) اجرا شود
در این مورد راهنمایی فرمایید

mansoory
07-12-2013, 18:08
این کار را کردم ولی جواب نداد
جناب منصوری الان من برنامه uCOS زا رو برد ران می کنم مشکلی نیست
فقط می خواهم demo دیگر اجرا نشود و برنامه مد نظر من(ساختن چند منو و زیر منو) اجرا شود
در این مورد راهنمایی فرمایید

در این مسیر فایلی به نام MainTask.c وجود داره که داخلش تابعی به نام MainTask هست
کلیه برنامه ها باید داخل این تابع نوشته بشه.
مسیر فایل :uCOS\uCOSII2.91+UCGUI3.90A\USER\uCGUI\emWinDemo

arvin2009
07-12-2013, 20:42
در این مسیر فایلی به نام MainTask.c وجود داره که داخلش تابعی به نام MainTask هست
کلیه برنامه ها باید داخل این تابع نوشته بشه.
مسیر فایل :uCOS\uCOSII2.91+UCGUI3.90A\USER\uCGUI\emWinDemo
سلام
با کلی وقت گداشتن رو این فایل تونستم این فایل رو برای برد اموزسی همسایه راه اندازی کنم ولی نه به صورت کامل.تاچ برد همسایه از adc خود میکرو استفاده میشه ولی تو این برنامه از adc..
یک صفحه سیاه بعد قرمز میاد و مینویسه صبر کنید.وقتی دیپ سویچ vref روی برد رو ان میکنم روی صفحه ok میاد و به همان حالت میماند.
خواستم ببینم دوستانی که برنامه رو نصب کردن هم همین جور برنامه شون بالا میاد و ایا احتیاج به کار خاصی نداره

Aghaeifar
08-12-2013, 00:19
سلام.
مهندس جان، این Emwin همش داره تغییر میکنه، الان نسخه 5.22 اومده که در بخش Display Driver می تونید نحوه پیکربندی ال سی دی رو مطالعه کنید (از روش Precompile استفاده کنید).
راستی یه مدته که من در بدر دنبال درایور ال سی دی SSD1963 برای LPC1768 میگردم اگه شما دسترسی دارید ممنون میشم آپلود بفرمایین
متشکرم
منصوری

سلام
اگر برای این درایور با 1768 تونستید emwin رو پورت کنید لطفا در اختیار من هم قرار دهید. درایو رو پیوست کردم.

ghorban_piriz
13-12-2013, 21:23
آقایون کسی تونسته واسه lcd3.2 ssd1289 هم درایور درست کنه.؟؟cry::

mansoory
15-12-2013, 16:16
آقایون کسی تونسته واسه lcd3.2 ssd1289 هم درایور درست کنه.؟؟cry::

فرزندم. کلا برای کنترلرهای ssd هنوز کسی درایور ننوشته. من هم این درایور و السیدی رو ندارم که بتونم براتون کاری بکنم. یه همتی کنید خودتون دست بکار بشین. نه اینکه هیچ کاری نکنید و منتظر باشید کسی اینجا پیداش بشه وبراتون این کار رو انجام بده. شما طبق مطالبی که گفته شده ابتدا درایور ساده رو خارج از EMWIN بنویس که بتونی با میکرو بهش وصل بشی. بعدش از MANUAL درایور باید فانکشن های ارسال داده و فرمان رو پیدا کنی و اونها رو توی فایلهای درایور السیدی پیداش کنی. (دستورات خواندن فرمان / داده و نوشتن فرمان/ داده) بعدش باید دستوری که مربوط به نوشتن بلوکی داده است رو پیدا کنی. معمولا در درایورهای آماده السیدی این تابع وجود نداره و باید باتوجه به MANUAL ال سی دی خودت اون رو بنویسی...
من هم اینجا هستم و کمکت خواهم کرد

ghorban_piriz
15-12-2013, 16:20
من تونستم کامل بدون emwin راه اندازی کنم .ولی ظاهرا keil این مدل رو ساپورت نمی کنه! این مدل جزو Compile time configurable هستش.اخه تو هیچ کدوم از مثالهی خود کیل هم این مدل ال سی دی یا درایور استفاده نشده!! من حتی تاچش رو هم کامل راه انداختم البته با کمک ایسی درایور.من حاضرم را کمک دوستان این ال سی دی رو هم راه بندازم و در اختیار همه قرار بدم.مطالب تاپیک خیلی بهم ریخته هستش و جامع نیست.من فایلای پروژه تست ال سی دی و تاچ و مموری کارت رو در اختیار دوستان میگذارم امیدوارم بتونیم به کمک هم مشکل رو حلش کنیم.من ال سی دی n96 هم دارم.یکی از دوستان تو تاپیک ظاهرا راه انداخته.اقای منصوری اگه بتونین فایلای اونم در اختیارم بذارین ممنون می شم.ضمنا از اینکه می بینم یکی هم رشته خودم مدیر تاپیک افتخار می کنم اقای منصوری!

mansoory
15-12-2013, 16:36
من تونستم کامل بدون emwin راه اندازی کنم .ولی ظاهرا keil این مدل رو ساپورت نمی کنه! این مدل جزو compile time configurable هستش.اخه تو هیچ کدوم از مثالهی خود کیل هم این مدل ال سی دی یا درایور استفاده نشده!! من حتی تاچش رو هم کامل راه انداختم البته با کمک ایسی درایور.من حاضرم را کمک دوستان این ال سی دی رو هم راه بندازم و در اختیار همه قرار بدم.مطالب تاپیک خیلی بهم ریخته هستش و جامع نیست.من فایلای پروژه تست ال سی دی و تاچ و مموری کارت رو در اختیار دوستان میگذارم امیدوارم بتونیم به کمک هم مشکل رو حلش کنیم
emwin دو جور فروخته میشه, precompiled و source.
چیزی که در اختیار ماهست چه در کیل و چه در سایتهای دیگه نسخه precompile است. یعنی فقط یک کتابخونه کامپایل شده در اختیارمون قرار گرفته. در این نسخه نحوه معرفی السیدی با حالت source فرق میکنه و باید توابعی که خدمتتون گفتم رو در portapi به emwin معرفی کنید.

سلام
اگر برای این درایور با 1768 تونستید emwin رو پورت کنید لطفا در اختیار من هم قرار دهید. درایو رو پیوست کردم.
مهندس جان شرمنده که دیر جواب دادم.
فایل شما رو دیدم. تقریبا ردیفه
توابع زیر برای انتقال فرمان و داده بصورت تکی هست فقط می مونه ارسال بلوکی داده . اگر تونستید از دیتاشیت ال سی دی اون رو پیدا کنید که فبها وگر نه مجبوریم یه تابع بنویسیم با یه حلقه for که داده رو تک تک بفرسته که البته سرعت خیلی کم میشه. فایل lcdconf.c رو ملاحظه بفرمایین.

دو تابع زیر رو بافرض اینکه در دیتا شیت تابعی برای ارسال بلوکی داده نیست قرار دادم:


void LCD_X_8080_16_WriteM01_16(U16 * pData, int NumWords)
void LCD_X_8080_16_WriteM00_16(U16 * pData, int NumWords)

// فایل پیوست خطا داشت دوباره فرستادم//

من تونستم کامل بدون emwin راه اندازی کنم .ولی ظاهرا keil این مدل رو ساپورت نمی کنه! این مدل جزو Compile time configurable هستش.اخه تو هیچ کدوم از مثالهی خود کیل هم این مدل ال سی دی یا درایور استفاده نشده!! من حتی تاچش رو هم کامل راه انداختم البته با کمک ایسی درایور.من حاضرم را کمک دوستان این ال سی دی رو هم راه بندازم و در اختیار همه قرار بدم.مطالب تاپیک خیلی بهم ریخته هستش و جامع نیست.من فایلای پروژه تست ال سی دی و تاچ و مموری کارت رو در اختیار دوستان میگذارم امیدوارم بتونیم به کمک هم مشکل رو حلش کنیم.من ال سی دی n96 هم دارم.یکی از دوستان تو تاپیک ظاهرا راه انداخته.اقای منصوری اگه بتونین فایلای اونم در اختیارم بذارین ممنون می شم.ضمنا از اینکه می بینم یکی هم رشته خودم مدیر تاپیک افتخار می کنم اقای منصوری!

این فایلی که برات فرستادم رو در EMWIN جایگزین LCDCONF.C کن و نتیجه رو بگو
اگه جواب نداد در قسمت PORTAPI بجای 16، 8 روقرار بده. (در تابع LCD_X_Config(

منظورم این قسمته:


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;

باید تبدیل بشه به:


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;

اگه بازم نشد این قسمت رو تغییر بده:


GUIDRV_FlexColor_SetFunc(pDevice, &PortAPI, GUIDRV_FLEXCOLOR_F66708, GUIDRV_FLEXCOLOR_M16C0B16);

اینجا رو دیگه باید آزمایش خطا کنی! از جدولی که در قسمت dISPLAY DRIVER دیتاشیت EMWIN هست استفاده کن.

ghorban_piriz
15-12-2013, 17:34
این فایلی که برات فرستادم رو در EMWIN جایگزین LCDCONF.C کن و نتیجه رو بگو
اگه جواب نداد در قسمت PORTAPI بجای 16، 8 روقرار بده. (در تابع LCD_X_Config(

منظورم این قسمته:


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;

باید تبدیل بشه به:


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;

اگه بازم نشد این قسمت رو تغییر بده:


GUIDRV_FlexColor_SetFunc(pDevice, &PortAPI, GUIDRV_FLEXCOLOR_F66708, GUIDRV_FLEXCOLOR_M16C0B16);


اینجا رو دیگه باید آزمایش خطا کنی! از جدولی که در قسمت dISPLAY DRIVER دیتاشیت EMWIN هست استفاده کن.

رشته شما چیه؟
دستتون درد نکنه اقای منصوری.فقط ورژن emwin فرقی نمی کنه ?یعنی ما برا راه اندازیش فقط باید این فایل رو تغییر بدیم!.
من رشته ام مکانیک کشاورزی هستش ولی علاقه خاصی هم به الکترونیک دارم.قبلنا avr کار می کردم ولی جدیدا زدم رو خط arm.

mansoory
15-12-2013, 17:38
دستتون درد نکنه اقای منصوری.فقط ورژن emwin فرقی نمی کنه ?یعنی ما برا راه اندازیش فقط باید این فایل رو تغییر بدیم!.
من رشته ام مکانیک کشاورزی هستش ولی علاقه خاصی هم به الکترونیک دارم.قبلنا avr کار می کردم ولی جدیدا زدم رو خط arm.

به به. کجا خوندین؟
بله به همین سادگی و ورژن 5 به بالا. فقط کافیه همین فایل رو تغییر بدین.
البته باید طبق گفته های قبلی در تابع main دستورات لازم رو هم بنویسید.

titery
15-12-2013, 23:42
لطف میکنید یک مثال از فراخوانی این کیبورد برگشت آن بزارید .
به عنوان مثال روی یک editbox کلیک کنیم و کیبورد باز بشه و در نهایت مقدار
به editbox داده بشه .

تشکر
اون مثالی که آپ کردم از یک دستوری که برا ایجاد دیالوگ(ویندوز) استفاده کردم مشکل داره که در چند پست بعدی گفتم بجاش چی بزارید
برای باز شدن کیبرد ابتدا در یک ویندوز دیگر یک مولتی ادیت بزازرید و در کیس(نوتیفیکیشن) focus (این کیس ها رو کلا در منوال در یک جدول گفته که تو همون جدول کیس paint , pre pant و....) دسستو ساخت کیبورد رو بدین
برای برگردوندن دیتا هنوز روش درست درمونی پیدا نکردم ولی من اینطوری استفاده میکنم که با کلیک رو کلوز کیبورد دستور delete windows کیبورد رو میدم و بعد در همان ویندوز اولی یک کیس notifcation child گذاشتم که باز زیر مجموعه آن کیس delete child هست که در واقع با حذف کیبورد یک نوتیفیکشن برای اینجا میاد و بعد از طریق هندل و ID مولتی ادیت کیبورد،هندل آن مولتی ادیت رو به دست میارم و بعد توسط این هندل از دستور خواندن از مولتی ادیت استفاده میکنم و در نهایت این آرایه رو به مولتی ادیت ویندوز کنونی میفرستم

ghorban_piriz
16-12-2013, 20:54
به به. کجا خوندین؟
بله به همین سادگی و ورژن 5 به بالا. فقط کافیه همین فایل رو تغییر بدین.
البته باید طبق گفته های قبلی در تابع main دستورات لازم رو هم بنویسید.

یه سوال داشتم.
من این تغییری که میگین انجام بدم رو فایلای کدوم برد باید انجام بدم.منظورم 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
18-12-2013, 17:37
من الان دارم از ال سی دی 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

mansoory
19-12-2013, 08:57
یه سوال داشتم.
من این تغییری که میگین انجام بدم رو فایلای کدوم برد باید انجام بدم.منظورم 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 رو باید کخا براش تعریف کنیم؟!
در صمن این پایه ها کجا تعریف شدن؟

احتمالا توی برنامه نویسی یکم مشکل داری.
فایلهای LCD.h و LCD.c که خودت دادی رو نگاه کن، اون توابع اونجا هستند.
باید در فایل LCD.h نمونه این دوتابع رو قرار بدی، ظاهرا نیستش
موفق باشی

ghorban_piriz
19-12-2013, 21:56
من الان رو n96 کار میکنم .دیباگر خود کیل این برنامه رو میتونه شبیه سازی کنه؟برا من کلا وایمیسته!!!!

ghorban_piriz
20-12-2013, 14:55
دوستان من برا 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 (You can see links before reply)

mansoory
21-12-2013, 09:36
دوستان من برا 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 (You can see links before reply)

درتابع MainTask باید اول از همه GUI_Init اجرا بشه. با اجرای این دستور توابع مربوط به راه اندازی السیدی هم اجرامیشه. اگه خطا میده باید اون رو برطرف کنید.

ghorban_piriz
21-12-2013, 18:50
ما بالاخره این ال سی دی رو راه انداختیم. ولی الان یه مشکلی هست. برنامه بجا نشون دادن یه دایره توپر فقط یه سمت از ال سی دی رو پر می کنه .خط مورب رو که اصلا نشون نمی ده. ولی یه سمپل بود تو سمپل ها که همون منوی دوار بودش اولش منو رو کامل و سریع پر میکنه ولی بعدش یهو قاطی می کنه!! بکگراند هم با هر رنگی بخوام پر می کنه.چک کردم ریجستری های مربوط به ادرس گروهی رو هم درست به ال سی دی میفرسته.ولی خط راست رو از هر جا بهش بگم از صفر می کشه و اگه بعدش دوباره یه خط راست دیگه بدم تو اامه اون خط می کشه!!جالب اینجاست که دقیقا با این کدا و بدون emwin درست کار می کنه!تعجبم اینه که چرا وقتی کد ها یکی اند تو دیباق هم یکی نشون می دن اینجوری باید بشه!!مشکل از کجا می تونه باشه دوستان. اینجا هم که تعطیلللللللهههههههه!!!!
!?

akbh
24-12-2013, 00:02
من درایور N96 2.8 رو برای emwin و ucgui نوشتم ازش استفاده کنید باخیال راحت سالم سالمه

mansoory
24-12-2013, 09:46
ما بالاخره این ال سی دی رو راه انداختیم. ولی الان یه مشکلی هست. برنامه بجا نشون دادن یه دایره توپر فقط یه سمت از ال سی دی رو پر می کنه .خط مورب رو که اصلا نشون نمی ده. ولی یه سمپل بود تو سمپل ها که همون منوی دوار بودش اولش منو رو کامل و سریع پر میکنه ولی بعدش یهو قاطی می کنه!! بکگراند هم با هر رنگی بخوام پر می کنه.چک کردم ریجستری های مربوط به ادرس گروهی رو هم درست به ال سی دی میفرسته.ولی خط راست رو از هر جا بهش بگم از صفر می کشه و اگه بعدش دوباره یه خط راست دیگه بدم تو اامه اون خط می کشه!!جالب اینجاست که دقیقا با این کدا و بدون emwin درست کار می کنه!تعجبم اینه که چرا وقتی کد ها یکی اند تو دیباق هم یکی نشون می دن اینجوری باید بشه!!مشکل از کجا می تونه باشه دوستان. اینجا هم که تعطیلللللللهههههههه!!!!
!?

من تقریباهر روز این تایپک رو چک میکنم. اعتراضت وارد نیس. یه نگاه به این لینک بندازید :
چطور بپرسیم ؟ - ایـــــــــران میـــــــکرو ™ (You can see links before reply)

از دستورات emwin برای کشیدن خط و خطوط استفاده می کنی یا دستوراتی که بدون emwin میفرستادی؟
معلومه که وقتی emwin رو فعال می کنی دیگه نباید مستقیما دستوری به ال سی دی بفرستی. خودش کلی فرمان برای رسم اشکال داره. راهنماش رو نگاه کنی می بینی.

درباره قاطی کردنش در منوی چرخان هم باید یه نکته یادآوری کنم. emwin حدود 20 کیلوبایت حافظه رم رو اشغال می کنه. بنابراین میکروهایی مثل LPC1768 بعضی از قابلیتهای emwin رو نمیتونن استفاده کنن (بعلت کمبود حافظه). درسایر موارد هم باید حواستون باشه که حافظه رو مدام خالی کنید.
از سیستم عامل استفاده کردید یا خیر؟

ghorban_piriz
27-12-2013, 21:10
من تقریباهر روز این تایپک رو چک میکنم. اعتراضت وارد نیس. یه نگاه به این لینک بندازید :
چطور بپرسیم ؟ - ایـــــــــران میـــــــکرو ™ (You can see links before reply)

از دستورات emwin برای کشیدن خط و خطوط استفاده می کنی یا دستوراتی که بدون emwin میفرستادی؟
معلومه که وقتی emwin رو فعال می کنی دیگه نباید مستقیما دستوری به ال سی دی بفرستی. خودش کلی فرمان برای رسم اشکال داره. راهنماش رو نگاه کنی می بینی.

درباره قاطی کردنش در منوی چرخان هم باید یه نکته یادآوری کنم. emwin حدود 20 کیلوبایت حافظه رم رو اشغال می کنه. بنابراین میکروهایی مثل LPC1768 بعضی از قابلیتهای emwin رو نمیتونن استفاده کنن (بعلت کمبود حافظه). درسایر موارد هم باید حواستون باشه که حافظه رو مدام خالی کنید.
از سیستم عامل استفاده کردید یا خیر؟
مشکل رو حل کردم.من تو درایو کردن موقع نوشتن دستور پایه r/w رو یک می کردم برا همین اینطوری می شد! الان هم تقریبا همه سمپل ها رو اجرا می کنه.
فقط تو فونت ها مشکل دارم.بعضی از فونت ها رو نشون نمی ده! راستی کسی سمپلی نداره که یه نشانگر رو واسه جایی که تاچ کردیم بفرسته دارم رو تاچ کار می کنم
ال سی دی ssd1289 هم من فایل هاش رو تو سمپل ها ندیدم. فکر کنم emwin از اینا ساپورت نمی کنه.کسی اطلاع داشت مطرح کنه.این فایل و متعلقاتش برا این ال سی دی لازمه.
GUIDRV_CompactColor_16

ghorban_piriz
03-01-2014, 19:10
دوباره سلام.
من به مشکل عجیبی برخوردم.اونم عدم نمایش فونتهای استاندارد خود ‌emwin.خودم فونت درست می کنم عالی جواب میده ولی فونتهای خود برنامه رو یا نشون نمی ده یا پر شده نشون می ده.فایل خود فونتای لستاندارد رو هم گیر نیوردم ولی فکر نمی کنم از این باشه چون اگه فونت رو نمی شناخت یا ارور می داد یا اصلا چیزی نشون نمی داد.جالبش اینه که این اتفاق فقط رو بعضی از ویجت ها رخ می ده‌.مثلا تو ویجت باتون درست نشون می ده ولی تو ویجت دیالوق خرابه !! درضمن واقعا تا حالا کسی نتونسته ssd1289 رو را بندازه. این سری از ال سی دی ها اصلا تو لایبرری مربوط به کیل ساپورت میشن یا نه؟کسی اطلاع دقیقی نداره.آخه ال یی دی n96/ لا اینکه قیمتش خوبه ولی کوچیکیش رو مخه.دوستان کسی ال سی دی ۳/۲سراغ نداره که درایورش مثل این باشه و راحت راه بیافته!!من با اینکه تونستم n96 رو راه بندازم ولی این یکی رو اصلا نمی تونم و نمی دونم فایلایی که مربوط بهش هستش رو گیر بیارم
لطفا اگه کسی چیزی می دونه کمک کنه. ممنونم

arvin2009
08-01-2014, 22:09
بالاخره شد.تونستم روی ssd1289 جواب بگیرم.اینم عکسش:018:

مرسی از اقای ازش حجی رحمانی که زحمت این فایل رو کشیده بودن



منبع:You can see links before reply (You can see links before reply)

mansoory
09-01-2014, 09:47
دوباره سلام.
من به مشکل عجیبی برخوردم.اونم عدم نمایش فونتهای استاندارد خود ‌emwin.خودم فونت درست می کنم عالی جواب میده ولی فونتهای خود برنامه رو یا نشون نمی ده یا پر شده نشون می ده.فایل خود فونتای لستاندارد رو هم گیر نیوردم ولی فکر نمی کنم از این باشه چون اگه فونت رو نمی شناخت یا ارور می داد یا اصلا چیزی نشون نمی داد.جالبش اینه که این اتفاق فقط رو بعضی از ویجت ها رخ می ده‌.مثلا تو ویجت باتون درست نشون می ده ولی تو ویجت دیالوق خرابه !! درضمن واقعا تا حالا کسی نتونسته ssd1289 رو را بندازه. این سری از ال سی دی ها اصلا تو لایبرری مربوط به کیل ساپورت میشن یا نه؟کسی اطلاع دقیقی نداره.آخه ال یی دی n96/ لا اینکه قیمتش خوبه ولی کوچیکیش رو مخه.دوستان کسی ال سی دی ۳/۲سراغ نداره که درایورش مثل این باشه و راحت راه بیافته!!من با اینکه تونستم n96 رو راه بندازم ولی این یکی رو اصلا نمی تونم و نمی دونم فایلایی که مربوط بهش هستش رو گیر بیارم
لطفا اگه کسی چیزی می دونه کمک کنه. ممنونم

نسخه emwin رو از کجا دانلود کردین؟ بهترین نسخه همونیه که با KEIL 5.01 اومده. ممکنه (البته مطمئن نیستم) که با عوض کردن نسخه مشکل فونتها حل بشه. در غیر اینصورت به احتمال زیاد مشکلی در تخصیص حافظه وجود داره (مثلا استفاده نابجا از اشاره گر ها، نوشتن متغیر فونتها در نوعی از حافظه که مجاز نباشه......).

ghorban_piriz
09-01-2014, 19:54
بالاخره شد.تونستم روی ssd1289 جواب بگیرم.اینم عکسش:018:
من که این ال سی دی رو بیخیالش شدهبودم و رو n96 کار کردم ولی دو تا ال سی دی هم از این مدل دارم میشه لطف کنین و فایلا رو دراختیارم قرار بدین.

ghorban_piriz
09-01-2014, 20:39
فایلهای مورد نیاز برای درایور ssd1289 تست شده

دستت درد نکنه مهندس.لطف کردین.فقط تو نگاه اول چند تا سوال برام پیش اومد.تو این فایلا از درایور مربوط به ال سی دی n96 استفاده شده. این دو تا ال سی دی تفاوت زیادی تو ریجستری هاشون هست ایا بازم میشه از درایور همدیگه استفاده کرد. منظورم GUIDRV_FLEXCOLOR_F66708 هستش!
دانلود می کنم و مدارشو می بندم و جوابش رو اطلاع می دم.

ghorban_piriz
09-01-2014, 20:43
نسخه emwin رو از کجا دانلود کردین؟ بهترین نسخه همونیه که با KEIL 5.01 اومده. ممکنه (البته مطمئن نیستم) که با عوض کردن نسخه مشکل فونتها حل بشه. در غیر اینصورت به احتمال زیاد مشکلی در تخصیص حافظه وجود داره (مثلا استفاده نابجا از اشاره گر ها، نوشتن متغیر فونتها در نوعی از حافظه که مجاز نباشه......).
من نسخه 4.7a رو دارم.فکر نمی کنم مشکل از فونتا یا نسخه emwin باشه.اخه فقط رو باتون درست نشون میده و جاهای دیگه تو پرن.این نسخه keil
5.01 رو از کجا دانلود کنم و صد البته کرک تست شدش رو

mansoory
11-01-2014, 09:39
من نسخه 4.7a رو دارم.فکر نمی کنم مشکل از فونتا یا نسخه emwin باشه.اخه فقط رو باتون درست نشون میده و جاهای دیگه تو پرن.این نسخه keil
5.01 رو از کجا دانلود کنم و صد البته کرک تست شدش رو

از سایت کیل دانلود کنید و کرک 4.7 روش جواب میده

ghorban_piriz
11-01-2014, 22:25
دستت درد نکنه مهندس.لطف کردین.فقط تو نگاه اول چند تا سوال برام پیش اومد.تو این فایلا از درایور مربوط به ال سی دی n96 استفاده شده. این دو تا ال سی دی تفاوت زیادی تو ریجستری هاشون هست ایا بازم میشه از درایور همدیگه استفاده کرد. منظورم GUIDRV_FLEXCOLOR_F66708 هستش!
دانلود می کنم و مدارشو می بندم و جوابش رو اطلاع می دم.
دوست عزیز شاید تقاضام یه کم زیاد باشه ولی شما این فایلا رو با سیستم عامل همراه کردی منم نتونستم فایلا و هدراشو جور کنم .اگه لطف کنین و همه پروژتون رو که با ال سی دی ssd1289 راه انداختین رو برامون یه جا آپ کنی ممنون میشم.

ghorban_piriz
15-01-2014, 02:21
دوست عزیز شاید تقاضام یه کم زیاد باشه ولی شما این فایلا رو با سیستم عامل همراه کردی منم نتونستم فایلا و هدراشو جور کنم .اگه لطف کنین و همه پروژتون رو که با ال سی دی ssd1289 راه انداختین رو برامون یه جا آپ کنی ممنون میشم.

من این فایلا رو دقیق نگاه کردم.کاملا معلومه این فایلا برا را اندازی ال سی دی ili9325 درست شدن و هیچ ربطی به ال سی دی ssd1289 ندارن. من یک روز کامل سعی کردم با این فایل این ال سی دی رو راه بندازم ولی چون ریجستری هاش با اون چیزی که لایبری emwin با این درایور می فرسته نم خونن کار نکرد. البته من بعدش کمی اصلاح کردم و تونستم اینیت کنم و یه چیزایی روش نشون بدم ولی... دوست عزیزی که فرمودن با این فایلا را انداختن یهکم بیشتر توضیح بدن یا فایلا رو درست بفرستن. مخفی کاری تو فروم های ایرانی نمی دونم چه صیغه ای والا اجنبی ها از ماها بهتر زکات علمشون رو میدن.
لطفا دوستانی که راه اندازی کردن یه کم بیشتر توضیح بدن. ممنونم.

mansoory
20-01-2014, 17:45
من این فایلا رو دقیق نگاه کردم.کاملا معلومه این فایلا برا را اندازی ال سی دی ili9325 درست شدن و هیچ ربطی به ال سی دی ssd1289 ندارن. من یک روز کامل سعی کردم با این فایل این ال سی دی رو راه بندازم ولی چون ریجستری هاش با اون چیزی که لایبری emwin با این درایور می فرسته نم خونن کار نکرد. البته من بعدش کمی اصلاح کردم و تونستم اینیت کنم و یه چیزایی روش نشون بدم ولی... دوست عزیزی که فرمودن با این فایلا را انداختن یهکم بیشتر توضیح بدن یا فایلا رو درست بفرستن. مخفی کاری تو فروم های ایرانی نمی دونم چه صیغه ای والا اجنبی ها از ماها بهتر زکات علمشون رو میدن.
لطفا دوستانی که راه اندازی کردن یه کم بیشتر توضیح بدن. ممنونم.

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

ghorban_piriz
21-01-2014, 16:04
بله دوستان بالاخره این ال سی دی هم به سلامتی راه افتادالبته کامل نه چون تو قسمت memdevice مشکل داره ولی نه با فایلایی که از این فروم دوستان بهم دادن! بزودی یه "فیلم کوتاه" هم آپلود می کنم تو فروم فقط نمی دونم کدوم سایت آپلود کنم. :mrgreen: من این ال سی دی رو با بهم ریختن چند تا فایل که از اینترنت پیدا کردم راش انداختم:o الان هم دنبال راه انداختن تاچشم. اونم با چند تا کامنت خوبی که آقای منصوری دادان فکر کنم راه بندازم. البته اطلاعات رو از آیسی درایورشکامل می خونم ولی تو دادن مختصات به خود نرم افزار ای ام وین مشکل ذارم.

اینم لینک فیلم مربوط به راه اندازی ssd1289
You can see links before reply

mansoory
26-01-2014, 09:50
شرمنده لینک اصلاح شد.

خسته نباشید
سرعتش خوبه. یه دموی کامل رو اجرا کنید ببینید آیا همه قابلیتهای اون رو خوب اجرا میکنه؟

ghorban_piriz
27-01-2014, 00:30
ممنونم .دموی کامل کجاست مهندس؟:0013:

mansoory
27-01-2014, 01:10
ممنونم .دموی کامل کجاست مهندس؟:0013:

در محلی که emwin قرار داره، در این مسیر:
C:\Keil\ARM\Segger\emWin\Sample\Application\GUIDem o
تمامی فایلهای این فولدر رو به پروژه اضافه کنید و تابع MainTask اون رو اجرا کنید(این تابع در فایل GUIDemo.C قرار دارد. )
موفق باشید

elahe11556
27-01-2014, 17:45
سلام. من تازه شروع به کار کردم و با وجود توضیحات شما متاسفانه نتونستم lcd رو راه بندازم. اگر کمکم کنید، ممنون میشم. بردم برد شرکت کویر هست با Lpc1768 و ال سی دی ili9320
از bsp که شما برای lpc1768 گذاشته بودید استفاده کردم. ال سیدیم به حالت اینکه کلی رنگ رو به صورت برفک نشون می ده در اومده....
با تشکر
فایل کانفیگ ها و مال خود ال سی دی رو هم اینجا گذاشتم

mansoory
27-01-2014, 18:15
سلام. من تازه شروع به کار کردم و با وجود توضیحات شما متاسفانه نتونستم lcd رو راه بندازم. اگر کمکم کنید، ممنون میشم. بردم برد شرکت کویر هست با Lpc1768 و ال سی دی ili9320
از bsp که شما برای lpc1768 گذاشته بودید استفاده کردم. ال سیدیم به حالت اینکه کلی رنگ رو به صورت برفک نشون می ده در اومده....
با تشکر
فایل کانفیگ ها و مال خود ال سی دی رو هم اینجا گذاشتم
پروژه کامل رو آپلود کنید. در فایلهایی که فرستادید توابع تکراری زیاده.

elahe11556
27-01-2014, 18:21
بله، اما دیگه از glcd.c و glcd.h در پروژم استفاده نکردم فقط در lcdconfig هستن

elahe11556
27-01-2014, 18:31
این فایل کل پروژم هست:
You can see links before reply
با تشکر از توجهتون

ghorban_piriz
27-01-2014, 21:28
You can see links before reply
سلام دوستان اینم فیلم جدید که دمو هایی که آقای منصوری گفتن رو اجرا می کنه فقط ببخشید نتونستف فیلم کم حجمتر بسازم
فعلا

arvin2009
28-01-2014, 14:33
این فایل کل پروژم هست:
You can see links before reply
با تشکر از توجهتون
سلام.من فایلتون رو دیدم .چرا LCD_X_8080_16.c را به پروزه اد نکردید؟!

elahe11556
28-01-2014, 14:48
چون وقتی اد کردم ارور میداد!!
می گفت:
<iom16c.h> چرا نیست!!

arvin2009
28-01-2014, 19:56
[LEFT]
سلام.من فایلتون رو دیدم .چرا LCD_X_8080_16.c را به پروزه اد نکردید؟!
نمیشه که منم این فایل رو پیدا نکردم مجبور شدم حذفش کنم و اروری هم نداد.ولی این ال سی دی رو نداشتم تست کنم.شما همین کار رو کن بعد ببین جواب میده یا نه
<p>
اینم فایلهای مربوط به درایور ssd1289 به کوری چشم بعضی ها که فکر میکردن کمر غول رو شکستن و جواب دادن به سوالاتشون تو این انجمن ها حرام هست.دوستان این برای stm32 نوشته شده که راحت میتونید برای 1768 برشگردونید.تشکر یادتون نشه.چون کسی این درایور رو به کسی نمیده..فقط یک ویروس گرفته بودم کل برنامه هام خراب شده وگر نه برای lpc1768 رو هم میزاشتم.دوباره وقت کنم درست میکنم اونم اپ میکنم.</p>

D.S
01-02-2014, 00:42
سلام به همه دوستان emwin کار
دوستان من برد اموزشی lpc1768 eca رو دارم که خیلی پشیمانم از خرید این برد.حالا هرکاری میکنم نمیشه emwin رو روش بوت کنم.تاچ این برد هم به adc وصل شده .حالا خواستم ببینم کسی تونسته روی این برد emwin رو بوت کنه.تو سایت خودشون که خبری از این کار نیست.اقای منصوری میشه لطف کنی بهم کمک کنی با هم این برد رو راه بندازیم.من خیلی تازه کار هستم.هدر این برد رو میزارم ببین میشه چکارش کرد.توی pdf نوشته برای این درایور باید از درایور خواص GUIDRV_CompactColor_16 استفاده بشه من این کار رو کردم ولی جواب نمیده.شاید هم برای تاچ باشه.چون نمیدونم چطور تاچش رو راه بندازم. خیلی برد بدی هست و طراحی خیلی بدی داره.برای ادرس دهی سخت افزاری پایه های ال سی دی به خدا میرسی.برای همین تصمیم داشتم 1788 برم بخرم.لطفا کمک کنید اینم هدر ال سی دی

D.S
01-02-2014, 00:50
اقای منصوری من با این کتابخانه ای که بالا گذاشتم ال سی دی رو راه اندازی میکنم حالا اگه این توابع رو هم به این کتابخانه اضافه کنم مشکل حل میشه


/************************************************** *******************
*
* LCD_X_Write00_16
*
* Purpose:
* Write to controller, with A0 = 0
*/
void LCD_X_Write00_16(U16 c) {
LCD_REG16 = c;
}
/************************************************** *******************
*
* LCD_X_Write01_16
*
* Purpose:
* Write to controller, with A0 = 1
*/
void LCD_X_Write01_16(U16 c) {
LCD_DAT16 = c;
}
/************************************************** *******************
*
* LCD_X_Read01_16
*
* Purpose:
* Read from controller, with A0 = 1
*/
U16 LCD_X_Read01_16(void) {
return (LCD_DAT16);
}
/************************************************** *******************
*
* LCD_X_WriteM01_16
*
* Purpose:
* Write multiple bytes to controller, with A0 = 1
*/
void LCD_X_WriteM01_16(U16 * pData, int NumWords) {
for (; NumWords; NumWords--) {
LCD_DAT16 = *pData++;
}
}
/************************************************** *******************
*
* LCD_X_WriteM00_16
*
* Purpose:
* Write multiple bytes to controller, with A0 = 0
*/
void LCD_X_WriteM00_16(U16 * pData, int NumWords) {
for (; NumWords; NumWords--) {
LCD_REG16 = *pData++;
}
}
/************************************************** *******************
*
* LCD_X_ReadM01_16
*
* Purpose:
* Read multiple bytes from controller, with A0 = 1
*/
void LCD_X_ReadM01_16(U16 * pData, int NumWords) {
for (; NumWords; NumWords--) {
*pData++ = LCD_DAT16;
}
}

سوال دیگه من هدر تاچ رو هم میزارم میشه بفرماید چگونه این توابع رو جایگزین توابع emwin کنم.

D.S
01-02-2014, 12:09
You can see links before reply
سلام دوستان اینم فیلم جدید که دمو هایی که آقای منصوری گفتن رو اجرا می کنه فقط ببخشید نتونستف فیلم کم حجمتر بسازم
فعلا

جای گذاشتن فیلم بهتر نیست درایور و یا برنامه رو اپ کنی مثل بقیه؟

arvin2009
01-02-2014, 12:29
جای گذاشتن فیلم بهتر نیست درایور و یا برنامه رو اپ کنی مثل بقیه؟
گل گفتی دوست عزیز.اپ و زکات علم خوبه فقط برای همسایه.
من راه انداخته بودم ولی نه کامل تاچ مشکل داشت یک ویروسی گرفتم که همه برنامه هام و... رو خراب کرده و درخواست 50 دلار کرده که بازش کنه. درایور این ال سی دی رو گذاشتم ولی یکم کار داره.انیشیال رو با هدر برد خودت عوض کن.پایه های ال سیدیت رو تو قسمت LCD_X_16BitIF_STM32عوض کن و هدر این فایل رو lpc17xx بزار بازم مشکل داشت اقای منصوری هستن مثل شیر,کمکتون میکنند

sjafarim
01-02-2014, 13:11
اقای منصوری من با این کتابخانه ای که بالا گذاشتم ال سی دی رو راه اندازی میکنم حالا اگه این توابع رو هم به این کتابخانه اضافه کنم مشکل حل میشه


/************************************************** *******************
*
* LCD_X_Write00_16
*
* Purpose:
* Write to controller, with A0 = 0
*/
void LCD_X_Write00_16(U16 c) {
LCD_REG16 = c;
}
/************************************************** *******************
*
* LCD_X_Write01_16
*
* Purpose:
* Write to controller, with A0 = 1
*/
void LCD_X_Write01_16(U16 c) {
LCD_DAT16 = c;
}
/************************************************** *******************
*
* LCD_X_Read01_16
*
* Purpose:
* Read from controller, with A0 = 1
*/
U16 LCD_X_Read01_16(void) {
return (LCD_DAT16);
}
/************************************************** *******************
*
* LCD_X_WriteM01_16
*
* Purpose:
* Write multiple bytes to controller, with A0 = 1
*/
void LCD_X_WriteM01_16(U16 * pData, int NumWords) {
for (; NumWords; NumWords--) {
LCD_DAT16 = *pData++;
}
}
/************************************************** *******************
*
* LCD_X_WriteM00_16
*
* Purpose:
* Write multiple bytes to controller, with A0 = 0
*/
void LCD_X_WriteM00_16(U16 * pData, int NumWords) {
for (; NumWords; NumWords--) {
LCD_REG16 = *pData++;
}
}
/************************************************** *******************
*
* LCD_X_ReadM01_16
*
* Purpose:
* Read multiple bytes from controller, with A0 = 1
*/
void LCD_X_ReadM01_16(U16 * pData, int NumWords) {
for (; NumWords; NumWords--) {
*pData++ = LCD_DAT16;
}
}

سوال دیگه من هدر تاچ رو هم میزارم میشه بفرماید چگونه این توابع رو جایگزین توابع emwin کنم.


سلام
دوست عزیزم
آموزش کامل تاچ رو آقای منصوری قبلا گفتن، خیلی از سوال های دوستان که دیر جواب داده میشه یا اصلا جواب داده نمیشه دلیلش همینه که برای بار چندم داره در همون تاپیک پرسیده میشه، باز آقای منصوری حوصلش زیاده میاد جواب میده بنده خدا ولی خواهشا با دقت بیشتری آموزش هارو بخونید و جزئی تر سوال کنید تا زودتر به نتیجه برسید نه اینکه توقع داشته باشید یکی بیاد کامل کارو آماده کنه بده بهتون، اینجوری مطمعنا تسلط کمتری خواهید داشت و اگر نیاز به کوچکترین تغییری باشه باز باید بیاید سراغ اونی که ساندویچو ساخته و بگید لطفا 2 تا خیار شور دیگه برام بذار توش!

sjafarim
01-02-2014, 13:26
راستی یه چیزی راجع به این lcd 3.2 اینچ با کنترولر 1289 بگم، این درایور تو emwin ورژن زیر 5.22 (به صفحه989 دیتاشیت مراجعه کنید) فقط توسط درایور compact color از نوع (Compile-time) پشتیبانی میشد که این کتابخانه جزو لایسنس پولی ه emwin هست (در واقع شرکت keil لایسنس اون رو از segger نخریده پس همراه emwin موجود در این مجموعه نیست) البته میتونید کل این درایور رو به عنوان یه درایور جدید میتونید با template های موجود برای درایور نویسی خودتون بنویسید که کار دشواریه.
از ورژن 5.22 به بعد چند درایور به صورت اختصاصی درون درایور های pre-compiled قرار گرفت که یکی از اونا ssd1289 ه. با درایور flex color و مقدار pfFunc برابر 66702 میتونید این درایور رو راه اندازی کنید.
***** قبل از تست کردن این موارد کتابخانه lcd که نوشتید رو به تنهایی تست کنید که جواب بدهد بعد سراغ مچ کردن با emwin برید******

mansoory
01-02-2014, 13:43
You can see links before reply
سلام دوستان اینم فیلم جدید که دمو هایی که آقای منصوری گفتن رو اجرا می کنه فقط ببخشید نتونستف فیلم کم حجمتر بسازم
فعلا
فیلم رو دیدم. همه دمو ها رو کامل اجرا نمیکنه. فایل guidemo.h رو ببینید و ماکرو ها رو یک کنید. دوباره تست کنید.

abdi_sab
01-02-2014, 14:38
اینا رو امتحان کنید.

سلام جناب منصوری متشکرم از زحماتتون
من هم همین برد رو خریداری کردم به غیر از GUI شرکت Micrium واسط گرافیکی دیگه ای رو نتونستم روش اجرا کنم از برنامه شما هم با کمک روش AN11218.pdf سایت nxp استفاده کردم اما بازهم فقط یک صفحه سفید اجرا شد خواهش می کنم اگه کمکی از دستتون برمیاد راهنمایی بفرمایید.

mansoory
01-02-2014, 15:41
سلام جناب منصوری متشکرم از زحماتتون
من هم همین برد رو خریداری کردم به غیر از GUI شرکت Micrium واسط گرافیکی دیگه ای رو نتونستم روش اجرا کنم از برنامه شما هم با کمک روش AN11218.pdf سایت nxp استفاده کردم اما بازهم فقط یک صفحه سفید اجرا شد خواهش می کنم اگه کمکی از دستتون برمیاد راهنمایی بفرمایید.
منظورتون این برده؟
You can see links before reply

این برد السیدیش از نوع ili9320 است که میتونید با پروژه multitasking که من آپلود کردم کار کنید. کافیه توابع glcd که توی پروژه من هست رو با السیدی خودتون عوض کنید. درایور السیدی من هم ili9320 است ولی بصورت spi.
موفق باشید.

elahe11556
01-02-2014, 16:15
با سلام
من هم برد
You can see links before reply رو دارم و تا این لحظه نتونستم ال سیدیش رو با emwin راه بندازم. با وجود اینکه تمام این تاپیکو خوندم و سعی کردم تغییراتی که گفتید رو اعمال کنم. فایل پروژم رو هم از چند روز پیش باز روش کار کردم و این فایل جدیدم هستش: You can see links before reply اما باز جواب نمیده.. خواهشن اگر کسی می تونه کمکم کنه...

mansoory
01-02-2014, 17:19
با سلام
من هم برد You can see links before reply رو دارم و تا این لحظه نتونستم ال سیدیش رو با emwin راه بندازم. با وجود اینکه تمام این تاپیکو خوندم و سعی کردم تغییراتی که گفتید رو اعمال کنم. فایل پروژم رو هم از چند روز پیش باز روش کار کردم و این فایل جدیدم هستش: You can see links before reply اما باز جواب نمیده.. خواهشن اگر کسی می تونه کمکم کنه...
همون کاری که در پست بالا گفتم رو امتحان کنید و نتیجه رو اطلاع بدین

D.S
02-02-2014, 01:27
راستی یه چیزی راجع به این lcd 3.2 اینچ با کنترولر 1289 بگم، این درایور تو emwin ورژن زیر 5.22 (به صفحه989 دیتاشیت مراجعه کنید) فقط توسط درایور compact color از نوع (Compile-time) پشتیبانی میشد که این کتابخانه جزو لایسنس پولی ه emwin هست (در واقع شرکت keil لایسنس اون رو از segger نخریده پس همراه emwin موجود در این مجموعه نیست) البته میتونید کل این درایور رو به عنوان یه درایور جدید میتونید با template های موجود برای درایور نویسی خودتون بنویسید که کار دشواریه.
از ورژن 5.22 به بعد چند درایور به صورت اختصاصی درون درایور های pre-compiled قرار گرفت که یکی از اونا ssd1289 ه. با درایور flex color و مقدار pfFunc برابر 66702 میتونید این درایور رو راه اندازی کنید.
***** قبل از تست کردن این موارد کتابخانه lcd که نوشتید رو به تنهایی تست کنید که جواب بدهد بعد سراغ مچ کردن با emwin برید******
اقا مرسی ولی من ورژن 5.22 رو گرفتم ولی چنین داریورهایی توش نیست. منظورم pre-compiled هست.ورژن بالاتر هم که نداره میگید از 5.22 به بالا.لطفا بیشتر راهنمایی کنید و یا لینک از ورژنهای بالاتر EMWIN برام بزارید.مرسی

abdi_sab
02-02-2014, 22:37
منظورتون این برده؟
You can see links before reply

این برد السیدیش از نوع ili9320 است که میتونید با پروژه multitasking که من آپلود کردم کار کنید. کافیه توابع glcd که توی پروژه من هست رو با السیدی خودتون عوض کنید. درایور السیدی من هم ili9320 است ولی بصورت spi.
موفق باشید.

با عرض سلام مجدد
بنده فایل شما رو تست کردم جواب نداد این برد درایورش ssd1289 هست که بصورت پارالل می بایست درایو بشه. خواهش می کنم در صورت امکان کمک بفرمایید تا بتونم روی LPC1768 و با کمک فایل های خود ( lcd ( glcd.c , glcd.h ، سیستم رو بوت کنم.
با تشکر

abdi_sab
02-02-2014, 22:51
بله منظورم همین برد هست که می فرمایید با این تفاوت که با کمک فیل های خود شرکت سازنده رجیستر lcd رو خوندم که مشخص شد کنترلر lcd از نوع SSD1289 هست.

mansoory
03-02-2014, 09:27
بله منظورم همین برد هست که می فرمایید با این تفاوت که با کمک فیل های خود شرکت سازنده رجیستر lcd رو خوندم که مشخص شد کنترلر lcd از نوع SSD1289 هست.

در مشخصاتش که این رو گفته:

Resolution: QVGA 262K 240*RGB*320
Size: 3.2"
Controller: IL9320
Touch Panel: 4-wire
Pin Pitch: 37Pins & 1mm
2.7-3.3V operating voltage
Backlight: 5 LEDs Parallel
RSM1843 touch panel controller onboard directly compatible with ADS7843
Standard 2.54mm PCB headers for prototyping
Support a SD card interface

mansoory
03-02-2014, 09:50
با عرض سلام مجدد
بنده فایل شما رو تست کردم جواب نداد این برد درایورش ssd1289 هست که بصورت پارالل می بایست درایو بشه. خواهش می کنم در صورت امکان کمک بفرمایید تا بتونم روی LPC1768 و با کمک فایل های خود ( lcd ( glcd.c , glcd.h ، سیستم رو بوت کنم.
با تشکر
بالاخره نفهمیدم این السیدی راه اندازی شده یا نه؟ متاسفانه من به این السیدی دسترسی ندارم. اگه کسی تونسته راه اندازی کنه خواهشا اعلام کنه و بجای قرار دادن فایل، نحوه راه اندازی و نوشتن درایورش رو آموزش بده
ممنون

elahe11556
03-02-2014, 11:30
من که متاسفانه نتونستم راهش بندازم هنوز و حتا نتونستم با فایل های multitasking شما پروژمو دوباره بسازم..
خواهشن اگر کسی می تونه یه کمکی بهم بکنه

abdi_sab
03-02-2014, 11:30
بالاخره نفهمیدم این السیدی راه اندازی شده یا نه؟ متاسفانه من به این السیدی دسترسی ندارم. اگه کسی تونسته راه اندازی کنه خواهشا اعلام کنه و بجای قرار دادن فایل، نحوه راه اندازی و نوشتن درایورش رو آموزش بده
ممنون

شرکت سازنده بورد ظاهرا با دو مدل lcd برد رو تولید کرده یکی ili9320 و دیگری ssd1289 . مدلی که بنده خریداری کردم ssd1289 هست که uc/gui+ucosii روش اجرا شده با تغییراتی در برنامه، مدل کنترلر رو خوندم که نشون می ده درایور از نوع ssd1289 هست اما uc/gui با emwin کمی متفاوت هست و کتابخونه هاشون با هم همخوانی ندارند بنابراین بهتره emwin رو جایگزین uc/gui کنیم از طرفی uc/gui دارای کتابخونه دینامیکی هست که با کتابخونه emwin متفاوت هست و تغییرات با هزینه همراست همینطور uc/gui وابسته به ucosii هست تعویض os رو هم مشکل می کنه از اینرو بهتره lcd با کمک فایل های GLCD.C , GLCD.h که شرکت سازنده داده و شما هم یکبار روی اون تغییرات دادید، درایو بشه.
مشکل من اینه که در حال حاضر نمی تونم این دو فایل رو با فایل lcdconf.c ترکیب کنم البته برخی از دوستان فایل های درایو ssd1289 رو با کمک میکروی st گذاشتند اما بازهم نتونستم این فایل ها رو یکپارچه کنم.
خواهش می کنم در صورت امکان راهنمایی کنید.

D.S
03-02-2014, 12:57
امان از دست این ssd1289
اقای منصوری من جای شما بودم برای محک خودم و نوشتهام حتما این ال سی دی رو که تو فروشگاه هم برای بردی که دارید هست رو میگرفتم و روش کار میکردم.من همه پستها رو خوندم فقط روی یک ال سی دی که تنظیماتش رو خود emwin درست کرده همه بوت کردن.ازجمله خود شما که از ال سی دی isp هم استفاده کردید که نخواید هیچ تغییری بدید.اصل کار emwin هم فکر کنم همین تنظیم ال سی دی هست باقیش رو توی pdf کامل توضیح داده.

mansoory
03-02-2014, 13:27
امان از دست این ssd1289
اقای منصوری من جای شما بودم برای محک خودم و نوشتهام حتما این ال سی دی رو که تو فروشگاه هم برای بردی که دارید هست رو میگرفتم و روش کار میکردم.من همه پستها رو خوندم فقط روی یک ال سی دی که تنظیماتش رو خود emwin درست کرده همه بوت کردن.ازجمله خود شما که از ال سی دی isp هم استفاده کردید که نخواید هیچ تغییری بدید.اصل کار emwin هم فکر کنم همین تنظیم ال سی دی هست باقیش رو توی pdf کامل توضیح داده.

من هم مثل بقیه یه برد خریدم که کار کنم. بردی که من از کویر خریدم LPC1768 Mini DK است که السیدی اون ili9320 و بطریق spi روی برد نصب بود. من السیدی دیگه ای ندارم.

در انجمن دوتا السیدی دیگه هم پورت شده:
1- درایور السیدی lpc1788
2- ssd1963
من حرفی ندارم. یکی از دوستان که وقت آزاد داره و میتونه آنلاین باشه و این السیدی رو هم داشته باشه، شروع کنه. من هم هستم.

mansoory
03-02-2014, 13:49
من که متاسفانه نتونستم راهش بندازم هنوز و حتا نتونستم با فایل های multitasking شما پروژمو دوباره بسازم..
خواهشن اگر کسی می تونه یه کمکی بهم بکنه
شما که گفتید السیدی تون ili9320 است. نبایدمشکلی داشته باشید. چه تغییراتی دادید؟ و فایل LCDconf.C رو چطوری تغییر دادید؟

elahe11556
03-02-2014, 14:29
فایل lcdconfig ام همینه
راستش با این توضیحاتی که داده شد و اینکه جواب نمیگیرم الآن دیگه مطمئن نیستم ili9320باشه یا ssd1289
....
با تشکر از توجه دوستان

mansoory
03-02-2014, 14:43
فایل lcdconfig ام همینه
راستش با این توضیحاتی که داده شد و اینکه جواب نمیگیرم الآن دیگه مطمئن نیستم ili9320باشه یا ssd1289
....
با تشکر از توجه دوستان
کاری که ازتون خواستم رو انجام ندادین که!
این همون فایل اولی خودتونه.
باید از پروژه multitasking فایل lcdconf.c رو بردارید و باتوجه به فایلهای glcd.c و glcd.h خودتون، تغییرش بدین
موفق باشید

elahe11556
03-02-2014, 17:47
متوجه شدم که کنترلر السیدیم SSD1298 بوده تا الآن!!!! حالا باز دارم روش کار میکنم، بهتر شده، اما جواب نداده هنوز!! :unh:

D.S
03-02-2014, 18:30
من هم مثل بقیه یه برد خریدم که کار کنم. بردی که من از کویر خریدم LPC1768 Mini DK است که السیدی اون ili9320 و بطریق spi روی برد نصب بود. من السیدی دیگه ای ندارم.

در انجمن دوتا السیدی دیگه هم پورت شده:
1- درایور السیدی lpc1788
2- ssd1963
من حرفی ندارم. یکی از دوستان که وقت آزاد داره و میتونه آنلاین باشه و این السیدی رو هم داشته باشه، شروع کنه. من هم هستم.
حالا این شد.من هستم و قول میدم تا ال سی دی رو راه نندازم اف نشم و دائم ان باشم.خیلی هم با هاش ور رفتم برای همین یکم راه افتادم تنظیمات و درایور GUIDRV_CompactColor_16 رو هم پیدا کردم.شما بفرماید تا من انجام بدم.اون درایور ssd1289 که یکی از دوستان بالا گذاشته خیلی کامله و تمام موارد که در کاتالوگ و سایت اصلی در مورد GUIDRV_CompactColor_16 گفته را لحاظ کرده ولی نمیشه راش انداخت.یک اقای دیگه هم ادعا داشت که ال سی دی رو راه انداخته و چند تا فیلم هم ازش گذاشت ولی فکر کنم برای گشف این دستاورد دزدیدنش چون خبری اش نیشت.طفلی فیلم میزاشت سرمون بود:018:

D.S
03-02-2014, 22:28
سلام به همگی این فایلهای کانفیگ من هست لطفا نگاه کنید ببینید مشکل چیه.من تو LCDConf مجبور شدم این چند خط رو که مربوط به تاچ هست رو حذف کنم.
نکته دیگه برد اموزشی که دارم پایه های دیتا ال سی دی پشت هم نیستن.هدرش رو ببینید متوجه میشید.مشکل من وقتی شبیح سازی میکنم روی gpi init گیر میکنه

mansoory
04-02-2014, 00:33
سلام به همگی این فایلهای کانفیگ من هست لطفا نگاه کنید ببینید مشکل چیه.من تو LCDConf مجبور شدم این چند خط رو که مربوط به تاچ هست رو حذف کنم.
نکته دیگه برد اموزشی که دارم پایه های دیتا ال سی دی پشت هم نیستن.هدرش رو ببینید متوجه میشید.مشکل من وقتی شبیح سازی میکنم روی gpi init گیر میکنه

این فایلها رو دیدم. این راهش نیست!
از این فایلها میشه فهمید که درایور این السیدی همونطور که گفتید GUI_Compact color هست. در راهنمای emwin 5.22 صفحه 964 هم درایور السیدی رو ذکر کرده که بصورت 16 بیتی ساپورت شده.
می مونه تابع ست فانکشنش که اون هم در صفحه 989 گفته که از مود GUIDRV_FLEXCOLOR_F66702 باید استفاده بشه.

همونطور که میدونید تنظیمات السیدی در فایل LCDConf.c انجام میشه. تابعی به نام LCD_X_Config در اون هست. در این تابع دوتا پارامتری که ذکر شد به emwin معرفی میشه.
اولیGUI_COMPACT_COLOR هست که باید به این صورت معرفی بشه:
GUI_DEVICE_CreateAndLink(DISPLAY_DRIVER, COLOR_CONVERSION, 0, 0);
ماکروی DISPLAY_DRIVER رو در بالای فایل پیدا کنید و مقدارش رو GUIDRV_COMPACT_COLOR_16 قرار بدین.
ماکروی COLOR_CONVERSION رو هم در بالای تابع پیدا کنید و مقدارش رو GUICC_M565 قرار بدین که به معنای 64k رنگ هست (16 بیت):
/* Color conversion */
#define COLOR_CONVERSION GUICC_M565

/* Display driver */
#define DISPLAY_DRIVER GUIDRV_COMPACT_COLOR_16

حالا در تابع LCD_X_Config این دستور رو در انتهای اون بنویسید:
PortAPI.pfWrite16_A0 = LCD_X_8080_16_Write00_16;
PortAPI.pfWrite16_A1 = LCD_X_8080_16_Write01_16;
PortAPI.pfWriteM16_A1 = LCD_X_8080_16_WriteM01_16;
PortAPI.pfReadM16_A1 = LCD_X_8080_16_ReadM01_16;
GUIDRV_FlexColor_SetFunc(pDevice, &PortAPI, GUIDRV_FLEXCOLOR_F66702, GUIDRV_FLEXCOLOR_M16C0B16);

در تابع set function ماکروی GUIDRV_FLEXCOLOR_M16C0B16 رو با توجه به جدول صفحه 990 انتخاب کنید. من حدس میزنم که باس 16 بیتی استفاده شده باشه به همین دلیل از این گزینه استفاده کردم. ضمنا این السیدی به احتمال زیاد حافظه cache نداره. بعدها که السیدی راه افتاد میتونید این ماکرو رو عوض کنید و باجایگذاری GUIDRV_FLEXCOLOR_M16C1B16 تست کنید که السیدی cache داره یا نه.
4 تا مقدار دهی هم بالای این تابع می بینید که برای اعلان اشاره گر توابع ارسال فرمان (A0)، داده (A1) و ارسال بلوکی فرمان و داده بکار میره. اینجا شما باید به درایور السیدی تون مراجعه کنید (فایلهای GLCD.H, GLCD.C) و این توابع رو پیدا کنید. درصفحه 991 گفته که آرگومانهای این توابع باید چطوری باشه. این توابع رو بجای LCD_X_8080_6... بنویسید.
این کارها رو انجام بدین و هرجا سوالی بود بفرمایید
من در خدمتتون هستم

D.S
04-02-2014, 04:29
تا الان روش کار کردم نشد.بیشتر تنظیمات همین بود.دوستان که میخوان تست کنن فقط از ورژن 5.18 استفاده کنند که این السیدی رو ساپرت میکنه.من به دو قسمت شک دارم.اول توابعی هست که باید برای السیدی از روی هدر اصلی بنویسم و دوم به LCD_X_Config که من به این شکل نوشتم

void LCD_X_Config(void)
{
GUI_DEVICE * pDevice;
CONFIG_FLEXCOLOR Config = {0};
GUI_PORT_API PortAPI = {0};
//
// Set display driver and color conversion
//
pDevice =GUI_DEVICE_CreateAndLink(DISPLAY_DRIVER, COLOR_CONVERSION, 0, 0);
//
// Display driver configuration
//
LCD_SetSizeEx (0, XSIZE_PHYS, YSIZE_PHYS);
LCD_SetVSizeEx (0, VXSIZE_PHYS, VYSIZE_PHYS);

PortAPI.pfWrite16_A0 = LCD_X_Write00_16;
PortAPI.pfWrite16_A1 = LCD_X_Write01_16;
PortAPI.pfWriteM16_A1 = LCD_X_WriteM01_16;
PortAPI.pfReadM16_A1 = LCD_X_ReadM01_16;
GUIDRV_FlexColor_SetFunc(pDevice, &PortAPI, GUIDRV_FLEXCOLOR_F66702, GUIDRV_FLEXCOLOR_M16C1B16);


/*#if (USE_TOUCH == 1)
//
// Set orientation of touch screen
//
GUI_TOUCH_SetOrientation(DISPLAY_ORIENTATION);
//
// Calibrate touch screen
//
GUI_TOUCH_Calibrate(GUI_COORD_X, 0, WIDTH - 1, TOUCH_LEFT, TOUCH_RIGHT);
GUI_TOUCH_Calibrate(GUI_COORD_Y, 0, HEIGHT - 1, TOUCH_TOP, TOUCH_BOTTOM);
#endif */
}

در مورد کش هم این السی دی داره.فایلهای منو لطفا ببینید مخصوصا دستورات LCD_X_Write00_16 را.فایل هدر اصلی السیدی هم هست

mansoory
04-02-2014, 09:22
تا الان روش کار کردم نشد.بیشتر تنظیمات همین بود.دوستان که میخوان تست کنن فقط از ورژن 5.18 استفاده کنند که این السیدی رو ساپرت میکنه.من به دو قسمت شک دارم.اول توابعی هست که باید برای السیدی از روی هدر اصلی بنویسم و دوم به lcd_x_config که من به این شکل نوشتم

void lcd_x_config(void)
{
gui_device * pdevice;
config_flexcolor config = {0};
gui_port_api portapi = {0};
//
// set display driver and color conversion
//
pdevice =gui_device_createandlink(display_driver, color_conversion, 0, 0);
//
// display driver configuration
//
lcd_setsizeex (0, xsize_phys, ysize_phys);
lcd_setvsizeex (0, vxsize_phys, vysize_phys);

portapi.pfwrite16_a0 = lcd_x_write00_16;
portapi.pfwrite16_a1 = lcd_x_write01_16;
portapi.pfwritem16_a1 = lcd_x_writem01_16;
portapi.pfreadm16_a1 = lcd_x_readm01_16;
guidrv_flexcolor_setfunc(pdevice, &portapi, guidrv_flexcolor_f66702, guidrv_flexcolor_m16c1b16);


/*#if (use_touch == 1)
//
// set orientation of touch screen
//
gui_touch_setorientation(display_orientation);
//
// calibrate touch screen
//
gui_touch_calibrate(gui_coord_x, 0, width - 1, touch_left, touch_right);
gui_touch_calibrate(gui_coord_y, 0, height - 1, touch_top, touch_bottom);
#endif */
}

در مورد کش هم این السی دی داره.فایلهای منو لطفا ببینید مخصوصا دستورات lcd_x_write00_16 را.فایل هدر اصلی السیدی هم هست

SSD1963 هم به نظر میومد cache داشته باشه ولی توسط emwin ساپورت نمیشد. بهتره بجای guidrv_flexcolor_m16c1b16 باید از guidrv_flexcolor_m16c0b16 استفاده کنی.
بیزحمت تست کن و نتیجه رو اعلام کن.
مرسی

D.S
04-02-2014, 11:36
سلام.نه جواب نمیده.guidrv_flexcolor_f66702 خیلی اذیتم کرد و ارور میداد برای همین با همه قسمتاش ور رفتم.

abdi_sab
04-02-2014, 11:55
امان از دست این ssd1289
اقای منصوری من جای شما بودم برای محک خودم و نوشتهام حتما این ال سی دی رو که تو فروشگاه هم برای بردی که دارید هست رو میگرفتم و روش کار میکردم.من همه پستها رو خوندم فقط روی یک ال سی دی که تنظیماتش رو خود emwin درست کرده همه بوت کردن.ازجمله خود شما که از ال سی دی isp هم استفاده کردید که نخواید هیچ تغییری بدید.اصل کار emwin هم فکر کنم همین تنظیم ال سی دی هست باقیش رو توی pdf کامل توضیح داده.

لینک چینی فایل You can see links before reply اسم فایل هم emwin518_stm32f4_ssd1289_keilاگه بشه دانلودش کرد احتمالا کمک بزرگیه.

D.S
04-02-2014, 12:21
این فایل رو بالاتر اقای arvin گذاشته

mansoory
04-02-2014, 12:55
سلام.نه جواب نمیده.guidrv_flexcolor_f66702 خیلی اذیتم کرد و ارور میداد برای همین با همه قسمتاش ور رفتم.

شرمنده.
الان بخش Compact Color رو مجدد خوندم. یه اشتباهی کرده بودم. نیازی به تابع ست فانکشن نیست.

اونجا گفته که در فایل LCDConf.h این ماکرو باید ست تعریف بشه:

#define LCD_USE_COMPACT_COLOR_16
با تعریف این ماکرو، emwin دنبال یه فایل به نام LCDConf_CompactColor_16.h میگرده. باقی ماکروها باید در این فایل تعریف بشه/
البته این فایل رو من در فولدر emwin پیدا نکردم. ولی یکی از دوستان که السیدی رو برای stm پورت کرده این فایل رو پیداش کرده. من اینجا آپلودش کردم.

همه کارها رو ایشون انجامش داده . فقط شماباید بجای فایل LCD_X_16BitIF_STM32.c، معادلش رو برای LPC1768 بنویسید که اونم کار سختی نیست.

موفق باشید.

D.S
04-02-2014, 13:35
بله تو این فایل همه تنظیمات درست هست ولی کار نمیکنه.تو lcd canf این توابع باید باشه یا نه چون تو اون درایور که اروین گداشته نیست.منکه دیگه دارم ناامید میشم.کسی نتونسته؟

PortAPI.pfWrite16_A0 = LCD_X_8080_16_Write00_16;
PortAPI.pfWrite16_A1 = LCD_X_8080_16_Write01_16;
PortAPI.pfWriteM16_A1 = LCD_X_8080_16_WriteM01_16;
PortAPI.pfReadM16_A1 = LCD_X_8080_16_ReadM01_16;

mansoory
04-02-2014, 14:03
بله تو این فایل همه تنظیمات درست هست ولی کار نمیکنه.تو lcd canf این توابع باید باشه یا نه چون تو اون درایور که اروین گداشته نیست.منکه دیگه دارم ناامید میشم.کسی نتونسته؟

PortAPI.pfWrite16_A0 = LCD_X_8080_16_Write00_16;
PortAPI.pfWrite16_A1 = LCD_X_8080_16_Write01_16;
PortAPI.pfWriteM16_A1 = LCD_X_8080_16_WriteM01_16;
PortAPI.pfReadM16_A1 = LCD_X_8080_16_ReadM01_16;
شما با اینا مشکل داری؟
اینکه کاری نداره!
این توابع توی فایل LCD_X_16BitIF_STM32.c قرار گرفته که به درد شما نمیخوره.
اینجا شما باید از توابع موجود در GLCD.h , GLCD.C استفاده کنید.
به این نمونه توجه کنید:
در فایل GLCD.C این تابع برای ارسال فرمان (A0) السیدی SSD1963 استفاده شده:

void ssd1963_WriteIndex (usigned short c)
شما باید ماکرویی به اینصورت در LCDConf.h تعریف کنید:

#define LCD_X_8080_16_Write00 ssd1963_WriteIndex
و برای ارسال داده هم این تابع تعریف شده:

void ssd1963_WriteData (unsigned short c)

که برای اون هم این ماکرو رو تعریف کنید:

#define LCD_X_8080_16_Write01 ssd1963_WriteData

برای دوتای بعدی هم دوتا تابع درست کنید و در یک حلقه for دستورات ارسال write index و write data رو قرار بدین.
موفق باشید

D.S
04-02-2014, 14:10
اقای منصوری تو تابع lcd_x_config من اگه دو خط پاین رو حذف نکنم دونبال این تابع میگردم و ارور میده.این مهم هست برای اول کار که با تاچ کاری ندارم

.\Output\LPC1788_EA_LPC1788_KEIL_CMSIS\Debug_FLASH \Obj\Start_LPC1788_EA_LPC1788_KEIL_CMSIS.axf: Error: L6218E: Undefined symbol GUI_TOUCH_X_ActivateX (referred from GUI_TOUCH_DriverAnalog.o).
.\Output\LPC1788_EA_LPC1788_KEIL_CMSIS\Debug_FLASH \Obj\Start_LPC1788_EA_LPC1788_KEIL_CMSIS.axf: Error: L6218E: Undefined symbol GUI_TOUCH_X_ActivateY (referred from GUI_TOUCH_DriverAnalog.o).
.\Output\LPC1788_EA_LPC1788_KEIL_CMSIS\Debug_FLASH \Obj\Start_LPC1788_EA_LPC1788_KEIL_CMSIS.axf: Error: L6218E: Undefined symbol GUI_TOUCH_X_MeasureX (referred from GUI_TOUCH_DriverAnalog.o).
.\Output\LPC1788_EA_LPC1788_KEIL_CMSIS\Debug_FLASH \Obj\Start_LPC1788_EA_LPC1788_KEIL_CMSIS.axf: Error: L6218E: Undefined symbol GUI_TOUCH_X_MeasureY (referred from GUI_TOUCH_DriverAnalog.o).
Target not created

اقای منصوری من این فایل glcd رو ندارم.فقط با بردم lcd.h هست که توبعی توش هست.لطفا یا این فایل و برام بفرستید یا اینکهاز روی اون کتابخانه بگید کدو توابع هست.هدر مورد نظر در فایلهایی که فرستادم هست

mansoory
04-02-2014, 14:28
اقای منصوری تو تابع lcd_x_config من اگه دو خط پاین رو حذف نکنم دونبال این تابع میگردم و ارور میده.این مهم هست برای اول کار که با تاچ کاری ندارم

.\Output\LPC1788_EA_LPC1788_KEIL_CMSIS\Debug_FLASH \Obj\Start_LPC1788_EA_LPC1788_KEIL_CMSIS.axf: Error: L6218E: Undefined symbol GUI_TOUCH_X_ActivateX (referred from GUI_TOUCH_DriverAnalog.o).
.\Output\LPC1788_EA_LPC1788_KEIL_CMSIS\Debug_FLASH \Obj\Start_LPC1788_EA_LPC1788_KEIL_CMSIS.axf: Error: L6218E: Undefined symbol GUI_TOUCH_X_ActivateY (referred from GUI_TOUCH_DriverAnalog.o).
.\Output\LPC1788_EA_LPC1788_KEIL_CMSIS\Debug_FLASH \Obj\Start_LPC1788_EA_LPC1788_KEIL_CMSIS.axf: Error: L6218E: Undefined symbol GUI_TOUCH_X_MeasureX (referred from GUI_TOUCH_DriverAnalog.o).
.\Output\LPC1788_EA_LPC1788_KEIL_CMSIS\Debug_FLASH \Obj\Start_LPC1788_EA_LPC1788_KEIL_CMSIS.axf: Error: L6218E: Undefined symbol GUI_TOUCH_X_MeasureY (referred from GUI_TOUCH_DriverAnalog.o).
Target not created
توی فایل LCDConf.c هرچی درباره تاچ گفته رو پاکش کنید. بعدها درستش می کنیم


اقای منصوری من این فایل glcd رو ندارم.فقط با بردم lcd.h هست که توبعی توش هست.لطفا یا این فایل و برام بفرستید یا اینکهاز روی اون کتابخانه بگید کدو توابع هست.هدر مورد نظر در فایلهایی که فرستادم هست

به فایل نگاه بندازید.
LCD_write_index و LCD_Write_Data و LCD_Read_Data رو ببینید. اینها بصورت inline تعریف شده که باید حذف بشه و نمونه تابع رو در هدرش قرار بدین

D.S
04-02-2014, 16:56
خسته شدم نمیتونم.اصلا معلوم نیست مشکل از این توابع باشه.چون انواع اقسام درست کردم نشد.یک نقطه هم نمیاد رو السیدی دلم خوش باشه.من اینارو با هدر ال سی دی خودم نوشتم

/************************************************** *******************
*
* LCD_X_Write00_16
*
* Purpose:
* Write to controller, with A0 = 0
*/
void LCD_X_Write00_16(U16 c) {
LCD_RS(0)
LCD_RD(1)
lcd_send(c);
LCD_WR(0)
wait();
LCD_WR(1)
}
/************************************************** *******************
*
* LCD_X_Write01_16
*
* Purpose:
* Write to controller, with A0 = 1
*/
void LCD_X_Write01_16(U16 c) {
LCD_RS(1)
LCD_RD(1)
lcd_send(c);
LCD_WR(0)
wait();
LCD_WR(1)
}
/************************************************** *******************
*
* LCD_X_Read01_16
*
* Purpose:
* Read from controller, with A0 = 1
*/
U16 LCD_X_Read01_16(void) {
unsigned short val = 0;
LCD_RS(1)
LCD_WR(1)
LCD_RD(0)
val = lcd_read();
LCD_RD(1)
return val;
}
/************************************************** *******************
*
* LCD_X_WriteM01_16
*
* Purpose:
* Write multiple bytes to controller, with A0 = 1
*/
void LCD_X_WriteM01_16(U16 * pData, int NumWords) {
LCD_RS(1)
for (; NumWords; NumWords--) {
wr_dat(*pData);
pData++;
}
}
/************************************************** *******************
*
* LCD_X_WriteM00_16
*
* Purpose:
* Write multiple bytes to controller, with A0 = 0
*/
void LCD_X_WriteM00_16(U16 * pData, int NumWords) {
LCD_RS(0);
for (; NumWords; NumWords--) {
wr_cmd(*pData);
pData++;
}
}
/************************************************** *******************
*
* LCD_X_ReadM01_16
*
* Purpose:
* Read multiple bytes from controller, with A0 = 1
*/
void LCD_X_ReadM01_16(U16 * pData, int NumWords) {
LCD_RS(1);
for (; NumWords; NumWords--) {
rd_reg(*pData);
pData++;
}
}

mansoory
04-02-2014, 17:06
خسته شدم نمیتونم.اصلا معلوم نیست مشکل از این توابع باشه.چون انواع اقسام درست کردم نشد.یک نقطه هم نمیاد رو السیدی دلم خوش باشه.من اینارو با هدر ال سی دی خودم نوشتم

/************************************************** *******************
*
* LCD_X_Write00_16
*
* Purpose:
* Write to controller, with A0 = 0
*/
void LCD_X_Write00_16(U16 c) {
LCD_RS(0)
LCD_RD(1)
lcd_send(c);
LCD_WR(0)
wait();
LCD_WR(1)
}
/************************************************** *******************
*
* LCD_X_Write01_16
*
* Purpose:
* Write to controller, with A0 = 1
*/
void LCD_X_Write01_16(U16 c) {
LCD_RS(1)
LCD_RD(1)
lcd_send(c);
LCD_WR(0)
wait();
LCD_WR(1)
}
/************************************************** *******************
*
* LCD_X_Read01_16
*
* Purpose:
* Read from controller, with A0 = 1
*/
U16 LCD_X_Read01_16(void) {
unsigned short val = 0;
LCD_RS(1)
LCD_WR(1)
LCD_RD(0)
val = lcd_read();
LCD_RD(1)
return val;
}
/************************************************** *******************
*
* LCD_X_WriteM01_16
*
* Purpose:
* Write multiple bytes to controller, with A0 = 1
*/
void LCD_X_WriteM01_16(U16 * pData, int NumWords) {
LCD_RS(1)
for (; NumWords; NumWords--) {
wr_dat(*pData);
pData++;
}
}
/************************************************** *******************
*
* LCD_X_WriteM00_16
*
* Purpose:
* Write multiple bytes to controller, with A0 = 0
*/
void LCD_X_WriteM00_16(U16 * pData, int NumWords) {
LCD_RS(0);
for (; NumWords; NumWords--) {
wr_cmd(*pData);
pData++;
}
}
/************************************************** *******************
*
* LCD_X_ReadM01_16
*
* Purpose:
* Read multiple bytes from controller, with A0 = 1
*/
void LCD_X_ReadM01_16(U16 * pData, int NumWords) {
LCD_RS(1);
for (; NumWords; NumWords--) {
rd_reg(*pData);
pData++;
}
}

دوتا کار کوچیک مونده:
1- فایلهای GLCD.H و GLCD.C که برات فرستادم رو خارج از emwin تست کن. اگه کار کرد برو توی فایل LCDConf.C توی تایع LCD_X_DisplayDriver در قسمت LCD_X_INITCONTROLLER: تابع پیکربندی السیدی رو فراخوانی کن. تابع خودش احتمالا مشکل داشته باشه.
توی فایل GLCD.C این تابع اینطوری اومده:
void LCD_Initializtion(void)

2- پروژه رو دیباگ کن و ببین آیا در GUI_Init گیر میکنه یا نه؟ وقتی گیر کرد Pause کن و ببین آیا وارد HardFault Handler شده؟
ضمنا کل پروژه ات رو آپ کن ببینم که اگه سیستم عامل استفاده کردی مشکلش کجاست

D.S
04-02-2014, 17:36
منتمام فایلهای اینیت ال سیدی رو جدا گانه با پایه ها چک کردم کار میکنه.برنامه دقیقا روی HardFault Handler گیر میکنه.من از سیستم عامل استفاده نکردم.

sjafarim
04-02-2014, 18:49
سلاااممم
آقا من 2 روز نبودم چه کردین شونصد تا پست زدین، آفرین واقعا دمت گرم پیگیری...
چند تا نکته:
d.s :
اول شما حواست باشه ولتاژی که داری به lcd ایت میدی از 2.8 بیشتر نباشه که کلا کار نکنه.
ببینید،من همین درایور 1289 رو با emwin راه انداختم، دنبال compact color نرو که به این راحتیا نیست.
بدبختا خودشون اومدن تو ورژن 5.22 درایور 1289 رو به flex color ها اضافه کردن که راحت باشی. دیگه مشکل چیه؟شما الان بدون emwin کامل lcd ایت رو راه انداختی؟
اگر آره فایل کتابخانه lcd ایت رو که کاملا ازشش جواب گرفتی بفرست تا روی LCDConf.c تنظیمش کنم برات. خودتم کاملا تمام فایل های emwin 5.22 رو تو یه پروژه آماده emwin جایگزین کن. همشو، تمام هدرها، تمام سورس ها و تمام لایبرری ها.

** یه نکته هم بگم: درسته اکثر توابع سطح پایین emwin برای درایورهای 16 بیت نوشته شده ولی رو 8 بیت هم جواب میدن، شما لایبرری خودتو 8 بیت بنویس اینترفیسی که به emwin معرفی میکنی 16 بیت باشه، مشکلی پیش نمیاد. من با st همین 1289 رو تو 8 بیتو 16 بیت راه اندازی کردم، اصللا مهم نیست شما لایبرری lcd رو چجوری نوشته باشی...

** یک نکته دیگه: جناب منصوری عزیز، من دقیقا اون موقع که درگیر 1289 بودم رفتم از تو پروژه یه بنده خدایی که با emwin فول لایسنس آپ کرده بود فایلهای compact color ها رو دانلود کردم و
گذاشتم تو پروژم، ولی جواب نداد. فکر میکنم داخل .lib اصلی emwin اطلاعات نوع لایسنس مورد استفاده نگه داری میشه و مانع کار کردن پروژه میشه...

D.S
04-02-2014, 19:51
اقا شما میاد یچیز دست پا شکسته میگید و میرید بعد از چند روز میاید.شما که میگید راه انداختید لااقل lcd conf رو میزاشتی تا خودم درستش کنم.فقط پایه ها بوده دیگه.اعصاب و روانم رو رخته به هم.من pdf 5.22 رو خوندم نوشته توی ورژن 5.18 این درایور ساپرت میشه.تاین فایل هدر من که جواب میده

sjafarim
04-02-2014, 23:29
دوست عزیزم
باز جواب سوال منو ندادی:


شما الان بدون emwin کامل lcd ایت رو راه انداختی؟


الان این بدون emwin جواب میده دیگه؟


اقا شما میاد یچیز دست پا شکسته میگید و میرید بعد از چند روز میاید.شما که میگید راه انداختید لااقل lcd conf رو میزاشتی تا خودم درستش کنم.فقط پایه ها بوده دیگه.اعصاب و روانم رو رخته به هم.من pdf 5.22 رو خوندم نوشته توی ورژن 5.18 این درایور ساپرت میشه.تاین فایل هدر من که جواب میده


برادر من، emwin از 5.18 درایور 1289 رو ساپورت میکنه، ولی با لایسنس فول و لایبرری compact color که ما نداریم.
حالا لطف کردن تو 5.22 به flex color اضافش کردن برامون، خدا خیرشون بده.:wink:
این فایل conf من ببینش، از flex color استفاده کردم با emwin 5.22 (پیوست شد) // به تابع LCD_X_Config دقت کن //
ببین خودت تست بزن تا من درایورتو نگا کنم.



فقط پایه ها بوده دیگه
منظورت چیه؟بیشتر توضیح بده...
emwin به پایه ها و توابع سطح پایین لایبرریت کاری نداره که...

D.S
05-02-2014, 01:03
سلام مجدد بله اون هدر کار میکنه.من فایل کانفیگ رو دیدم.فرقی با کانفیگ من نداره.من هرکاری میکنم برنامه تو تابع guiinit() گیر میکنه.یک سوال ایم وینها برای 1788 هست و من تمام اون فایلهایی که مربوط به 1788 است رو حذف میکنم و فایلهای سیستم و ستاپ 1768 رو بهش اضافه میکنم.خواستم ببینم کارم درسته؟دیگه به همه چی شک دارم.
اینکه گفتم فقط تعویض پایه هست فکر کردم همه چی رو تو فایل کانفیگ تعریف کردید.هدر فیکس کالر در هردو ورژن 18 و22 یکی هست و اون 702 درش تعریف شده

sjafarim
05-02-2014, 02:07
متاسفانه نمیتونم پروژه کامل اپ کنم چون پروژه تجاریه. template هم از emwin آماده ندارم و زمان میبره اماده کردنش.
یک بار کل پروژت رو اپ میکنی رو خودش اصلاح کنم برات. اگر در پستای قبل اپ کردی از مدیریت فایل های پیوست مجدد قرار بده.

sjafarim
05-02-2014, 02:37
سلام مجدد بله اون هدر کار میکنه.من فایل کانفیگ رو دیدم.فرقی با کانفیگ من نداره.من هرکاری میکنم برنامه تو تابع guiinit() گیر میکنه.یک سوال ایم وینها برای 1788 هست و من تمام اون فایلهایی که مربون به 1788 ست رو حذف میکنم و سیستم و ستاپ 1768 رو بهشاضافه میکنم.خواستم ببینم کارم درسته؟دیگه به همه چی شک دارم.
اینکه گفتم فقط تعویض پایه هست فکر کردم همه چی رو تو فایل کانفیگ تعریف کردید.هدر فیکس کالر در هردو ورژن 18 و22 یکی هست و اون 702 درش تعریف شده
- والا اگه منظورتون از روالی که گفتین اینه، من چیزی ازش نفهمیدم.



میشه همون فایل های کنفیگش رو بدی؟

- فایل کانفیگ lcd رو که دادم خدمتتون، منظورتون کانفیگ چیه؟

* کمی صبور باشید تا پروژتون رو بررسی کنم.

elahe11556
05-02-2014, 11:43
سلام آقای جعفری
شرمنده اگر میشه برای من فایل lcdconfig رو تنظیم کنید.
این هم فایل های السیدیم هست که کامل جواب گرفتم ازشون. درایورم هم ssd1289یا ssd1298 هست

ببخشید این فایل ssd1289.h رو که include کردید من ندارم....

تو فایل LCDConf.rar (You can see links before reply)
که آقای جعفری آپلود کردن

sjafarim
05-02-2014, 12:42
سلام آقای جعفری
شرمنده اگر میشه برای من فایل lcdconfig رو تنظیم کنید.
این هم فایل های السیدیم هست که کامل جواب گرفتم ازشون. درایورم هم ssd1289یا ssd1298 هست
سلام
درایور 1298 اصلا وجود نداره، اون اشتباه تایپی یکی از فروشگاه ها بود همون 1289 ه.
داخل اون فایل زیپ، فایل کانفیگ lcd مربوط به emwin بود نه کتابخانه lcd. من با st کار میکنم اگر کتابخانه 1289 با st بدردتون میخوره آپ کنم.

شما هم کارتون مثل d.s هست، اجازه بدید برسم اون فایل ایشون رو تنظیم کنم آپ میکنم شما هم همونو استفاده کنید.

sjafarim
05-02-2014, 18:54
با فرض این که درایوری که داخل پروژه شما بود؛ بدون emwin کار می کرد، پروژه پیوست شده باید کار کنه.
سعی کنید هر کاریو می خواید شروع کنید خودتون از صفر بسازیدش، وقتی فایل از اینور اونور میگیرید میچسبونید بهم تو پروژه بزرگ همه چی قاطی میشه...
کتابخونه lcd ایتون رو هم به صورت .c و .h در آوردم.
موفق باشید.

D.S
05-02-2014, 19:09
جای خوشحالی صفحه بالاخره برفک شد.کار نمیکنه ولی بازم همینش جای امیدواریه
اقای جعفری دستت درد نکنه ولی نه کار نمیکنه.فقط قبلا صفحه سفید بود الان برفکی.درایور السی دی که دو قسمت کردی رو دوباره بیرون از emwin چک کردم کار میکنه .باز ممنون مثل اینکه شدنی نیست

sjafarim
05-02-2014, 20:13
خواهش میکنم.
ولتاژ lcd باید 2.8 باشه، اینو که رعایت میکنی؟
من فکر کنم مشکل از delay های زیاد استفاده شده در کتابخانه lcd ایتون باشه (delay زیاد باعث هنگ کردن emwin میشه). delay هارو کم کنید. اون تابع wait که اسمبلی نوشته شده رو asm اولشو بردارید، داخلشم به جای اونایی که توشه یه for شمارش 0 تا10 بذارید.
در کل delay هارو کم کنید امتحان کنید رو همون پروژه که فرستادم.


باشه ممنون. لطف می کنید...
شما امتحان کنید...
تو همون پروژه لایبرری های lcd سالم که دارید جایگزین اون لایبرری کنید درست میشه. مشکل از همونه...

D.S
05-02-2014, 20:57
نه ربطی به اون دلی ها نداره امتحان کردم نشد.این فایلا تون رو تو هر پروزه دیگه هم میزارم گیر میده.یکی به 66702 هست که ا اینکه توی فیکس کالر تعریف شده ولی ارور میده وقتی 66708 میدم درست میشه که برای درایور دیگه هست.hwconf رو هم شما تو پروژتون اد نکردید.به اونم گیر میده

D.S
05-02-2014, 22:23
اقا یک سوال چی این پروژه 5.22 هست؟ برنامه اصلی emwin کدومه؟ GUI_CM3.lib چیه و کارش چیه و از کجا امده؟؟
اقای جعفری شما که زحمت کشیدید روی همون پروزه 5.22 این کار رو انجام میدادید که خود برنامه EMWIN_522_KELE4_M3 هم بود.من که با این برنامه شما گیج تر هم شدم.این برنامه چه ربطی به 5.22 داره .لطفا بیاید یکم زیر دیپلم توضیح بدید ببینم چکار کردی.این پروژه اصلا EMWIN هست یا چیز دیگه

اقا یکی نیست یکم توضیح بده.دیگه درایور اصلا برام مهم نیست فقط یکم در مورد GUI_CM3.lib یا EMWIN_522_KELE4_M3 توضیح بدید و بگید قابل تنظیم یا ساخت هست یا نه

sjafarim
06-02-2014, 14:25
بله پروژه emwin هست.
فایل اصلی emwin همون
GUI_CM3.lib هست که در اون پروژه ای که آماده کردم برات از ورژن 5.22 استفاده شده بود.
توی بعضی از فایل ها که نوشته 5.16 بدلیل اینه که اون فایل ها همخونی داشتن با 5.22 و نیازی به تعویضشون نبوده پس من عوض نکردم.
(این فایل ها معمولا در release های شرکت های مختلف که لایسنس از segger خریداری کردن تفاوت های اندکی اون هم در هدر ها و نام متغییر ها داره ولی در کل طی ورژن های مختلف تغییر اساسی نمیکنن)
مهم ترین چیز ها که در ورژن های مختلف فرق میکنن فایل هایی هست که به صورت h. و c. در فولدر gui هست و مربوط به امکانات مختلف بصری مثل دکمه، اسکرول، لیست ها، ویندوزها و... هستن؛ همچنین فایل
GUI_CM3.lib که تمام توابع سطح پایین اصلی emwin توش نوشته شده و به صورت lib در آوردن.

فایل .lib نه نیاز به تنظیم داره نه ساخت، هنر اصلی شرکت segger که emwin رو ساخته نوشتن همین لایبرری بوده و ما فقط ازش استفاده میکنیم.
*در اون پروژه من فایل های مربوط به cmsis رو هم قرار دادم که اگر لازمت شد راحت ازش استفاده کنی.

D.S
06-02-2014, 14:38
مرسی.حالا اگه من بخوام به جایGUI_CM3.lib از لابری دیگریش استفاده کنم چرا به مشکل میخورم.این سوال رو پرسیدم چون این لابرری از نظر حجم و اسم با هیچ شباهدی با ورژنهای دیگش نداشت.من وقتی این لابرری رو عوض میکنم برانه گیر میکنه .
اگه بخوام با فایلهای کنفیگ رو ورژن 5.22 خودم پروزه بسازم میشه؟چکارهایی باید کرد؟وقتی هدر سیتم و ستاپ 1768 رو به جای 1788 اضافه میکنم برنامه مشکل دار میشه.نمیدونم مشکل از کجاست که راه نمیفته

sjafarim
06-02-2014, 14:47
منظورت از لایبرری دیگه ورژن های دیگست؟
کل فایل هارو از یه جا بردار- مال یه ورژن باشه هرکاری میکنی.
روش ساخت پروژه emwin هم که آقای منصوری کامل توضیح دادن از رو همون پیش برید، هیچ کم و کاستی در توضیحات ایشون نیست و همه چی گفته شده.
شما اول یه پروژه خالی برا 1768 بساز.
بعد کتابخونه lcd ایت رو بیار توش و از lcd تصویر بگیر.
بعد emwin رو به پروژه اضافه کن.

D.S
06-02-2014, 14:47
امکانش هست خودتون پروژه رو تست کنید ببینید با برد خودتون کار میکنه یا نه.درایور السی خودتون رو بزارید ببینید درسته.چی باید بیاد روی السیدی؟

sjafarim
06-02-2014, 14:53
من با lpc کار نکردم.
شما رو چه بردی تست میکردی؟lantigerبود؟ کدوم بردو داری؟

abdi_sab
06-02-2014, 16:28
من با lpc کار نکردم.
شما رو چه بردی تست میکردی؟lantigerبود؟ کدوم بردو داری؟

سلام
از فایلی که به اشتراک گذاشتید ممنونم بنده فایل شما رو روی lantiger lpc1768 پورت کردم و جواب داد . فایلهای GUI رو که نگاه کردم دیدم ورژن 5.20 استفاده شده .
مشکلی که در حال حاضر دارم اینه که وقتی متن طولانی می شه تا انتهای lcd رو پر نمی کنه .
ممنون از راهنمایی تون.

sjafarim
06-02-2014, 18:13
درسته 5.20 ه ؛ 5.20 هم ساپورت میکنه 1289 رو flex color ، حالا من از اول چون گفته بودم 5.22 دیگه نگفتم این 5.20 ه که دوستمون فک نکنه چون 5.20 ه کار نکرده...!
یعنی چی تا انتهارو پر نمیکنه؟ یه عکس ازین مشکل بگیر بذار ببینیم چیه قضیه.

D.S
06-02-2014, 19:34
من با lpc کار نکردم.
شما رو چه بردی تست میکردی؟lantigerبود؟ کدوم بردو داری؟
من برد همسایه رو دارم .
--------------------------------------
khm: لطفا از بردن اسم سایت همسایه خودداری کنید