【dsPIC33FJ128MC802】ポートをパタパタしてみる。(C言語の中でアセンブラ)
◆dsPIC33FJ128MC802でポートをオシロで確認しながらパタパタ切り替えてみます。
「C言語のみ」と「アセンブラ混在のC言語」と比較してみたいと思います。
1)C言語のみ
while文の中でポートBの6bitをパタパタしました。
論理演算子NOTにより毎回ポート出力を変えました。
プログラムは↓
while(1) { LATBbits.LATB6 = !LATBbits.LATB6; }//while(1)
出力波形は↓の黄色い線
High→Lowに450nsecかかっているようです。
2)アセンブラ混在のC言語
while文の中でポートBの6bitをパタパタしました。
ビットセット命令で3回パタパタしました。
アセンブラはデーターシートDS70291のpage348~352にて勉強できます。
プログラムは↓です。
while(1) { asm("BSET LATB, #6"); asm("BCLR LATB, #6"); asm("BSET LATB, #6"); asm("BCLR LATB, #6"); asm("BSET LATB, #6"); asm("BCLR LATB, #6"); }//while(1)
出力波形は↓の黄色い線
High→Lowに25nsecかかっているので≒1/40MHzと理論通りっぽいですね。
アセンブラ早えーー
3)回路図はこちら
ディスカッション
コメント一覧
まだ、コメントがありません