unsigned int ShiftOut = FreqDiv;
unsigned int TestOut = FreqDiv;
char i = 0;
for(i=0; i<32; i++) {
TestOut = ShiftOut & 1;
if(TestOut==1) {
_sdo = 1;
} else {
_sdo = 0;
}
_clk = 1;
ShiftOut = ShiftOut >> 1;
_clk = 0;
}
ShiftOut = FortyBitWd;
for(i=0; i<8; i++) {
TestOut = ShiftOut & 1;
if(TestOut==1) {
_sdo = 1;
} else {
_sdo = 0;
}
_clk = 1;
ShiftOut = ShiftOut >> 1;
_clk = 0;
}
_len = 1;
_len = 0;
}
mbedのライブラリから抜粋。
LPC1114でAD9851を制御する場合の核心部分。
(スペースを無視して表示するのは何とかならんのか?)
Delphiだと多少はわかるのだが、Cだとサブルーチンの使い方が良くわからん。考え方は同じだろうけど、Cの教科書を読み直すか。コンパイラが優秀なら同じルーチンをサブルーチン化してくれるのだろうけど、mbedがどんなコンパイラだかわからん。
冒頭に引用した処理はサブルーチン化しないと同じ処理を四回書かないといかん。
unsigned int TestOut = FreqDiv;
char i = 0;
for(i=0; i<32; i++) {
TestOut = ShiftOut & 1;
if(TestOut==1) {
_sdo = 1;
} else {
_sdo = 0;
}
_clk = 1;
ShiftOut = ShiftOut >> 1;
_clk = 0;
}
ShiftOut = FortyBitWd;
for(i=0; i<8; i++) {
TestOut = ShiftOut & 1;
if(TestOut==1) {
_sdo = 1;
} else {
_sdo = 0;
}
_clk = 1;
ShiftOut = ShiftOut >> 1;
_clk = 0;
}
_len = 1;
_len = 0;
}
mbedのライブラリから抜粋。
LPC1114でAD9851を制御する場合の核心部分。
(スペースを無視して表示するのは何とかならんのか?)
Delphiだと多少はわかるのだが、Cだとサブルーチンの使い方が良くわからん。考え方は同じだろうけど、Cの教科書を読み直すか。コンパイラが優秀なら同じルーチンをサブルーチン化してくれるのだろうけど、mbedがどんなコンパイラだかわからん。
冒頭に引用した処理はサブルーチン化しないと同じ処理を四回書かないといかん。
※コメント投稿者のブログIDはブログ作成者のみに通知されます