いつもありがとうございます.
現在ルネサスのRXマイコンを用いた開発を行っています.
その際,関数に対してあるポートのあるピンを引数として与えたいのですが,
マイコンでは,「ピン」はビットフィールドであらわされているため,
そのピンのアドレスを取得することができません
(そのピンの存在するポートでしたら取得できますが…)
例えばですがこんな感じが目標です.
C
1main(){ 2 SetOutputMode(PORT1.DDR.BIT.B0); // PORT1の0番ピンを出力モードにする 3} 4 5void SetOutputMode(fuga* pin){ 6 //引数で与えられた「ピン」の方向レジスタを1にしたい. 7 *pin = 1; 8}
自力で考えた限りでは,
PORTのアドレス(unsigned char*)と,何ビット目かのマスク値(0b00000001)を渡して,1ならORで,0なら反転してANDしてやれば行けるような気がしますが,
冗長すぎて使い物にならない....
ビット番号とマスク値は固定なのであらかじめ定義してやってもいいのかもしれませんが…
何か良い方法はありますでしょうか
よろしくお願いします.
回答3件
あなたの回答
tips
プレビュー