سلام
در برنامه زیر قراره وقتی که کلید قرار گرفته روی PA.30 فشرده شد خروجی PB.19 ست شود.
یه مشکلم اینه که اول برنامه که PB.19 رو به عنوان خروجی تعریف کردم رجیستر ODSR رو هم با صفر مقدار دهی کردم ولی بعد از پروگرام کردن همچنان مقدار یک رو دارد.
سوال بعدی اینه که : چه موقع باید کلاک I/O فعال شود و این فعال سازی چه طوریه؟
می خواستم با مقدار دهی به رجیستر *AT91C_PMCA_PCER این کارو انجام بدم ولی با خطای تعریف نشده بودن این رجیستر رو به رو می شم و ناچار از رجیستر PMC_PCER استفاده کردم.
خلاصه اینکه این برنامه جواب نمیده چرا؟
در ضمن می خوام با استفاده از کتابخانه AT91SAM7X256 برنامه رو بنویسم و با تنظیم همین رجیستر هایی که تو برنامه نام بردم .
سپاس فراوان
در برنامه زیر قراره وقتی که کلید قرار گرفته روی PA.30 فشرده شد خروجی PB.19 ست شود.
#include <AT91SAM7X256.H>
int main (void)
{
*AT91C_PIOB_PER=0x00080000;
*AT91C_PIOB_OER=0x00080000;
*AT91C_PIOB_OWER=0x00080000;
*AT91C_PIOB_ODSR=0x00000000;
////////////////////////////
*AT91C_PIOA_PER=0x70000000;
*AT91C_PIOA_ODR=0x70000000;
*AT91C_PMC_PCER=0x70000000;
*AT91C_PIOA_PPUER=0x70000000;
///////////////////////////
while(1)
{
if ((~(*AT91C_PIOA_PDSR))&(1<<30) )
*AT91C_PIOB_ODSR=0x00080000;
else
*AT91C_PIOB_ODSR=0X00000000;
}
}
من هر کاری می کنم نمی تونم تغییر وضعیت کلید رو تو برنامه ببینم.int main (void)
{
*AT91C_PIOB_PER=0x00080000;
*AT91C_PIOB_OER=0x00080000;
*AT91C_PIOB_OWER=0x00080000;
*AT91C_PIOB_ODSR=0x00000000;
////////////////////////////
*AT91C_PIOA_PER=0x70000000;
*AT91C_PIOA_ODR=0x70000000;
*AT91C_PMC_PCER=0x70000000;
*AT91C_PIOA_PPUER=0x70000000;
///////////////////////////
while(1)
{
if ((~(*AT91C_PIOA_PDSR))&(1<<30) )
*AT91C_PIOB_ODSR=0x00080000;
else
*AT91C_PIOB_ODSR=0X00000000;
}
}
یه مشکلم اینه که اول برنامه که PB.19 رو به عنوان خروجی تعریف کردم رجیستر ODSR رو هم با صفر مقدار دهی کردم ولی بعد از پروگرام کردن همچنان مقدار یک رو دارد.
سوال بعدی اینه که : چه موقع باید کلاک I/O فعال شود و این فعال سازی چه طوریه؟
می خواستم با مقدار دهی به رجیستر *AT91C_PMCA_PCER این کارو انجام بدم ولی با خطای تعریف نشده بودن این رجیستر رو به رو می شم و ناچار از رجیستر PMC_PCER استفاده کردم.
خلاصه اینکه این برنامه جواب نمیده چرا؟
در ضمن می خوام با استفاده از کتابخانه AT91SAM7X256 برنامه رو بنویسم و با تنظیم همین رجیستر هایی که تو برنامه نام بردم .
سپاس فراوان
دیدگاه