2020年8月14日金曜日

おしゃべり時計withUSB開発日誌(6)、printfで2進数表示。

 RTCCのキャリブレーションの設定についてコーディングしたので、デバッグでコンソールに値を2進数で表示したい。

しかしながら、c言語のprintfには、2進数の出力フォーマット指定が無い。

そこでネットでいろいろ調べて下記のよにコーディングを追加して2進数で表示するようにした。

---------------------------------------------------------------------------------------------

void printb(unsigned int val) 

{

    unsigned int mask = (int)1 << (sizeof(int) * 8 - 1);

    do 

    {

        if ( val & mask ){

            xputs("1");

        }

        else{

            xputs("0");

      }

    }

    while (mask >>= 1);

  

}


void putb(unsigned int v) 

{

  xputs("0b"), printb(v), xputs("\n");

}

---------------------------------------------------------------------------------------------


これで、次のようにコーディングすれば、下記のように出力される。
xputs("Cal Value = "); 
putb(RTCCONbits.CAL);



20200730(+2.0)




0 件のコメント:

コメントを投稿

KT0913 FMラジオの作成(8) 出来上がったPCB基板にミスあり。

  FusionPCB から基板がとどきました。20240121. 1月11日に発注したので10日で出来上がって届きました。 早速組み立てましたがが、イヤホンジャックのフットプリントが裏返っており、痛恨のミス。。。 しかしながら、他にも問題が無いか一通り組み立ててチェックしました...