인풋으로 들어오는 signal 을 저장해서 출력하려고하는데 문제가 있습니다.

조회수 906회
unsigned int8 sensor_write ( int8* first_byte)

{

   int8 i=0x00;

   unsigned int8 iobyte = 0x00;

   const int8 mask0 = 0x00;

   const int8 mask1 = 0x01;


   iobyte = 0;

   for( i= 0; i < 8 ; i++)

   {

      iobyte = iobyte << 1;

      output_bit(PM_CLOCK_pin,1);

      if ( input(PM_MISO_pin))

      {

         iobyte |= mask1;

      }

      else

      {

         iobyte |= mask0;

      }

      delay_us(1);                

      output_bit(PM_CLOCK_pin,0);

      delay_us(1);


   }

    printf ("1:%x", iobyte);

}

위와 같은 함수를 돌려 입력받은 데이터를 iobyte에 저장하여 이를 출력하는데..

0x00,0x01 과 같이 출력이 될것으로 예상이 되었는데.. 0x000, 0x001 과 같이 출력이됩니다.

0xf1,0xf2 의 경우에는 0xff1, 0xff2 와 같이 출력이되는데..

자료형에 문제가 있는것인지.. 혹은 다른부분에 문제가 있는것인지 도무지 감을 잡을수가 없어..

도움을 요청합니다.ㅠ

  • (•́ ✖ •̀)
    알 수 없는 사용자
  • 아두이노인가요? 정토드 2016.11.7 22:07
  • 음 아두이노는 아니고.. pic18 시리즈로 된 키트에 들어갈 코드입니다. 알 수 없는 사용자 2016.11.9 10:38

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)