早速スケッチの修正
const unsigned long DDS_CLK = 56000000L; // AD9834 Clock 56Mhz
const unsigned long TWO_E28 = 268435456L; // 2^28
//———- Function DDS set —————
void Fnc_Dds(double frquency){
unsigned long wrk = frquency * TWO_E28 / DDS_CLK;
unsigned int wrk1,wrk2,wrk3;
wrk1 = 0x2000;
wrk2 = wrk & 0x3fff;
wrk2 = wrk2 | 0x4000;
wrk3 = wrk >> 14;
wrk3 = wrk3 & 0x3fff;
wrk3 = wrk3 | 0x4000;
digitalWrite(SCLK,HIGH);
digitalWrite(FSYNC,LOW);
shiftOut(SDATA,SCLK,MSBFIRST,(wrk1 >> 8));
shiftOut(SDATA,SCLK,MSBFIRST,wrk1);
shiftOut(SDATA,SCLK,MSBFIRST,(wrk2 >> 8));
shiftOut(SDATA,SCLK,MSBFIRST,wrk2);
shiftOut(SDATA,SCLK,MSBFIRST,(wrk3 >> 8));
shiftOut(SDATA,SCLK,MSBFIRST,wrk3);
digitalWrite(FSYNC,HIGH);
}
以上を該当部分を削除しコピーします。
そして、
W_CLK → SCLK
FQ_UD → FSYNC
DATA → SDATA
に置換します。
以前実験したAD9834を使います。
これでOKだと思うのですが、
周波数カウンターをつなぎロータリーエンコーダーを回してもカウンターは変化しません。
やはり切り貼りで上手くいくはずがありません。
ところがSTEPを100Hzにするとカウンターはアップダウンをしています!!
AD9834 TFT DDS VFOがなんとか出来上がったようです。