X
تبلیغات
رایتل

آذر میکرو ( دنیای میکروکنترلرها )

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

کار کردن با پورتها با cmsis برای lpc1768

 

در اولین قدم باید کتابخانه ی lpc17xx_gpio.h رو به برنامه اضافه کنید.


#include “lpc17xx_gpio.h”

همون طوری که میدونید در میکرو هایlpc میشه با پورتها به صورت 32 بیتی و 16 بیتی و8بیتی کار کرد

 

  

کار کردن با پورتها به صورت 32 بیتی:

 

  -1پایه های یک پورت به صورت ورودی یا خزوجی پیکر بندی میگردند.

GPIO_SetDir(شماره پورت, پایه های مورد نظر , 0 یا 1) ;
FIO_SetDir( شماره پورت, پایه های مورد نظر , 0 یا 1) ;

شماره پورت : پورتی که میخواییم اون رو ورودی یا خروجی کنیم.(از 0 تا 4(

پایه های مورد نظر :عددی بین 0X00000000 تا 0XFFFFFFFF که به پینهای پورت اشاره دارد.

مثال:

برای ورودی کردن از عدد 0 و برای خروجی از عدد 1 استفاده میکنیم.

GPIO_SetDir(0,0X00000005,1);

در این حالت پینهای 0 و 2 از پورت 0 به عنوان خروجی پیکربندی شده اند.


 -2توسط این دستورات پایه های یک پورت که به صورت خروجی پیکر بندی شده اندیک میگردند.

GPIO_SetValue( شماره پورت , پایه های مورد نظر ) ;
FIO_SetValue( شماره پورت , پایه های مورد نظر ) ;

 

-3توسط این دستوراتپایه های یک پورتکه به صورتخروجی پیکر بندی شده اند صفر میگردند.

GPIO_ClearValue( شماره پورت , پایه های مورد نظر ) ;
FIO_ClearValue( شماره پورت , پایه های مورد نظر ) ;

 

دستورات صفر و یک کننده ی پایه ها رو پین هایی که به صورت ورودی پیکربندی شدند یا اینکهاصلا پیکربندی نشدن هیچ تاثیری ندارد.

 

4- توسط این دستوراتعدد روی پایه های یک پورت رو بخونین.

Value= GPIO_ReadValue( شماره پورت , پایه های مورد نظر ) ;
Value=FIO_ReadValue( شماره پورت , پایه های مورد نظر ) ;

valueمتغیر 32 بیتی می باشد

 

5- توسط این دستورات میتوانید یک دسته از پین های یک پورت را از دسترس خارج کنید.

GPIO_SetMask( شماره پورت, پایه های مورد نظر, 0 یا 1) ;
FIO_SetMask( شماره پورت, پایه های مورد نظر, 0 یا 1) ;


در صورت قرار دادن عدد 1 عمل
mask انجام و پینها غیر فعال میگردند واگر 0 بگذاریم دوباره به حالت عادی باز گشته و امکان نوشتن و خواندن از انها فراهم میگردد.

کار کردن با پورت ها به صورت 16 بیتی:



1- توسط این دستورات پایه های یک پورت به صورت ورودی یا خروجی پیکر بندی میگردند.

 

FIO_HalfWordSetDir( شماره پورت, 16بیت بالا یا پایین , پایه های مورد نظر , 0 یا 1) ;

 

شماره پورت : پورتی که میخواییم آن را ورودی یا خروجی بکنیم.(از پورت 0 تا پورت 4)

برای 16 بیت رتبه پایین عدد 0 و16 بیت رتبه بالا عدد 1

پایه های مورد نظر :عددی بین 0X0000 تا 0XFFFF که به پینهای پورت اشاره دارد.

برای ورودی کردن از عدد 0 و برای خروجی از عدد 1 استفاده میکنیم.

مثال:

FIO_HalfWordSetDir(0,0,0X0005,1);

در این حالت پینهای 0 و 2 از پورت 0 به عنوان خروجی پیکربندی شده اند.

 

1- توسط این دستوراتپایه های یک پورتکه به صورتخروجی پیکر بندی شده اند یک میگردند.

FIO_HalfWordSetDir(شماره پورت, 16بیت بالا یا پایین1 , پایه های مورد نظر );

 

2- توسط این دستورات پایه های یک پورت که به صورت خروجی پیکر بندی شده صفر میگردند.

 

FIO_HalfWordClearDir( شماره پورت, 16بیت بالا یا پایین , پایه های مورد نظر );

3توسط این دستورات عدد روی پایه های یک پورت رو بخونین.

 

Value=FIO_HalfWordReadValue(شماره پورت ,  16بیت بالا یا پایین) ;

 

valueیه متغیر 16 بیتی می باشد

 

4- توسط دستور زیر عمل mask فعال یا غیر فعال میگردد

 

FIO_HalfWordSetMAsk(شماره پورت, بیت بالا یا پایین16 , پایه های مورد نظر , 0 یا 1) ;

 

 

 

کار کردن با پورت ها به صورت 8 بیتی:

 

 

1- توسط این دستورات پایه های یک پورت به صورت ورودی یا خروجی پیکر بندی میگردند.

 

FIO_ByteSetDir(,8بیت شماره پورت صفر/اول/دوم/سوم , پایه های مورد نظر , 0 یا 1);

 

شماره پورت : پورتی که میخواییم ورودی یا خروجی کنیم.(از 0 تا 4)

پایه های مورد نظر :عددی بین 0X00 تا 0XFF که به پینهای پورت اشاره دارد.

برای ورودی عدد 0 و برای خروجی از عدد 1 استفاده میکنیم.

مثال:

FIO_ByteSetDir(0,0,0X05,1);

در این حالت پینهای 0 و 2 از پورت 0 به عنوان خروجی پیکربندی شده اند.

 

2 - توسط این دستورا ت پایه های یک پورت که به صورت خروجی پیکر بندی شده اند یک میگردند.

 

FIO_ByteSetDir(شماره پورت, 8بیتصفرم/اول/دوم/سوم , پایه های مورد نظر );

 

3- توسط این دستوراتپایه های یک پورتکه به صورتخروجی پیکر بندی شده صفر میگردند.

 

FIO_ByteClearDir(شماره پورت, 8بیتصفرم/اول/دوم/سوم , پایه های مورد نظر );

4- توسط این دستورات عدد روی پایه های یک پورت رو بخونین.

 

Value=FIO_ByteReadValue(شماره پورت , 8 بیت  صفر/اول/دوم/سوم) ;

 

valueیه متغیر8بیتی می باشد

 

5- توسط دستور زیر عمل mask انجام یا غیر فعال میگردد

 

FIO_ByteSetMAsk(شماره پورت, 8بیتصفرم/اول/دوم/سوم, پایه های مورد نظر , 0 یا 1) ;

 

 

تاریخ ارسال: سه‌شنبه 12 شهریور 1392 ساعت 10:16 | نویسنده: شاپور جگرگوشه
نظرات (0)
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
نام :
پست الکترونیک :
وب/وبلاگ :
ایمیل شما بعد از ثبت نمایش داده نخواهد شد