گفتن مثال برای قسمتهای راه اندازی شده
ادامه بحث و راه اندازی قسمتهای راه اندازی نشده
راستش دوست عزیز من دو روز با این کتابخانه uart کار کردم اما نتونستم ازش سر در بیارم
گفتم خودم یه کتابخانه ساده تر بنویسم که فقط دستوراتی که لازم دارم توش بیارم.
سلام دوستان کسی میتونه راجع به وقفه های پورت کمکم کنه
میخوام را اندازیش کنم دستور cmsis که واسه وقفه هستو مینویسم و مثلا وقفه پورت 0 پین 1 رو فعال میکنم و سرویس روتینشو هم مثه زیر مینویسم ولی جواب نمیده
کد:#include <lpc17xx.h> #include <lpc17xx_gpio.h> char j; void delay (void) { int i; for(i=0;i<10000;i++); } __irq void INT_GPIO (void) { for(j=0;j<500;j++) { GPIO_SetValue(0,0x01); delay(); GPIO_ClearValue(0,0x01); delay(); } } int main (void) { GPIO_SetDir(0,0x01,1); GPIO_IntCmd(0,0x02,0); while(1) { } }
آقا من واسه آی سی های دیگه مثلا lpc2368 یا lpc13xx هم دستورات cmsis میخوام.میشه کمک کنید از کجا میتونم پیداش کنم؟
ممنونم از آقای زرکوب.
برنامم خیلی مشکل داشت.متاسفانه نمیدونستم که روی وقفه 3 تنظیم شده.ولی الان درست شد.
سپااااااااااس
سلام
دارم با فیلم های آموزشی پیش میروم (دستورات CMSIS)
2 تا سوال دارم
یکی اینکه : داخل GPIO این دستور MASK یا 8bit و 16bit کجا ها کاربرد داره ؟ وقتی که دستورات اصلی GPIO هست دیگه به مد 8 بیت یا 16 بیت چه نیازی هست و MASK به چه کاری میاد ؟
دوم اینکه : ارزانترین LPC که بشه باهاش دستورات CMSIS رو نوشت کدومه و اگر مدار راه اندازش رو هم لینک بدید دیگه عالی میشه
با سلام
کسی میدونه کار این دو تا دستور چیه؟exitflag = RESET;
TxIntStat = RESET;
سلام
خیلی ممنون از پاسختون
من بحث تایمر کانتر رو درست درک نکردم هنوز !!! کتابی چیزی نیست که به زبان ساده بگه اصلا به چه کاری میاد و یه کلیات بهم بده ؟؟؟
یک سوال دیگه اینکه وقفه خارجی با وقفه gpio چه تفاوتی داره ؟؟؟
با سپاس
من فکر می کنم شما باید حتما یه کاری باشه انجام بدید و در اون لازم باشه از تایمر یا کانتر استفاده کنید تا متوجه بشید و درکش کنید.
مثلا برای تایمر و کانتر : یه برنامه بنویسید که هر چند ثانیه یک بار تعداد پالس که اومده روی کانتر2 را بشماره و نشون بده. این چند ثانیه یک بار را با تایمر 0 ایجاد کنید که تا این چند ثانیه را شمرد یک وقفه بده بره در زیر روال وقفه تایمر0 و هر چی در کانتر2 خوانده شمرده شده را ارسال کنه یا رو lcd یا رو پورت سریال
از این کارا زیاد می تونید انجام بدید
تو سی دی نگفتم !؟ هر پایه که برای وقفه gpio تعریف شده بزنید همش میره در eint3 ولی در خارجی فقط وقتی مثلا پایه 10 بزنید فقط میره در exin0
سلام تمامی نکات زیر مربوط به تمامی میکروهای هست که این خاصیت ها را داشته باشند صادق هست.
تایمر-کانتر:
تایمر:شما با این خاصیت می توانید مدت زمان پالس اعمال شده به پایه مربوطه را محاسبه کنید.(مدت on یا off بودن پالس همان دیوتی سایکل).
کانتر:شما با یان خاصیت می توانید تعداد پالس های که بر روی پایه قرار می گیرد را شمارش کنید.
وقفه خارجی :
زمانی که شما بخواهید که در صورتی که یک تغییر بر روی یکی از پایه های میکروی اتفاق افتاد برنامه از حالت اجرای دستورات عمومی خودش دست برداشته و دستورات خاص دیگری رو اجرا کند.
مثلا اگر در مدار شما کلید متصل شده به پایه PA.13 یک شد دیگر برنامه از اجرای دستورات دست کشید و به دستوراتی که در قسمت وقفه خارجی شما نوشته اید اجرا بشود.
ضمنا وقفه اولیت خاصی دارد و هر موقعه که فراخوانی بشود در دستورات برنامه هر کجا باشد متوقف شده و دستورات داخل وقفه را می خواند.
وقفه gpio : وقفه مربوط به هر پایه (Pin) می باشد.
که اگر شما تعریف درست وقفه را الن دیگر یادگرفته باشید دیگر وقفه مربوط به gpio هر پایه را می دانید.
یا علی
شرکت Time Owner
سلام
خیلی خیلی از دوستان گرامی که پاسخ میدهند
برای اینکه مفهوم تایمر کانتر رو بفهمم ، یدونه سنسور رنگ خریدم که خروجیش فرکانس هست و یدونه کانتر هم خریدم (از همینا که به سر موتور بسته میشه و سرعت موتور رو اندازه میگیره) که خروجیش پالس هست
حالا میخواهم این 2 تا رو راه اندازی کنم
اگر بگید که الگوریتم کلیش که یعنی اول با تایمر چیکار کنم و بعد با کانتر چیکار کنم رو بگید ممنون میشوم تا با توضیحات cd بتونم یاد بگیرم
راستی کابرد های دیگر این تایمر کانتر چی هست ؟
*** من حدود 4 ساله دارم با انواع میکرو کار میکنم ولی تا حالا با تایمر/کانترش کار نکردم یعنی کاری باهاش نداشتم !!!
اگر این تایمر/کانتر رو بفهمم واقعا یه لطف بزرگی به من کرده اید
باسپاس فراوان
سلام
ببخشید
این uint_16 یا uint_8 توی برنامه چیه ؟
یه کتابخانه Delay برای LPC1768 نیست ؟ (CMSIS)
کتابخانه UART هست ؟
راستی برای نمایش یک متغیر روی LCD حتما باید از Sprint استفاده کرد ؟
نمیشه مثل میکرو های معمولی از دستور Puts استفاده کرد ؟
با سپاس
سلام
یکی دیگر از کاربرد های تایمر محاسبه فرکانس و دوره تناوب یک پالس است:
ایده ساخت یک فرکانس متر! - ایـــــــــران میـــــــکرو ™
Int to string تبدیل, جهت نمایش روی ال سی دی - ایـــــــــران میـــــــکرو ™
در تابع stdint.h نگاه کنید تعریف کرده:
[PHP] /* exact-width signed integer types */
typedef signed char int8_t;
typedef signed short int int16_t;
typedef signed int int32_t;
typedef signed __int64 int64_t;
/* exact-width unsigned integer types */
typedef unsigned char uint8_t;
typedef unsigned short int uint16_t;
typedef unsigned int uint32_t;
typedef unsigned __int64 uint64_t;[/PHP]
سلام
خیلی خیلی ممنون از راهنمایی هایتان
من تایمر رو تقریبا فهمیدم ، ما یه عددی رو مبنا قرار میدهیم و تایمر شروع به شمردن میکند وقتی به عدد مبنا رسید تایمر متوقف میشوم که میتوانیم تنظیمات تایمر رو طوری قرار دهیم که ریست بشود و یا با تمام شدن شمردن یک وقفه ایجاد کند و وارد زیروال وقفه بشویم یا پایه خود رو ریست کند
حالا اگر پری اسکیل مشخص کنیم ، اول پری اسکیل از یک عدد کمتر از مقداری که تعریف کردیم شروع به شمردن میکند و تا پایان که شمرد یک عدد به عدد تایمر اضافه میشود
خوب نمیدونم درست متوجه شدم یا نه؟؟؟
ولی حالا برای استفاده سخت افزاری از این تایمر چیکار کنم ؟؟
راستی چرا توی pwm یک کانال تایمر رو اضافه فعال میکنیم ولی روی pwm نیست ؟
برای تنظیم فرکانس توی pwm باید چیکار کنم ؟
راستی توی cd کانتر رو توی cmsis توضیح ندادید ، فقط تایمر هست
من میخواهم با rtc داخلی یک ساعت بسازم که باطری بکاپ هم داشته باشه
الان توی پایه های میکرو یک پایه هست به نام vbat این برای چی هست ؟
با سپاس
بله درست متوجه شدین.و به نظر من اگر یک کمی بیشتر جستجو کنید و تلاش کنید چیزای بیشتری یاد میگیرین جوری که هیچ وقت دیگر یادتون نمیره میدونید چرا ؟ چون خودت خواستی و رفتی دنبالش و این تنها نکته ای هست که در هر موضوعی که خواستی یاد بگیری باید رعایت کنی .خوب نمیدونم درست متوجه شدم یا نه؟؟؟
pwm : یک سیگنال مربعی با قابلیت تنظیم on و off بودن پالس سیگنال است.برای تنظیم فرکانس توی pwm باید چیکار کنم ؟
خوب حالا فرمول فرکانس چی هست و چه ربطی به pwm و یا هر سیگنال دیگر داره.
F=1/T
F= فرکانس سیگنال
T= دوره تناوب یک سیگنال (یک پریود )
دوره تناوب : به مدت زمان on و off بودن یک سیگنال می گویند به شکل زیر توجه کن.
من برات حالت کلی محاسبه ی فرکانس رو گفتم .
که بدونی چی هست و از کجا آمده حالا برای مقدار دهی باید ریچیستر مربوطه را مقدار دهی کنی.و برای تنظیم فرکانس pwm هر میکرو با توجه به ساختار داخلی و اسیلاتور متصل به آن یک فرمول خاص خودش را داره.
من نمی گم که شما یکم سرچ کنید ان شاء الله که پیدا کنید اگر پیدا نکریدن بگین من خودم برای شما در این پست قرار می دهم .( ولی واقعا جستجو کنید. )
شرکت Time Owner
سلام
خیلی ممنون
ببخشید این ارور برای چی هست ؟
وقتی UART1 رو میخام ازش استفاده کنم این ارور رو میده !!!
Main.c(100): error: #167: argument of type "LPC_UART1_TypeDef *" is incompatible with parameter of type "LPC_UART_TypeDef *"
میخام از UART1 و UART0 همزمان استفاده کنم
برای همین مثلا یدونه UART_ConfigStructInit(&UARTConfigStruct); گزاشتم و برای UART1 و UART0 استفاده کردم به صورت زیر :
UART_Init(LPC_UART0, &UARTConfigStruct);
UART_Init(LPC_UART1, &UARTConfigStruct);
مثلا توی خط های زیر این ارور رو گرفته و چندتا خط دیگه که UART1 توش به کار رفته :
UART_Init(LPC_UART1, &UARTConfigStruct);
UART_Receive(LPC_UART1, buffer, sizeof(buffer), BLOCKING);
کلا هرجا UART1 بوده ارور داده !!! باید چیکار کنم ؟؟؟؟