ARM고윤석
주소
#include "AT91SAM7S256.h"
int main()
{
*AT91C_PMC_PCER= (1<<AT91C_ID_PIOA);
*AT91C_PIOA_PDR = 0xFFFFFFFF; // Port Disable PA2~31
*AT91C_PIOA_PER= AT91C_PIO_PA0 | AT91C_PIO_PA1; // Port Enable PA0~1
*AT91C_PIOA_OER= AT91C_PIO_PA1; // PA1 is Output
*AT91C_PIOA_ODR = AT91C_PIO_PA0; // PA0 is Input
while (1)
{
if((AT91C_BASE_PIOA->PIO_PDSR & AT91C_PIO_PA0)) // if PA0 were Hi
*AT91C_PIOA_SODR= AT91C_PIO_PA1; // then PA1 out is Hi
else // if PA0 were Lo
*AT91C_PIOA_CODR = AT91C_PIO_PA1; // then PA1 out is Lo
}
return 0;
}
구조체
#include "AT91SAM7S256.h"
int main()
{
AT91C_BASE_PMC->PMC_PCER = (1 << AT91C_ID_PIOA);
AT91C_BASE_PIOA->PIO_PDR = 0xFFFFFFFF;
AT91C_BASE_PIOA->PIO_PER = AT91C_PIO_PA0 | AT91C_PIO_PA1;
AT91C_BASE_PIOA->PIO_OER = AT91C_PIO_PA1;
AT91C_BASE_PIOA->PIO_ODR = AT91C_PIO_PA0;
while (1)
{
if((AT91C_BASE_PIOA->PIO_PDSR & AT91C_PIO_PA0)) // if PA0 were Hi
AT91C_BASE_PIOA->PIO_SODR = AT91C_PIO_PA1;
else // if PA0 were Lo
AT91C_BASE_PIOA->PIO_CODR = AT91C_PIO_PA1;
}
return 0;
}