اقا شما باید تو قسمت اپلیکیشن هر دفعه یک فایل رو بوت کنی و روی ال سی دی ببینی.این فایلی که من گذاشتم باید یک صفحه gps می امد.شما در فایل gui conf باید مقدار حافظه رو GUI_NUMBYTES ( 1024) * 16 بزارید و در gui conf.h همه رو یک کن
اقا شما باید تو قسمت اپلیکیشن هر دفعه یک فایل رو بوت کنی و روی ال سی دی ببینی.این فایلی که من گذاشتم باید یک صفحه gps می امد.شما در فایل gui conf باید مقدار حافظه رو GUI_NUMBYTES ( 1024) * 16 بزارید و در gui conf.h همه رو یک کن
اقا یکی کمک میکنه این تاچ راه بیفته.اقا هدر تاچ برد من این شکلیه
حالا میخوام بزارمش توی اون تابع .من اولش رو اینجور نوشتم ولی باقیش نمیدومکد:int ADC(char ch){ int v; LPC_SC->PCONP |= (1<<12); switch(ch){ case 0 : LPC_PINCON->PINSEL1 |= 1<<14 ; LPC_ADC->ADCR = (1<< ch) | (1<< 8) | (1<<21) | (1<<24) ; while (!(LPC_ADC->ADDR0 & (1UL<<31))); v = (LPC_ADC->ADDR0>>4 & 0xfff); break; case 1 : LPC_PINCON->PINSEL1 |= 1<<16 ; LPC_ADC->ADCR = (1<< ch) | (1<< 8) | (1<<21) | (1<<24) ; while (!(LPC_ADC->ADDR1 & (1UL<<31))); v = (LPC_ADC->ADDR1>>4 & 0xfff); break; case 2 : LPC_PINCON->PINSEL1 |= 1<<18 ; LPC_ADC->ADCR = (1<< ch) | (1<< 8) | (1<<21) | (1<<24) ; while (!(LPC_ADC->ADDR2 & (1UL<<31))); v = (LPC_ADC->ADDR2>>4 & 0xfff); break; case 3 : LPC_PINCON->PINSEL1 |= 1<<20 ; LPC_ADC->ADCR = (1<< ch) | (1<< 8) | (1<<21) | (1<<24) ; while (!(LPC_ADC->ADDR3 & (1UL<<31))); v = (LPC_ADC->ADDR3>>4 & 0xfff); break; } return v ; } void touch(int *x , int *y){ int a,b; LPC_GPIO0->FIODIR |= (1<<23)|(1<<25) ; LPC_PINCON->PINMODE1 |= (1UL<<17)|(1UL<<21); LPC_GPIO0->FIOSET |= (1<<25) ; LPC_GPIO0->FIOCLR |= (1<<23) ; Del(); b= ADC(1); //*y=b; *y=(320*(3330-b))/2490; LPC_PINCON->PINSEL1 &= ~(1<<16) ; LPC_PINCON->PINMODE1 &= ~((1UL<<17)|(1UL<<21)); LPC_GPIO0->FIODIR &= ~((1<<23)|(1<<25)) ; LPC_GPIO0->FIOSET &= ~(1<<23) ; LPC_GPIO0->FIOCLR &= ~((1<<25)|(1<<26)) ; LPC_GPIO0->FIODIR |= (1<<24)|(1<<26) ; LPC_PINCON->PINMODE1 |= (1UL<<15)|(1UL<<19); LPC_GPIO0->FIOSET |= (1<<24) ; LPC_GPIO0->FIOCLR |= (1<<26) ; Del(); a= ADC(2); //*x=a; *x= (240*(3360-a))/2720; LPC_PINCON->PINSEL1 &= ~(1<<18) ; LPC_PINCON->PINMODE1 &= ~((1UL<<15)|(1UL<<19)); LPC_GPIO0->FIODIR &= ~((1<<24)|(1<<26)) ; LPC_GPIO0->FIOSET &= ~(1<<26) ; LPC_GPIO0->FIOCLR &= ~((1<<24)|(1<<23)) ; }
کد:void TouchTask(void) { static U16 xOld; static U16 yOld; static U8 PressedOld; U16 x, y, xDiff, yDiff; U8 Pressed; do { if (y > 280&& y <320) Pressed =0; else Pressed =1; // TBD: Insert function which returns: // 1, if the touch screen is pressed // 0, if the touch screen is released // // Touch screen is pressed // if (Pressed==0) { touch(&x,&y); } // // The touch has already been pressed // if (PressedOld == 1) { // // Calculate difference between new and old position // xDiff = (x > xOld) ? (x - xOld) : (xOld - x); yDiff = (y > yOld) ? (y - yOld) : (yOld - y); // // Store state if new position differs significantly from old position // if (xDiff + yDiff > 2) { xOld = x; yOld = y; GUI_TOUCH_StoreState(x, y); } } // // The touch was previously released // Store state regardless position // } else { if ((x != 0) && (y != 0)) { xOld = x; yOld = y; PressedOld = 1; GUI_TOUCH_StoreState(x, y); } } // // Touch screen is not pressed // Store state if it was released recently // } else { if (PressedOld == 1) { PressedOld = 0; GUI_TOUCH_StoreState(-1, -1); } } // // Make sure // GUI_X_Delay(20); } while (1);
با اجازه بزرگترها بله.مشکل رو هم نوشتم چی بود.البته باتشکر فراوان از اقای اروین و اقای جعفری.
حالا بریم سر تاچ.اینجوره من پیش میرم فکر کنم تا نصف emwin رو بخوام یاد بگیرم این تاپیک بشه 100 برگی
سلام
من یه مشکل دارم میخوام در یک edit نوشته رو تغییر بدم ولی هیچ تغییری نمیکنه.
در حلقه while این دستورات رو گذاشتم.لطفا راهنمایی کنید
GUI_Delay(100); hItem = WM_GetDialogItem(hWin,ID_EDIT_0);
EDIT_SetText(hItem, "ALI");
WM_Invalidate(hWin);
اگه از سیستم عامل استفاده می کنی: تابع TouchTask رو بصورت یک task دربیار و با اولویت پایین اجرا کن.
اگه از سیستم عامل استفاده نمیکنی، اولا حلقه while(1) رو بردار و بعدش تابع TouchTask رو در وقفه یک تایمر قرار بده تا بطور مرتب خوانده و اجرا بشه.
در تابع TouchTask هم حواست باشه، اونجا که از دستور GUI_TOUCH_StoreState(x, y); استفاده شده، xو y مقادیر کالیبره شده تاچ باشند.
اقای منصوری زیر دپلم توضیح بده.این روال رو میدونم.فقط نمیدونم تایمر رو کجاتعریف کنم و زیر روال وقفه رو کجا بنویسم تا این تابع رو فراخوانی کنه.قبل از مین تایمر رو پیکر بندی کنم درسته؟وقفه رو قبل از MainTask بزارم.همینارو متوجه نمیشم.
توی انجمن سرچ کن تا نحوه راه اندازی تایمر رو ببینی. من از rtx استفاده کردم و تایمر رو استفاده نکردم. تابع وقفه که مهم نیست کجا قرار بگیره. بیزحمت اول تایمر رو جدا از emwin راه اندازی کن بعد به emwin وارد کن.
من پیشنهادم اینه که بری rtx رو یاد بگیری. بیشتر به دردت میخوره. توی انجمن هم آموزشش هست
اقای منصوری بخوام با rtx شروع کنم اول باید rtx رو راه اندازی کنم بعد emwin رو به پروزه اضافه کنم.؟من یک پروزه کوچیک با rtx درست کردم به همون emwin اضافه کنم درست میشه
جناب آروین ممنون از اینکه وقت گذاشتی ولی من هنوز موفق نشدم منم فایلمو گذاشتم لطفا اگه وقت داری یه نگاهی به فایل من بنداز من همچنان فقط hello world رو می بینم.
اقای منصوری میشه یک پروژه کامل با rtx بزارید.منم پروژه شما رو خواستم درست کنم کلی فایل میخواد که بعضی هاش رو ندارم مثل uEZRTOS.h از اینترنت گرفتم باز خودش کلی فایل عجیب قریب میخواد.میشه کاملش رو که تمام کتابخانه های مورد نیاز توش باشه رو اپ کنید.منم هنوز وقت نکردم تاچ رو راه بندازم.ممنون میشم
اقا دمت گرم همین مشکل من رو داری.کلی فایل گرفتم و توی پوشه ریختم ولی هنوز تمام نشده.هرفایلی رو که اضافه میکنم خودت چند تا دیگه فایل میخواد.من که یک برنامه ساده با rtx دارم اصلا این هدر ها رو تمیخواد.اقای منصوری میشه پروژه کامل اپ کنید.لطفا
لااقل بگید این همه فایل مربوط به چیه و میشه از کجا پیداشون کرد؟
ویرایش توسط D.S : 09-02-2014 در ساعت 23:48
اقای منصوری جوری گفتید که ادم فکر میکنه اب خوردنه.با اضافه شدن این پوشه و اد کردنشون کلی اروز از نداشتن فایلایی رو میده که خیلی سخت میشه پیداشون کرد.مشه لااقل این فایلهای مورد احتیاج که انکلود شده رو برام بزاری.در مورد rtx هم خیلی سطحی توضیح دادید.جوری ننوشتید که یک تازه کار هم بتونه راش بندازه
شما توی اموزش گفتید دوتا فایل اد کنیم ولی کلی دیگه فایل اد باید کرد میشه یکم توضیح بدید
ویرایش توسط D.S : 10-02-2014 در ساعت 01:40
سلام
با برنامه GUIBuilder فرم رو ساختم همه گزینه ها اضافه میشن.ولی عکس رو که با این برنامه اضافه میکنم هیچ عکسی نشون نمیده.
اگه میشه یه نفر تست کنه ببینه مشکل من رو داره یا نه.
ممنون
جواب میده.اول یک ویندوز خالی بزار بعد عکس بعد چپ کلیک و عکس مورد نطر