본문 바로가기
프로그래밍

ARM데이터시트_ODR레지스터

by BlueOcean&Shark 2016. 12. 4.

ODR레지스터는 OUT로 설정된 PIN의 출력여부를 결정하는 레지스터이다.
16~31번비트는사용되지 않으며, 0~15번비트만 사용한다.

PC13핀의 출력제어를 해보자.
해당비트가 1이면 출력되고,해당비트가 0이면 출력되지 않는다.
따라서 PC13을 제어하려면 13번 BIT를 1또는 0으로 해주면된다.
0x00002000 로할경우 출력
0x00002000 로할경우 출력되지 않는다.

실제 아래와 같이 코딩해주면 PC13핀의 LED가 깜빡깜빡거린다.
  while(1)
  {
           GPIOC->ODR ^= 0x00002000;
           for( uint32_t  i = 0 ; i < 72000000/16 ; i++)
           {
            __NOP();
           }
           GPIOC->ODR = 0x00000000;
           for( uint32_t  i = 0 ; i < 72000000/16 ; i++)
           {
            __NOP();
           }
  }

댓글