جناب آقای رییسی من با شور و شوق زیاد منتظر مثال یاد شده هستم.البته هر وقت که فرصت کردین.
مهندس برای stm کی حاظر میشه . اگه من این فیلم بگیرم چرا نمیشه برای stm استفاده کرد.
پورت کردنش خیلی فرق داره .
و سوال بعدیم اینه که اگه من نخوام از سخت افزار آماده استفاده کنم به میکرو خودم چه قطعاتی باید اظافه کنم که بتونم از همه امکانات emwin استفاده کنم .
سوال بعدیم اینه که چرا هر چی سرچ میکنم همه مثالها با lpc هست و با سایر میکرو ها نیست یا اگه هم باشه یه فیلم هست و مثالی نداره
ممنون .
من اومدم فیلم آموزشی خرید کنم با شرکت تماس گرفتم که به من گفتند lpc با stm فرق داره و نمیتونم خرید کنم.
کمترین رم که احتیاج داره چقدره و برای اینکه از همه امکانات استفاده کنیم چقدر رم احتیاج داره ؟؟؟
بله فرق داره .مثال هایی که تو این فیلم ها هست برای LPC هست.ولی کلیت کار با emwin ربطی به میکرو نداره .برای آموزش میتونید فیلم رو بگیرید و از مثال های خود کیل میتونید استفاده کنید:
C:\Keil\ARM\Boards\Keil\MCBSTM32C\emWin
C:\Keil\ARM\Boards\Keil\MCBSTM32E\emWin
C:\Keil\ARM\Boards\Keil\MCBSTM32F200\emWin
C:\Keil\ARM\Boards\Keil\MCBSTM32F400\emWin
Hardware & Software designer
Telegram:@y_r_z
سلام این ارور برای چی هست آقای رییسی
قایل RTL.h هم تو پروژه گذاشتم
compiling GUI_X_Touch_Analog.c...
touch\appl.h(37): error: #20: identifier "BOOL" is undefined
extern BOOL getline (char *, U32);
touch\appl.h(38): error: #20: identifier "BOOL" is undefined
extern BOOL getlineHid (char *, int );
touch\GUI_X_Touch_Analog.c: 0 warnings, 2 errors
compiling Touch_Cal.c...
touch\appl.h(37): error: #20: identifier "BOOL" is undefined
extern BOOL getline (char *, U32);
touch\appl.h(38): error: #20: identifier "BOOL" is undefined
extern BOOL getlineHid (char *, int );
touch\Touch_Cal.c: 0 warnings, 2 errors
compiling system_LPC177x_8x.c...
compiling lpc177x_8x_clkpwr.c...
compiling lpc177x_8x_gpio.c...
compiling lpc177x_8x_emc.c...
compiling lpc177x_8x_pinsel.c...
compiling lpc177x_8x_ssp.c...
compiling lpc177x_8x_timer.c...
CMSIS\source\lpc177x_8x_timer.c(86): warning: #68-D: integer conversion resulted in a change of sign
uint32_t tnum = -1;
CMSIS\source\lpc177x_8x_timer.c: 1 warning, 0 errors
compiling lpc177x_8x_uart.c...
compiling lpc177x_8x_rtc.c...
compiling debug_frmwrk.c...
compiling lpc177x_8x_eeprom.c...
compiling lpc177x_8x_adc.c...
compiling lpc177x_8x_pwm.c...
compiling lpc177x_8x_i2c.c...
".\Output\KAVIR.axf" - 4 Error(s), 6 Warning(s).
Target not created.
Build Time Elapsed: 00:00:07
سلام
من کامپایل کردم کیل 4.74 خطا نداره که !
نمیشه که سمپل خود کیل در کامپایل خطا بدهکد:Build target 'MCBSTM32E' assembling startup_stm32f10x_hd.s... compiling system_stm32f10x.c... compiling LCDConf.c... compiling LCD_X_16BitIF_STM32.c... compiling JOY.c... compiling GUIConf.c... compiling GUI_X.c... compiling main.c... compiling GUIDEMO.c... compiling GUIDEMO_Automotive.c... compiling GUIDEMO_ColorBar.c... compiling GUIDEMO_Conf.c... compiling GUIDEMO_Cursor.c... compiling GUIDEMO_Graph.c... compiling GUIDEMO_Intro.c... compiling GUIDEMO_Listview.c... compiling GUIDEMO_Resource.c... compiling GUIDEMO_Speed.c... compiling GUIDEMO_Start.c... compiling GUIDEMO_TransparentDialog.c... compiling GUIDEMO_Treeview.c... linking... Program Size: Code=119580 RO-data=161028 RW-data=3292 ZI-data=54236 ".\obj\GUIDemo.axf" - 0 Error(s), 0 Warning(s).
همه فایل های هدر که در کنار پروژه نمی ذاره . مثلا همین GUI.H در آدرس :C:\Keil\ARM\Segger\emWin\Includeقرار دارد.
ویرایش توسط mzarkoob : 15-10-2017 در ساعت 00:16
من با ورژن 5.1 کار میکنم
اولین آدرس این خطا میده
Error #542: API '::Board Support.emWin LCD:1.1(API)' required by component 'Keil.MCBSTM32C::Board Support:emWin LCD:SPI IF:2.0.0' is missing
دومین ادرس هم اینه
Error #542: API '::Board Support.emWin LCD:1.1(API)' required by component 'Keil.MCBSTM32E::Board Support:emWin LCD:16-bit IF:2.0.0' is missing
باید ورژن 4.7 نصب کنم
سلام
این عکس موس روچطوری میشه برداشت ؟
ویرایش توسط meysammerrikh : 16-10-2017 در ساعت 10:33
GUI_CURSOR_Show();
GUI_CURSOR_Hide();
Hardware & Software designer
Telegram:@y_r_z
باسلام
مهندس
چرا دستوراتی که guibuilder میسازه با مثال های emwin فرق داره ؟
من در guibuilder ی multipage ساختم با دو تا botton ولی نمیتونم یک باتون رو به یک پیج اختصاص بدم و دیگری رو به ی پیچ دیگه باید چیکار کنم ؟
میشه راهنمایی کنید ؟
یک بار با کپی و ایجاد callback جدید تونستم یکبار باتون رو به بک پیج اختصاص بدم ولی عملکردی که برای باتون نعریف کرده بودم کار نمیکرد ولی همون باتون در خارج از مولتی پیج کار میکرد
/************************************************** *******************
* *
* SEGGER Microcontroller GmbH & Co. KG *
* Solutions for real time microcontroller applications *
* *
************************************************** ********************
* *
* C-file generated by: *
* *
* GUI_Builder for emWin version 5.22 *
* Compiled Jul 4 2013, 15:16:01 *
* (c) 2013 Segger Microcontroller GmbH & Co. KG *
* *
************************************************** ********************
* *
* Internet: SEGGER - Software Development Tools for Embedded Systems Support: support@segger.com *
* *
************************************************** ********************
*/
// USER START (Optionally insert additional includes)
// USER END
#include "DIALOG.h"
/************************************************** *******************
*
* Defines
*
************************************************** ********************
*/
#define ID_WINDOW_0 (GUI_ID_USER + 0x00)
#define ID_BUTTON_0 (GUI_ID_USER + 0x15)
#define ID_BUTTON_1 (GUI_ID_USER + 0x20)
#define ID_MULTIPAGE_0 (GUI_ID_USER + 0x22)
// USER START (Optionally insert additional defines)
// USER END
/************************************************** *******************
*
* Static data
*
************************************************** ********************
*/
// USER START (Optionally insert additional static data)
// USER END
/************************************************** *******************
*
* _aDialogCreate
*/
static const GUI_WIDGET_CREATE_INFO _aDialogCreate[] = {
{ WINDOW_CreateIndirect, "Window", ID_WINDOW_0, 0, 0, 800, 600, 0, 0x0, 0 },
{ BUTTON_CreateIndirect, "set", ID_BUTTON_0, 286, 439, 80, 20, 0, 0x0, 0 },
{ BUTTON_CreateIndirect, "Button", ID_BUTTON_1, 464, 437, 80, 20, 0, 0x0, 0 },
{ MULTIPAGE_CreateIndirect, "Multipage", ID_MULTIPAGE_0, 0, 30, 800, 550, 0, 0x0, 0 },
// USER START (Optionally insert additional widgets)
// USER END
};
/************************************************** *******************
*
* Static code
*
************************************************** ********************
*/
// USER START (Optionally insert additional static code)
// USER END
/************************************************** *******************
*
* _cbDialog
*/
static void _cbDialog(WM_MESSAGE * pMsg) {
WM_HWIN hItem;
int NCode;
int Id;
// USER START (Optionally insert additional variables)
// USER END
switch (pMsg->MsgId) {
case WM_INIT_DIALOG:
//
// Initialization of 'Window'
//
hItem = pMsg->hWin;
WINDOW_SetBkColor(hItem, 0x009D002C);
//
// Initialization of 'Multipage'
//
hItem = WM_GetDialogItem(pMsg->hWin, ID_MULTIPAGE_0);
MULTIPAGE_AddEmptyPage(hItem, 0, "Page");
MULTIPAGE_AddEmptyPage(hItem, 0, "Page");
// USER START (Optionally insert additional code for further widget initialization)
// USER END
break;
case WM_NOTIFY_PARENT:
Id = WM_GetId(pMsg->hWinSrc);
NCode = pMsg->Data.v;
switch(Id) {
case ID_BUTTON_0: // Notifications sent by 'set'
switch(NCode) {
case WM_NOTIFICATION_CLICKED:
// USER START (Optionally insert code for reacting on notification message)
// USER END
break;
case WM_NOTIFICATION_RELEASED:
// USER START (Optionally insert code for reacting on notification message)
// USER END
break;
// USER START (Optionally insert additional code for further notification handling)
// USER END
}
break;
case ID_BUTTON_1: // Notifications sent by 'Button'
switch(NCode) {
case WM_NOTIFICATION_CLICKED:
// USER START (Optionally insert code for reacting on notification message)
// USER END
break;
case WM_NOTIFICATION_RELEASED:
// USER START (Optionally insert code for reacting on notification message)
// USER END
break;
// USER START (Optionally insert additional code for further notification handling)
// USER END
}
break;
case ID_MULTIPAGE_0: // Notifications sent by 'Multipage'
switch(NCode) {
case WM_NOTIFICATION_CLICKED:
// USER START (Optionally insert code for reacting on notification message)
// USER END
break;
case WM_NOTIFICATION_RELEASED:
// USER START (Optionally insert code for reacting on notification message)
// USER END
break;
case WM_NOTIFICATION_MOVED_OUT:
// USER START (Optionally insert code for reacting on notification message)
// USER END
break;
case WM_NOTIFICATION_VALUE_CHANGED:
// USER START (Optionally insert code for reacting on notification message)
// USER END
break;
// USER START (Optionally insert additional code for further notification handling)
// USER END
}
break;
// USER START (Optionally insert additional code for further Ids)
// USER END
}
break;
// USER START (Optionally insert additional message handling)
// USER END
default:
WM_DefaultProc(pMsg);
break;
}
}
/************************************************** *******************
*
* Public code
*
************************************************** ********************
*/
/************************************************** *******************
*
* CreateWindow
*/
WM_HWIN CreateWindow(void);
WM_HWIN CreateWindow(void) {
WM_HWIN hWin;
hWin = GUI_CreateDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), _cbDialog, WM_HBKWIN, 0, 0);
return hWin;
}
// USER START (Optionally insert additional public code)
// USER END
/*************************** End of file ****************************/
- - - Updated - - -
ممنون از پاسخگویی تون
داخل مثال که پایین میزارم تو کدوم قسمت باید دستورات عملکرد یک کلید رو تعریف کنیم ؟
مثال خود emwin هست
/************************************************** *******************
* SEGGER Microcontroller GmbH & Co. KG *
* Solutions for real time microcontroller applications *
************************************************** ********************
* *
* (c) 1996 - 2011 SEGGER Microcontroller GmbH & Co. KG *
* *
* Internet: www.segger.com Support: support@segger.com *
* *
************************************************** ********************
** emWin V5.12 - Graphical user interface for embedded applications **
emWin is protected by international copyright laws. Knowledge of the
source code may not be used to write a similar product. This file may
only be used in accordance with a license and should not be re-
distributed in any way. We appreciate your understanding and fairness.
----------------------------------------------------------------------
File : WIDGET_Multipage.c
Purpose : Demonstrates the use of a MULTIPAGE widget
---------------------------END-OF-HEADER------------------------------
*/
#include <stdlib.h>
#include "GUI.h"
#include "MULTIPAGE.h"
/************************************************** *******************
*
* static data
*
************************************************** ********************
*/
/************************************************** *******************
*
* Dialog resource
*
* This table conatins the info required to create the dialogs.
* It has been created manually, but could also be created by a GUI-builder.
*/
static const GUI_WIDGET_CREATE_INFO _aDialogCreate1[] = {
{ WINDOW_CreateIndirect, "Dialog 1", 0, 0, 0, 260, 100, FRAMEWIN_CF_MOVEABLE },
{ BUTTON_CreateIndirect, "Button", GUI_ID_BUTTON0, 5, 30, 80, 20, 0},
{ TEXT_CreateIndirect, "Dialog 1", 0, 5, 10, 50, 20, TEXT_CF_LEFT }
};
static const GUI_WIDGET_CREATE_INFO _aDialogCreate2[] = {
{ WINDOW_CreateIndirect, "Dialog 2", 0, 0, 0, 260, 100, FRAMEWIN_CF_MOVEABLE },
{ CHECKBOX_CreateIndirect, "", GUI_ID_CHECK0, 5, 30, 0, 0, 0},
{ CHECKBOX_CreateIndirect, "", GUI_ID_CHECK1, 5, 50, 0, 0, 0},
{ TEXT_CreateIndirect, "Select 0", GUI_ID_TEXT0, 25, 30, 50, 15, TEXT_CF_LEFT },
{ TEXT_CreateIndirect, "Select 1", GUI_ID_TEXT1, 25, 50, 50, 15, TEXT_CF_LEFT },
{ TEXT_CreateIndirect, "Dialog 2", 0, 5, 10, 50, 20, TEXT_CF_LEFT }
};
static const GUI_WIDGET_CREATE_INFO _aDialogCreate3[] = {
{ WINDOW_CreateIndirect, "Dialog 3", 0, 0, 0, 260, 100, FRAMEWIN_CF_MOVEABLE },
{ RADIO_CreateIndirect, "", GUI_ID_RADIO0, 5, 30, 0, 0, 0, 3},
{ TEXT_CreateIndirect, "Option 1", GUI_ID_TEXT0, 25, 30, 50, 15, TEXT_CF_LEFT },
{ TEXT_CreateIndirect, "Option 2", GUI_ID_TEXT1, 25, 50, 50, 15, TEXT_CF_LEFT },
{ TEXT_CreateIndirect, "Option 3", GUI_ID_TEXT2, 25, 70, 50, 15, TEXT_CF_LEFT },
{ TEXT_CreateIndirect, "Dialog 3", 0, 5, 10, 50, 20, TEXT_CF_LEFT }
};
static const GUI_WIDGET_CREATE_INFO _aDialogCreate4[] = {
{ WINDOW_CreateIndirect, "Dialog 4", 0, 0, 0, 260, 100, FRAMEWIN_CF_MOVEABLE },
{ MULTIEDIT_CreateIndirect, "Text", GUI_ID_MULTIEDIT0, 5, 30, 200, 40 },
{ TEXT_CreateIndirect, "Dialog 4", 0, 5, 10, 50, 20, TEXT_CF_LEFT }
};
static const GUI_WIDGET_CREATE_INFO _aDialogCreate5[] = {
{ WINDOW_CreateIndirect, "Dialog 5", 0, 0, 0, 260, 100, FRAMEWIN_CF_MOVEABLE },
{ SLIDER_CreateIndirect, "", GUI_ID_SLIDER0, 5, 30, 200, 40 },
{ TEXT_CreateIndirect, "Dialog 5", 0, 5, 10, 50, 20, TEXT_CF_LEFT }
};
static const GUI_WIDGET_CREATE_INFO _aDialogCreate6[] = {
{ WINDOW_CreateIndirect, "Dialog 6", 0, 0, 0, 260, 100, FRAMEWIN_CF_MOVEABLE },
{ SCROLLBAR_CreateIndirect, "", GUI_ID_SCROLLBAR0, 5, 30, 200, 40 },
{ TEXT_CreateIndirect, "Dialog 6", 0, 5, 10, 50, 20, TEXT_CF_LEFT }
};
/************************************************** *******************
*
* Static code
*
************************************************** ********************
*/
/************************************************** *******************
*
* _cbDialog1
*/
static void _cbDialog1(WM_MESSAGE * pMsg) {
WM_HWIN hDlg;
hDlg = pMsg->hWin;
switch (pMsg->MsgId) {
default:
WM_DefaultProc(pMsg);
}
}
/************************************************** *******************
*
* _cbDialog2
*/
static void _cbDialog2(WM_MESSAGE * pMsg) {
WM_HWIN hDlg;
hDlg = pMsg->hWin;
switch (pMsg->MsgId) {
default:
WM_DefaultProc(pMsg);
}
}
/************************************************** *******************
*
* _cbDialog3
*/
static void _cbDialog3(WM_MESSAGE * pMsg) {
WM_HWIN hDlg;
hDlg = pMsg->hWin;
switch (pMsg->MsgId) {
default:
WM_DefaultProc(pMsg);
}
}
/************************************************** *******************
*
* _cbDialog4
*/
static void _cbDialog4(WM_MESSAGE * pMsg) {
WM_HWIN hDlg, hItem;
hDlg = pMsg->hWin;
switch (pMsg->MsgId) {
case WM_INIT_DIALOG:
hItem = WM_GetDialogItem(hDlg, GUI_ID_MULTIEDIT0);
MULTIEDIT_SetText(hItem, "MULTIEDIT widget");
MULTIEDIT_SetInsertMode(hItem, 1);
break;
default:
WM_DefaultProc(pMsg);
}
}
/************************************************** *******************
*
* _cbDialog5
*/
static void _cbDialog5(WM_MESSAGE * pMsg) {
WM_HWIN hDlg;
hDlg = pMsg->hWin;
switch (pMsg->MsgId) {
default:
WM_DefaultProc(pMsg);
}
}
/************************************************** *******************
*
* _cbDialog6
*/
static void _cbDialog6(WM_MESSAGE * pMsg) {
WM_HWIN hDlg;
hDlg = pMsg->hWin;
switch (pMsg->MsgId) {
default:
WM_DefaultProc(pMsg);
}
}
/************************************************** *******************
*
* _cbBkWindow
*
* Purpose:
* Callback routine of the background window, shows the sample title and draws the background
*/
static void _cbBkWindow(WM_MESSAGE* pMsg) {
switch (pMsg->MsgId) {
case WM_PAINT:
GUI_SetBkColor(GUI_BLUE);
GUI_Clear();
GUI_SetColor(GUI_WHITE);
GUI_SetFont(&GUI_Font24_ASCII);
GUI_DispStringHCenterAt("WIDGET_Multipage - Sample", 160, 5);
break;
default:
WM_DefaultProc(pMsg);
}
}
/************************************************** *******************
*
* _cbFrameWin
*
* Purpose:
* Callback routine of the frame window behind the MULTIPAGE widget
*/
static void _cbFrameWin(WM_MESSAGE* pMsg) {
switch (pMsg->MsgId) {
default:
WM_DefaultProc(pMsg);
}
}
/************************************************** *******************
*
* _DemoMultiPage
*
* Purpose:
* Demonstrates the use of a multipage widget
*/
static void _DemoMultiPage(void) {
WM_HWIN hMultiPage, hFrameWin, hDialog;
/* Enable use of memory devices */
WM_SetCreateFlags(WM_CF_MEMDEV);
WM_EnableMemdev(WM_HBKWIN);
WM_SetCallback(WM_HBKWIN, &_cbBkWindow); /* Use own callback routine for background window */
/* Create the frame window */
hFrameWin = FRAMEWIN_Create("FrameWindow", &_cbFrameWin, WM_CF_SHOW, 40, 44, 240, 152);
FRAMEWIN_SetClientColor(hFrameWin, GUI_GREEN);
FRAMEWIN_SetActive(hFrameWin, 1);
FRAMEWIN_SetMoveable(hFrameWin, 1);
/* Create the MULTIPAGE widget */
hMultiPage = MULTIPAGE_CreateEx(7, 6, 220, 120, WM_GetClientWindow(hFrameWin), WM_CF_SHOW, 0, 0);
GUI_Delay(500);
/* Create and attache the MULTIPAGE dialog windows */
hDialog = GUI_CreateDialogBox(_aDialogCreate1,
GUI_COUNTOF(_aDialogCreate1),
&_cbDialog1, WM_UNATTACHED, 0, 0);
MULTIPAGE_AddPage(hMultiPage, hDialog, "Page 1");
GUI_Delay(500);
hDialog = GUI_CreateDialogBox(_aDialogCreate2,
GUI_COUNTOF(_aDialogCreate2),
&_cbDialog2, WM_UNATTACHED, 0, 0);
MULTIPAGE_AddPage(hMultiPage, hDialog, "Page 2");
GUI_Delay(500);
hDialog = GUI_CreateDialogBox(_aDialogCreate3,
GUI_COUNTOF(_aDialogCreate3),
&_cbDialog3, WM_UNATTACHED, 0, 0);
MULTIPAGE_AddPage(hMultiPage, hDialog, "Page 3");
GUI_Delay(500);
hDialog = GUI_CreateDialogBox(_aDialogCreate4,
GUI_COUNTOF(_aDialogCreate4),
&_cbDialog4, WM_UNATTACHED, 0, 0);
MULTIPAGE_AddPage(hMultiPage, hDialog, "Page 4");
GUI_Delay(500);
hDialog = GUI_CreateDialogBox(_aDialogCreate5,
GUI_COUNTOF(_aDialogCreate5),
&_cbDialog5, WM_UNATTACHED, 0, 0);
MULTIPAGE_AddPage(hMultiPage, hDialog, "Page 5");
GUI_Delay(500);
hDialog = GUI_CreateDialogBox(_aDialogCreate6,
GUI_COUNTOF(_aDialogCreate6),
&_cbDialog6, WM_UNATTACHED, 0, 0);
MULTIPAGE_AddPage(hMultiPage, hDialog, "Page 6");
GUI_Delay(500);
/* Demonstrate the use of MULTIPAGE_SetAlign */
MULTIPAGE_SetAlign(hMultiPage, MULTIPAGE_ALIGN_RIGHT);
GUI_Delay(500);
MULTIPAGE_SetAlign(hMultiPage, MULTIPAGE_ALIGN_RIGHT | MULTIPAGE_ALIGN_BOTTOM);
GUI_Delay(500);
MULTIPAGE_SetAlign(hMultiPage, MULTIPAGE_ALIGN_LEFT | MULTIPAGE_ALIGN_BOTTOM);
while (1) {
GUI_Exec();
}
}
/************************************************** *******************
*
* Public code
*
************************************************** ********************
*/
/************************************************** *******************
*
* MainTask
*/
void MainTask(void) {
GUI_Init();
_DemoMultiPage();
}
/*************************** End of file ****************************/
ویرایش توسط meysammerrikh : 17-10-2017 در ساعت 14:58
مشکل حل شد . مورد کرک بود که با اینکه کیل کرک کرده بودم ولی باید real time os کرک میکردم.
خوب حالا من یه مشکل دیگه دارم که من یک پروژه درست میکنم و توابع gui به برنامه اضافه میکنم 100 تا اررور میده
من این فیلم تهیه کردم و همه دیدم
مشکل داره از نظر من
مربی صاف اومده یه مثال باز کرده و توضیح میده . کسی که این فیلم تهیه میکنه شاید مثل من مبتدی باشه . حد اقل یه پروژه از اول درست میکرد و فایل هارو بهش اضافه میکرد
من توی مثال های آماده keil هم اومدم میکرو از stm32f107 به stm32f103vet تغییر دادم فقط اررور بهم داد . حداقل میومد یه پروژه با 1788 درست میکرد و
هدرهارو بهش اظافه میکرد و تنظیمات انجام میداد .
مورد بعدی توضیح نداده که اگه برد ما رم خارجی نداشت و با خواهیم از همه امکانات استفاده کنیم کدوم کتابخانه حذف کنیم.
اگه میشه فیلم این قسمت هم آماده کنید و به مجموعه اظافه کنید
ویرایش توسط jonbakhsh : 21-10-2017 در ساعت 13:48
بدون RAM نمی شه .شما برای راه اندازی LCD باید رم داشته باشید.تو این مثال ها حداقل هدر فایل ها برای راه اندازی emwin و LCD استفاده شده.
بدون RAM شاید حداکثر تا 3.2 اینچ اون هم نصف ونیمه بتونید راه اندازی کنید.وقتی قرار باشه یه میکرو مثل 1788 استفاده بشه ،عدم استفاده از RAM خارجی معنی نداره اصلا.مثل این میمونه که رو یه کامپیوتر Core i7 فقط 1 گیگ ram بذارید.اونوقت ازش انتظار داشته باشید یه نرم افزار سنگین مثل سالید یا آلتیوم هم روش راحت کار کنه.خب معلومه که نمیشه..
Hardware & Software designer
Telegram:@y_r_z
خوب درسته ولی شاید یک نفری مثل من نخواد از همه امکاناتش استفاده کنه. توی مثال های خود کیل هم از انواع میکروها استفاده کرده
بعد اصلا در مورد ساخت پروژه چیزی گفته نشده .من این فیلم برای این گرفتم که ببینم که شما بعد از ساخت پروژه و اظافه کردن کتابخانه ها به چه شکل اررورهارو میگیرد .
من مثال خود کیل باز کردم وقتی میکرو عوض میکنم 100 تا اررور میده .(البته مثال هایی که من باز کردم برای stm بود) ولی فرقی نمیکنه.
اگه ممکنه شما یک کلیپ آماده کنید که توی اون از اول یه پروژه با کیل درست کنید
بعد توابع بهش اظافه کنید
و در مورد توابع هم توضیح بدید که در صورت کم بودن رم و یا فلش میکرو کدام توابع میتونم حذف کنم . همین
ممنون