ذکر نکرده بودید با rtx
بدون rtx یک تست ساده کنید متوجه می شوید
بله تفاوت هایی هست.
ذکر نکرده بودید با rtx
بدون rtx یک تست ساده کنید متوجه می شوید
بله تفاوت هایی هست.
ویرایش توسط mzarkoob : 11-11-2017 در ساعت 22:28
با سلام
در مثال ها برای پاک کردن پرچم از 1ul استفاده کرده اید مثلا در تایمر
;(lpc_tim0->ir |= (1ul<<0)
عبارت 1ul به چه معناست و چه فرقی با خور 1 میکند؟
این مورد بارها گفته شده
در کل این مواردی است که مربوط به برنامه نویسی سی می شود ولی چون در avr از آن استفاده نشده در اینجا سوال ایجاد می شود
ul مخفف unsigned long است و فرمت عددی که در رجیستر قرار است قرار داده شود را 32 بیتی می کند.
من قسمت cmsis مربوط به lpc1788 را دیدم اما راجع به دستورات FIO چیزی گفته نشد
photo_2017-10-23_20-10-23.jpg
وقتی زحمت بکشید وارد این توابع که فرمودید بشوید میبینید که به عنوان مثال :
کد:void FIO_SetDir(uint8_t portNum, uint32_t bitValue, uint8_t dir) { GPIO_SetDir(portNum, bitValue, dir); }
سلام جناب آقای زرکوب.آیا شما تونستین can bus رو تو lpc1788 عملی کار کنین؟
من خیلی با مثالهای برد EWB-LPC1788-REV4.0 ور رفتم ولی نتیجه ای نگرفتم.میشه راهنمایی کنین.
برد بفرستید شاید مشکل سخت افزاری داشته باشه .اگر مشکل از شرکت کویر باشه رایگان تعمیر میکنند. قبل ارسال با آقای زارعی هماهنگ کنید.
البته من قبلا این مشکل داشتم.
سلام مهندس در نمونه کد uartدر 1788 از فیلم های اموزشی با کتابخونه cmsis ........
میخوام بجای LPC_UART0 از LPC_UART1 استفاده کنم keilخطا میگیره میشه کمکم کنید ...
در کد رجستری که به سادگی می توانید تغییرات را اعمال کنید. حتما می خواهید با cmsis باشد؟
چه خطایی می دهد؟
بله حتما میخوام cmsis باشه.
Source\Main_UART.c(49): error: #167: argument of type "LPC_UART1_TypeDef *" is incompatible with parameter of type "LPC_UART_TypeDef *"
- - - Updated - - -
همزمان دو تا uart هم نمیشه فعال کرد . ممنون میشم که کمکم کنید
- - - Updated - - -
تشکر
نوع ورودی که برای uart1 وارد می کنید ظاهرا فرق باید داشته باشد با نوع ورودی سایر uart ها. اینو در داخل تابع اینیشسیالیز چک کنید.
جسارتا می تونم بپرسم چرا حتما باید این cmsis باشد؟ فکر می کنم با رجیستر می خواستید تغییر بدید تا الان شده بود
ویرایش توسط mzarkoob : 11-12-2017 در ساعت 12:14
سلام.همین که پاسخ سوالات رو میده یه دنیا تشکر.
باشه میرم سراغ رجیستری. چون با cmsis راحت بودم.
امروز وقتی واحد adc رو با همون نمونه کدی که بود راها اندازی کردم . مقدار خونده شده پرش داشت.برای جلوگیری از پرش چیکار باید کنیم؟؟؟
یاعلی مدد
روش ساده برنامه نویسی میانگین گیری است. ولی اگر یک دیتای خیلی پرتی در نمونه ها باشد کل میانگین را یک تکان حسابی می دهد!
در این حالت نمونه ها را از کوچک به بزرگ مرتب سپس چند نمونه کوچک و بزرگ را حذف و مابقی را نمونه میگیرید.
کاربرد دیگر این کار در تاچ است :
------------------------------
روال خواندن از تاچ به این صورت است که ابتدا موقعیت چهار نقطه در گوشه های صفحه تاچ گرفته می شود (کالیبراسیون). سپس سایر نقاط بر اساس این 4 نقطه مقایسه و موقعیت لمس شده تشخیص داده می شود. می توان توسط تابعی موقعیت لمس شده را به واحد پیکسل در tft lcd تبدیل کرد و نمایش داد تا بتوان درستی تاچ را تست کرد.
این چهار نقطه را می توان در جایی ذخیره کرد تا در دفعه بعد دستگاه روشن می شود لازم نباشد مجدد کالیبراسیون انجام شود.
روال خواندن یک نقطه نیز بدین صورت است : به محض اینکه توسط پایه TP_IRQ در لبه پایین رونده تشخیص زده شده شدن تاچ انجام شود، تعدادی موقعیت توسط تابعی خوانده می شود. این موقعیت ها از کوچک به بزرگ مرتب شده و چند نقطه ابتدا و انتها حذف و از سایر نقاط میانگین گرفته می شود.
Telegram: Contact @armeducation
-----------------------
قسمت تاچ را مشاهده کرده اید؟
نه هنوز تاچ رو مشاهده نکردم.
سلام. بنده قصد دارم عملیاتی مثل panning،rolling،zoom in و zoom out رو روی عکس اجرا کنم. به صورت جزیی یه برنامه هایی نوشته ام که کار panning و rolling رو انجام میده. اما از صفرش رو خودم نوشتم و احتمالا بهینه نیست و حتی ممکنه ایرادانی داشته باشه. کتابخونه ای چیزی میشناسید معرفی کنید؟ یا راهکاری دارید برای این کار؟ برای زوم هم مالتی تاچ رو راه انداختم و از روی تغییر فاصله دو نقطه تشخیص میدم که هدف بزرگنمایی یا کوچک نمایی هست ( البته در این مورد هم خودم نوشتم و احتمالا خالی از ایراد نیست) اما اینکه چطور زوم کنم نمیدونم. ایا مدام عکس رو اسکیل کنم یا راه بهتری هست؟ پیشنهادی دارید ممنون میشم. چه تو زمینه تشخیص این موارد از روی تاچ و چه در زمینه انجام عملیات نمایش
اینکه مواردی را خودتان انجام دادید مشخصه وقت گذاشتید و زحمت کشیدید.
توابع open CV من فقط شنیدم باهاش پردازش تصویر میشه انجام داد. در غیر این صورت الگوریتم بزرگ نمایی و کوچک نمایی را خودتان بایستی پیاده سازی کنید.
سلام
ببخشید مشکلی داشتم. هر کاری کردم نشد حلش کنم. اگه کمک کنید ممنون میشم.
من یه برنامه توی keil نوشتم که از چندین سورس کد مجزا توش استفاده شده و همه به برنامه اصلی add شدن.
توی برنامه اصلی من مقدار یک سنسور دما رو می خونم و توی یکی دیگه از سورس کدها مورد استفاده قرار میدم تا روی یک گراف توی یک ال سی دی نمایشش بدم. اما متاسفانه این مقدار توی سورس کد مورد استفاده صفر هست. حتی به این متغیر عدد ثابت هم دادم اما بازم توی سورس کد دوم این مقدار صفر هست.
متغیر رو هم به این صورت تعریف میکنم :
توی سورس کد اصلی مقدار خونده شده از طریق adc رو توی متغیری به نام temp دخیره میکنم:
;int temp
توی سورس کد دوم هم این متغیر رو به این صورت اعلان میکنم تا توی این سورس کد هم شناخته شده باشه :
extern int temp
به نظرتون مشکل چیه؟
اگه کمک کنید ممنون میشم.
اگر به صورت extern تعریف کرده باشید که بایستی درست کار کند. توی سورس اصلی
extern int temp
در در سورس کد دوم
int temp
ویرایش توسط mzarkoob : 15-01-2018 در ساعت 20:43
سلام من میخوام از uart3 روی پایه های 2و3 از پورت0 استفاده کنم چرا نمیتونم ؟؟؟؟؟؟؟؟؟؟؟؟
راهنمایی لطفا
از کنابخانه debug_frmwrk استفاده میکنم
void debug_frmwrk_init(void)
{
UART_CFG_Type UARTConfigStruct;
#if (USED_UART_DEBUG_PORT == 0)
/*
* Initialize UART0 pin connect
* P0.2: TXD
* P0.3: RXD
*/
PINSEL_ConfigPin (0, 0, 4);
PINSEL_ConfigPin (0, 1, 4);
#elif (USED_UART_DEBUG_PORT == 1)
/*
* Initialize UART1 pin connect
* P0.15: TXD
* P0.16: RXD
*/
PINSEL_ConfigPin(0, 15, 1);
PINSEL_ConfigPin(0, 16, 1);
#elif (USED_UART_DEBUG_PORT == 2)
/*
* Initialize UART2 pin connect
* P0.10: TXD
* P0.11: RXD
*/
PINSEL_ConfigPin(0, 10, 1);
PINSEL_ConfigPin(0, 11, 1);
#elif (USED_UART_DEBUG_PORT == 3)
/*
* Initialize UART3 pin connect
* P4.28: TXD
* P4.29: RXD
*/
PINSEL_ConfigPin(0, 2, 2);
PINSEL_ConfigPin(0, 3, 2);
#elif (USED_UART_DEBUG_PORT == 4)
/*
* Initialize UART4 pin connect
* P0.22: TXD
* P2.9: RXD
*/
PINSEL_ConfigPin(0, 22, 3);
PINSEL_ConfigPin(2, 9, 3);
#endif
/* Initialize UART Configuration parameter structure to default state:
* Baudrate =9600 bps
* 8 data bit
* 1 Stop bit
* None parity
*/
UART_ConfigStructInit(&UARTConfigStruct);
UART_Init( UART_3, &UARTConfigStruct);
UART_TxCmd(UART_3 , ENABLE);
_db_msg = UARTPuts;
_db_msg_ = UARTPuts_;
_db_char = UARTPutChar;
_db_hex = UARTPutHex;
_db_hex_16 = UARTPutHex16;
_db_hex_32 = UARTPutHex32;
_db_hex_ = UARTPutHex_;
_db_hex_16_ = UARTPutHex16_;
_db_hex_32_ = UARTPutHex32_;
_db_dec = UARTPutDec;
_db_dec_16 = UARTPutDec16;
_db_dec_32 = UARTPutDec32;
_db_get_char = UARTGetChar;
_db_get_val = UARTGetValue;
_db_get_char_nonblocking = UARTGetCharInNonBlock;
}
#endif /*_DBGFWK*/
ویرایش توسط meysammerrikh : 15-01-2018 در ساعت 16:01
سلام
سریال 0را راه اندازی کرده اید؟ درست بوده؟
تنظیمات درست باشد کار می کند :
فعال بودن پاور
تنظیم درست pinsell
کانفیگ درست رجیسترهای uart3
در سیمولاتور چک شود.