AD9834 TFT DDS VFO

投稿者: | 2016年8月30日

早速スケッチの修正

Arduino AD9834 DDS VFOより、

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を使います。

ad9834

これでOKだと思うのですが、

周波数カウンターをつなぎロータリーエンコーダーを回してもカウンターは変化しません。

やはり切り貼りで上手くいくはずがありません。

ところがSTEPを100Hzにするとカウンターはアップダウンをしています!!

AD9834 TFT DDS VFOがなんとか出来上がったようです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です