سلام . من ميخواستم يك پايه مثل پايه بيستم پورت ((بي)) رو ورودي تعريف كنم و مدام تو حلقه بينهايتم مقدارشو چك كنم تا زماني كه اين كليد صفر باشه يك ديود نوري رو كه به پايه بيستم پورت ((بي))وصله روشن بشه . ضمنا پايه وروديمو با يك مقاومت 10كيلو به 3.3ولت پول آپ كردم .
#include "AT91SAM7X256.H" /* AT91SAMT7X256 definitions */
#include "lib_AT91SAM7X256.h"
void wait(void);
int main (void)
{
AT91F_PIO_CfgOutput(AT91C_BASE_PIOB, AT91C_PIO_PB27);
AT91F_PIO_CfgOutput(AT91C_BASE_PIOB, AT91C_PIO_PB28);
AT91F_PIO_CfgInput(AT91C_BASE_PIOB, AT91C_PIO_PB20);
while(1)
{
AT91F_PIO_ClearOutput(AT91C_BASE_PIOB, AT91C_PIO_PB27);
wait();
AT91F_PIO_SetOutput (AT91C_BASE_PIOB, AT91C_PIO_PB27);
wait();
if ((AT91F_PIO_GetInput(AT91C_BASE_PIOB) &AT91C_PIO_PB20) == 0)
{
AT91F_PIO_SetOutput(AT91C_BASE_PIOB, AT91C_PIO_PB28);
}
else
{
AT91F_PIO_ClearOutput(AT91C_BASE_PIOB, AT91C_PIO_PB28);
}
}
}
void wait (void)
{
unsigned int n;
for (n = 0; n < 4000000; n++);
}