آموزش ARM LPC1768 (قسمت دوم ، تایمرها)

اگر جلسه اول آموزش ARM LPC1768 را دنبال کرده باشید می دانید که با برای شروع کار با پایه های میکروکنترلر آشنا شدیم و آنها را ورودی ، خروجی تعریف کردیم و همچنین نحوه برنامه نویسی بصورت رجیستری و با نحوه اضافه کردن و برنامه نوشتن با توابع CMSIS را یادگرفتیم و همچنین وقفه های میکروکنترلر را برسی کردیم و براشون برنامه های مختلف نوشتیم و همچنین نحوه نوشتن تابع تاخیر را هم یاد گرفتیم حال در قسمت دوم آموزش ARM LPC1768 میخواهیم کار با تایمر های میکروکنترلر LPC1768 را یاد بگیریم و البته یکی از مهترین بحث های میکروکنترلر است که بصورت کامل توضیح داده شده و با چندین فیلم آموزشی ، مثال و فایل پی_دی_اف قصد داریم تا کامل شما این بحث از برنامه نویسی میکروکنترلر های ARM LPC1768 را یاد بگیرید. در ادامه با میکرو دیزاینر الکترونیک همراه باشید تا مقدمه ای از آموزش ها را با هم ببینیم.

آموزش ARM LPC1768 قسمت دوم تایمرها

 

تایمر ها از مهم ترین امکانات میکروکنترلر ها محسوب میشوند. و اغلب در اکثر پروژه از آن ها استفاده میشود.

کاربرد های تایمر :

  1. زمان سنجی برای شمارش رویداد های داخلی
  2. دمودلاتور عرض پالس ورودی به وسیله ی ورودی های Capture
  3. کارکرد های معمولی تایمر که عبارتند از : شمارش رویداد ها ، اندازه گیری زمان ، ایجاد زمان های مورد نظرو …

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

توجه : وقتی پالس هایی به صورت منظم و با فرکانس مشخص به میکرو اعمال شود. میتوان با شمردن این پالس ها زمان های مورد نظر را ایجاد کرد.

Counter  : وقتی پالسی که به میکرو اعمال میشود. خارج از میکرو کنترلر باشد.گفته میشود Timer/Counter در وضعیت Counter است. برای مثال برای شمردن تعداد نوشابه های یک خط تولید ، یا برای شمردن تعداد بسته های  خط تولید دارو. و …

Timer : وقتی پالسی که به میکرو اعمال میشود از داخل میکرو باشد گفته میشود که Timer/Counter دروضعیت Timer  قرار دارد. برای مثال برای اندازه گیری زمان یا ایجاد زمان دلخواه از Timer  استفاده میشود.

LPC 1768 دارای ۴ تایمر ۳۲ بیتی میباشد که که به صورت تایمر یا شمارنده مورد استفاده قرار میگیرند. هر تایمر دارای یک بخش prescaler میباشد. که به منظور تقسیم کلاک Pclk مورد استفاده قرار میگیرد.

تنظیم منبع کلاک :

بیت های (۲:۳) از رجیستر  PCLKSEL0 برای Timer0  میباشد.

بیت های (۴:۵) از رجیستر  PCLKSEL0 برای Timer1  میباشد.

بیت های (۱۲:۱۳) از رجیستر  PCLKSEL1 برای Timer2  میباشد.

حتما در ادامه این مطلب را هم بخوانید:  آموزش میکروکنترلرهای LPC1768 جلسه دوم: برسی امکانات LPC1768

بیت های (۱۴:۱۵) از رجیستر  PCLKSEL1 برای Timer3  میباشد.

تایمر های ۰ و ۱ (Timer0/1) به طور پیش فرض روشن میباشند. اما برای استفاده از تایمر های ۲ و ۳ باید آن ها را فعال کنیم :

برای فعال کردن Timer2 : بایستی بیت ۲۲ از رجیستر PCONP را فعال کنیم :

LPC_SC-> |= (1<<22);

برای فعال کردن Timer3 : بایستی بیت ۲۳ از رجیستر PCONP را فعال کنیم :

