알 수 없는 사용자 2014. 10. 29. 15:41
728x90
반응형

//#include "myAT91SAM7S256.h"

#include "AT91SAM7S256.h"


int main()

{

/*

//직접 만든 경우 --------------------------------------------------

PMC_PCER = (1<<2);

PIO_PDR = 0xFFFFFFFF;

PIO_PER = PA0|PA1; // Port Enable PA0~1

PIO_OER = PA1; // PA1 is Output

PIO_ODR = PA0; // PA0 is Input

*/


/*

//헤더에서 구조체를 사용한 경우 -----------------------------------

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;

*/

//헤더에서 선언된 주소를 사용한 경우 ------------------------------

*AT91C_PMC_PCER = (1 << AT91C_ID_PIOA);

*AT91C_PIOA_PDR = 0xFFFFFFFF;

*AT91C_PIOA_PER = AT91C_PIO_PA0 | AT91C_PIO_PA1;

*AT91C_PIOA_OER = AT91C_PIO_PA1;

*AT91C_PIOA_ODR = AT91C_PIO_PA0;



while (1)

{

/*

//직접 만든 경우 --------------------------------------------------

if((PIO_PDSR & PA0))   // if PA0 were Hi

PIO_SODR = 2; // then PA1 out is Hi

else // if PA0 were Lo

PIO_CODR = 2; // then PA1 out is Lo

*/

/*

//헤더에서 구조체를 사용한 경우 ------------------------------------

if(AT91C_PIO_PA0 == (AT91C_BASE_PIOA->PIO_PDSR & AT91C_PIO_PA0 )) // if PA0 were Hi

{

AT91C_BASE_PIOA->PIO_SODR = AT91C_PIO_PA1; // then PA1 out is Hi

}

else // if PA0 were Lo

{

AT91C_BASE_PIOA->PIO_CODR = AT91C_PIO_PA1; // then PA1 out is Lo

}

*/


//헤더에서 선언된 주소를 사용한 경우 -------------------------------

if(AT91C_PIO_PA0 == (*AT91C_PIOA_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;

}



728x90