본문 바로가기
코스웨어/14년 스마트컨트롤러

ARM main source - 허수웅

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

3가지 방법을 이용한 ARM 소스 표현


// 직접 작성된 해더파일 사용 시

#include "myAT91SAM7S256.h" 

int main()

{

PCM_PECR  =  1 << 2;

PIO_PDR  =  0xFFFFFFFF;

PIO_PER  =  PA0 | PA1;

PIO_OER  =  PA1;

PIO_ODR  =  PA0;

  while (1)

{

if((PIO_PDSR  &  PA0)) 

PIO_SODR  =  PA1;

  else 

PIO_CODR  =  PA1;

   }

   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 ))

AT91C_BASE_PIOA  ->  PIO_SODR   =  AT91C_PIO_PA1;

else

AT91C_BASE_PIOA  ->  PIO_CODR  =  AT91C_PIO_PA1; 

   }

   return 0;

}


// 직접 주소에 접근하여 사용 시

#include "AT91SAM7S256.h"

int main()

{

*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(( *AT91C_PIOA_PDSR  &  AT91C_PIO_PA0 ))

*AT91C_PIOA_SODR  =  AT91C_PIO_PA1;

else

*AT91C_PIOA_CODR  =  AT91C_PIO_PA1; 

}

return 0;

}



728x90