LPC_SC-> |= (1<<23);

Power Control for Peripherals register (PCONP):

Reset value Description Symbol Bit
NA Reserved. ۰
۱ Timer/Counter 0 power/clock control bit PCTIM0 ۱
۱ Timer/Counter 1 power/clock control bit PCTIM1 ۲
۱ UART0 power/clock control bit. PCUART0 ۳
۱ UART1 power/clock control bit. PCUART1 ۴
NA Reserved. ۵
۱ PWM1 power/clock control bit. PCPWM1 ۶
۱ The I2C0 interface power/clock control bit. PCI2C0 ۷
۱ The SPI interface power/clock control bit. PCSPI ۸
۱ The RTC power/clock control bit. PCRTC ۹
۱ The SSP 1 interface power/clock control bit. PCSSP1 ۱۰
NA Reserved. ۱۱
۰

A/D converter (ADC) power/clock control bit.

Note: Clear the PDN bit in the AD0CR before clearing this bit, and set
this bit before setting PDN

PCADC ۱۲
۰ CAN Controller 1 power/clock control bit PCCAN1 ۱۳
۰ CAN Controller 2  power/clock control bit PCCAN2 ۱۴
۱ Power/clock control bit for IOCON, GPIO, and GPIO interrupts. PCGPIO ۱۵
۰ Repetitive Interrupt Timer power/clock control bit. PCRIT ۱۶
۰ Motor Control PWM PCMCPWM ۱۷
۰ Quadrature Encoder Interface power/clock control bit. PCQEI ۱۸
۱ The I2C1 interface power/clock control bit. PCI2C1 ۱۹
NA Reserved. ۲۰
۱ The SSP0 interface power/clock control bit. PCSSP0 ۲۱
۰ Timer 2 power/clock control bit. PCTIM2 ۲۲
۰ Timer 3 power/clock control bit. PCTIM3 ۲۳
۰ UART 2 power/clock control bit PCUART2 ۲۴
۰ UART 3 power/clock control bit. PCUART3 ۲۵
۱ I2C interface 2 power/clock control bit. PCI2C2 ۲۶
۰ I2S interface power/clock control bit. PCI2S ۲۷
NA Reserved. ۲۸
۰ GPDMA function power/clock control bit. PCGPDMA ۲۹
۰ Ethernet block power/clock control bit. PCENET ۳۰
۰ USB interface power/clock control bit. PCUSB ۳۱

توجه : تنظیمات این بخش را میتوان از طریق زبانه ی Configration Wizard از داخل فایل  StartUp.s هم انجام داد. که نحوه انجام و توضیحات بیشتر در داخل فایل های آموزشی کامل کامل توضیح داده شدن.

تنظیم منبع کلاک 

بیت های (۲:۳) از رجیستر  PCLKSEL0 برای Timer0  میباشد.

بیت های (۴:۵) از رجیستر  PCLKSEL0 برای Timer1  میباشد.

بیت های (۱۲:۱۳) از رجیستر  PCLKSEL1 برای Timer2  میباشد.

حتما در ادامه این مطلب را هم بخوانید:  پردازش تصویر با میکروکنترلر

بیت های (۱۴:۱۵) از رجیستر  PCLKSEL1 برای Timer3  میباشد.

Peripheral Clock Selection registers 0 (PCLKSEL0 ):

Bit Symbol

Description

Reset value
۱:۰ PCLK_WDT

Peripheral clock selection for WDT.

۰۰
۳:۲ PCLK_TIMER0

Peripheral clock selection for TIMER0.

۰۰
۵:۴ PCLK_TIMER1

Peripheral clock selection for TIMER1.

۰۰
۷:۶ PCLK_UART0

Peripheral clock selection for UART0.

۰۰
۹:۸ PCLK_UART1

Peripheral clock selection for UART1.

۰۰
۱۱:۱۰

Reserved.

NA
۱۳:۱۲ PCLK_PWM1

Peripheral clock selection for PWM1.

۰۰
۱۵:۱۴ PCLK_I2C0

