نحوه کارکرد دستور GPIO_ReadValue
من یه برد آموزشی LPC1788 رو تهیه کردم.و دارم رو دستورات CMSIS-CM3 کار میکنم.یکی از دستورات مهم در بخشGPIO دستور GPIO_ReadVale() هستش که برای خواندن مقدار یک پورت است.
من میخواستم برنامه ای بنویسیم که پایه 17 پورت 1 ، LPC1788 رو بخواند :
در صورتی که مقدار آن برابر 1 بود پایه 16 پورت 1 را در خروجی 1 کند(چراغ روشن)
و در غیر اینصورت مقدار پایه 16 پورت 1 را 0 کند (چراغ خاموش)
اما متأسفانه برنامه درست کار نمیکند.
می خواستم بدونم مشکل برنامه و یا دستور چیه؟
من یه برد آموزشی LPC1788 رو تهیه کردم.و دارم رو دستورات CMSIS-CM3 کار میکنم.یکی از دستورات مهم در بخشGPIO دستور GPIO_ReadVale() هستش که برای خواندن مقدار یک پورت است.
من میخواستم برنامه ای بنویسیم که پایه 17 پورت 1 ، LPC1788 رو بخواند :
در صورتی که مقدار آن برابر 1 بود پایه 16 پورت 1 را در خروجی 1 کند(چراغ روشن)
و در غیر اینصورت مقدار پایه 16 پورت 1 را 0 کند (چراغ خاموش)
اما متأسفانه برنامه درست کار نمیکند.
می خواستم بدونم مشکل برنامه و یا دستور چیه؟
کد:
#include "lpc177x_8x_gpio.h" #include "lpc177x_8x_clkpwr.h" #include "lpc177x_8x_pinsel.h" #include "bsp.h" #include "stdio.h" int main (void) { GPIO_SetDir(1 , 0x00010000 , 1); while (1) { if ( (GPIO_ReadValue(1) & 1<< 17 ) == 0x00020000 ) GPIO_SetValue ( 1 , 1 << 16 ); else GPIO_ClearValue ( 1 , 0x00010000); } }
دیدگاه