من برای خواندن پورت های ARM مشکل داشتم تا اونجا که یک روز به صورت تصادفی پایه TST میکرو را دو بار SET و RESET کردم بعد تازه برنامه ای که نوشته بودم اجرا شد و ورودی هارو می خوند.
کسی می دونه که پایه TST دقیقا چی کار می کنه.
من فکر می کنم که برنامه ای که توی حافظه فلش میکرو هست رو SELECT می کنه.
برنامه که نوشته بودم رو در زیر گزاشتم
#
include "AT91SAM7X256.H"
#include "lib_AT91SAM7X256.h"
int o;
int i;
long h;
void wait (float n)
{
h=n*1470;
for (i = 0; i < h; i++){
;
}
h=0;
}
void main ()
{
AT91F_PIO_CfgOutput(AT91C_BASE_PIOB,AT91C_PIO_PB0) ;
AT91F_PIO_CfgOutput(AT91C_BASE_PIOB,AT91C_PIO_PB2) ;
AT91F_PIO_CfgPullup( AT91C_BASE_PIOA, AT91C_PIO_PA9);
o=( AT91F_PIO_GetInput( AT91C_BASE_PIOA) & AT91C_PIO_PA9);
if (o == 0)
{
AT91F_PIO_SetOutput (AT91C_BASE_PIOB,AT91C_PIO_PB2);
wait(1);
AT91F_PIO_ClearOutput (AT91C_BASE_PIOB,AT91C_PIO_PB2);
wait(1);
}
else{
AT91F_PIO_SetOutput (AT91C_BASE_PIOB,AT91C_PIO_PB0);
wait(1);
AT91F_PIO_ClearOutput (AT91C_BASE_PIOB,AT91C_PIO_PB0);
wait(1);
}
}