Peripheral clock selection for I2C0.

۰۰
۱۷:۱۶ PCLK_SPI

Peripheral clock selection for SPI

۰۰
۱۹:۱۸

Reserved.

NA
۲۱:۲۰ PCLK_SSP1

Peripheral clock selection for SSP1.

۰۰
۲۳:۲۲ PCLK_DAC

Peripheral clock selection for DAC.

۰۰
۲۵:۲۴ PCLK_ADC

Peripheral clock selection for ADC.

۰۰
۲۷:۲۶ PCLK_CAN1

Peripheral clock selection for CAN1.[1]

۰۰
۲۹:۲۸ PCLK_CAN2

Peripheral clock selection for CAN2.[1]

۰۰
۳۱:۳۰ PCLK_ACF Peripheral clock selection for CAN acceptance filtering.[1] ۰۰

 

[۱] : مقادیر مقسم کلاک  های  PCLK_CAN1  و PCLK_CAN2 در هنگام استفاده از توابع  CAN  باید برابر باشند.

Peripheral Clock Selection registers 1 (PCLKSEL1 ):

Bit Symbol

Description

Reset value
۱:۰ PCLK_QEI

Peripheral clock selection for the Quadrature Encoder Interface.

۰۰
۳:۲ PCLK_GPIOINT

Peripheral clock selection for GPIO interrupts.

۰۰
۵:۴ PCLK_PCB

Peripheral clock selection for the Pin Connect block.

۰۰
۷:۶ PCLK_I2C1

Peripheral clock selection for I2C1.

۰۰
۹:۸

Reserved.

NA
۱۱:۱۰ PCLK_SSP0

Peripheral clock selection for SSP0.

۰۰
۱۳:۱۲ PCLK_TIMER2

Peripheral clock selection for TIMER2.

۰۰
۱۵:۱۴ PCLK_TIMER3

Peripheral clock selection for TIMER3.

۰۰
۱۷:۱۶ PCLK_UART2

Peripheral clock selection for UART2

۰۰
۱۹:۱۸ PCLK_UART3

Peripheral clock selection for UART3

۰۰
۲۱:۲۰ PCLK_I2C2

Peripheral clock selection for I2C2.

۰۰
۲۳:۲۲ PCLK_I2S

Peripheral clock selection for I2S.

۰۰
۲۵:۲۴

Reserved

NA
۲۷:۲۶ PCLK_RIT

Peripheral clock selection for Repetitive Interrupt Timer.

۰۰
۲۹:۲۸ PCLK_SYSCON

Peripheral clock selection for the System Control block.

۰۰
۳۱:۳۰ PCLK_MC

Peripheral clock selection for the Motor Control PWM.

۰۰

 

Peripheral Clock Selection register bit values :

PCLKSEL0 and PCLKSEL1 individual peripheral’s clock select options

Function

Reset value
۰۰

PCLK_peripheral = CCLK/4

۰۰
۰۱

PCLK_peripheral = CCLK

۱۰

PCLK_peripheral = CCLK/2

۱۱

PCLK_peripheral = CCLK/8, except for CAN1, CAN2, and
CAN filtering when “۱۱” selects = CCLK/6

توجه : تنظیمات این بخش را میتوان از طریق زبانه ی Configration Wizard از داخل فایل  StartUp.s هم انجام داد.

عکسی از نمونه برنامه در Keil با توابع CMSIS :

کد نوشته شده آموزش ARM LPC1768

 

سر فصل های قسمت دوم :

  • کار با واحد تایمر به صورت رجستری

ابتدا  فایل  PDF را بخوانید و سپس مثال را خودتان بررسی کنید و در نهایت فیلم را نگاه کنید.

  • کار با واحد تایمر با استفاده از توابع CMSIS:

ابتدا  فایل  PDF را بخوانید و سپس مثال را خودتان بررسی کنید و در نهایت فیلم را نگاه کنید.

محتوی فایل ها 

مقدمه

برسی تایمر های میکروکنترلر ARM LPC1768

