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


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월 04일에 작성됨

  • 아두이노인가요?    정두식   2016.11.7 22:07     
  • 음 아두이노는 아니고.. pic18 시리즈로 된 키트에 들어갈 코드입니다.    johnclawf   2016.11.9 10:38     
조회수 48


로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close