معرفی رجیستر ها و تنظیمات تایمر ها + فیلم آموزشی عملی و فارسی

برنامه نویسی تایمر ها با توابع CMSIS + فیلم آموزشی عملی و فارسی

مثال های کاربردی و توضیح مثال + فیلم

مشخصات فایل های قسمت دوم آموزش LPC1768

فایل PDF  که آشنایی و رجیستر های تایمرها و پیکربندی و… میکروکنترلر LPC1768  برسی می شوند.

فایل PDF قسمت دوم که برنامه نویسی تایمر ها با توابع CMSIS آموزش داده می شوند.

سه تا فیلم آموزشی فارسی برای تکمیل بحث تایمر ها و کار عملی

مثال های هر قسمت + PDF  و فیلم توضیح مثال

پسوند فایل rar میباشید و برای باز کردن نیاز به نصب نرم افزارهایی مانند winrar نیاز است.

حجم فایل جلسه دوم : ۴۳۵ مگابایت

لینک دانلود

متاسفانه فایل های قسمت دوم آموزش (تایمر ها) بنا به درخواست نویسنده (بدلیل مشکلات فنی) از سایت حذف شد ولی قسمت اول را از لینک زیر میتوانید دانلود کنید.

دانلود قسمت اول آموزش ARM LPC1768  بصورت کاملا رایگان

سر فصل های قسمت اول بخش [۰] :

  1. انتخاب وظیفه ی پین ها : تقریبا روی هر پینی ۴ وظیفه تعبیه شده است مثلا : بر روی پین صفر از پورت ۰ چهار وظیفه ی زیر تعبیه شده است
  • GPIO
  • RD1
  • TXD3
  • SDA1
  1. انتخاب حالت پین ها : مثلا انتخاب این که Pull up باشد یا Pull down
  2. انتخاب حالت open drain .
  3. سه قسمت گفته شده در بالا به صورت CMSIS هم گفته شده است.

سر فصل های قسمت اول بخش [۱]  :

ابتدا یک تابع  delay  نوشته میشود .

سپس کار با  GPIO  گفته میشود :

  • ورودی خروجی کردن هر پورت .
  • یک کردن هر پورت .
  • پاک کردن پورت .

و در انتها بخش های گفته شده در بالا با توابع  CMSIS  هم گفته خواهد شد.

سر فصل های قسمت اول بخش [۲]  :

  • توضیح واحد NVIC و آشنایی با فعال کردن وقفه ها و چگونگی اولویت دادن به هر وقفه .
  • کار با وقفه های GPIO به صورت رجیستری
  • کار با وقف های GPIO  با استفاده از توابع  CMSIS

سر فصل های قسمت اول بخش [۳]  :

  • آموزش کار با وقفه های خارجی به صورت رجیستری
  • آموزش کار با وقفه ی خارجی با استفاده از توابع CMSIS

دانلود جلسه دوم

دانود جلسه سوم

این نوشته را با دوستانتان در تلگرام به اشتراک بگذارید :

درباره ی جهاندیده

با سلام درود به شما که مطالب سایت خودتان را مطالعه می کنید امیدوارم مطالب سایت برایتان مفید باشد و باعث پیشرفت روز افزون شما شود. دوران راهنمایی در کار منتاژ کیت های الکترونیکی بودم تا رفتم هنرستان ^_^ دو سال هنرستان الکترونیک خیلی چیزها یاد گرفتم ! دو سال کاردانی الکترونیک و کارشناسی ICT گرایش بهره برداری از سیستم های مخابراتی پر از تجربه بود و مدتی است در الکترونیک دنیای مشغولم . الکترونیک - تکنولوژی - ICT ، برنامه نویسی ...

۳ دیدگاه

  1. سلام. لطفا آموزش ارتباط سریال یا spi و کار با وقفه رو هم بزارید. لازم دارم !!!

  2. سلام ،ممنون از مطالبتون.
    اموزش سریال و adc هم اضافه کنید

  3. bebakhshid mishe file haye qesmate 2 ham bezariiiin khaheshan

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

9 − شش =