//******** AD9850出力 ******** //** V.1.0 2017.12.15 JA7GVQ //** AD9850ライブラリ不要 ** // int FQ_UP = 5;//FQ_UP int W_CLK = 6;//W_CLK int DATA =4;//DATA long fc=125007122; //DDSクロック周波数 float freq=7020000; //DDS出力周波数 float K232=4294967296; //K232=2^32 unsigned long Nfreq; //DDS周波数設定データ int cont=0x00;//DDS位相、制御データ(=power on) int Flg=1; //実行フラグ void setup() { //出力ポート設定 pinMode(FQ_UP, OUTPUT); // 出力に設定 pinMode(W_CLK, OUTPUT); // 出力に設定 pinMode(DATA, OUTPUT); // 出力に設定 digitalWrite(13,HIGH); //LED ON digitalWrite(W_CLK,LOW); //W_CLK= 0; digitalWrite(FQ_UP,LOW); //FUP= 0; digitalWrite(W_CLK,HIGH);//W_CLK= 1; digitalWrite(W_CLK,LOW); //W_CLK= 0; digitalWrite(FQ_UP,HIGH);//FUP= 1; digitalWrite(FQ_UP,LOW); //FUP= 0; } void loop(){ if (Flg){ // Nfreq計算 Nfreq=freq*K232/fc; //K232=2^32 // DDS Nfreq,cont設定 unsigned char i; //Nfreq設定 digitalWrite(FQ_UP,LOW); //FUP= 0; for (i = 0; i < 32; i++) { if (((Nfreq >> i) & 0x00000001) != 0){ digitalWrite(DATA,HIGH); //DATA= 1; }else{ digitalWrite(DATA,LOW); //DATA= 0; } digitalWrite(W_CLK,HIGH); //W_CLK= 1; digitalWrite(W_CLK,LOW); //W_CLK= 0; } //cont設定 shiftOut(DATA, W_CLK, MSBFIRST, cont); //更新 digitalWrite(FQ_UP,HIGH); //FUP= 1; delay(1); digitalWrite(FQ_UP,LOW); //FUP= 0; }else{ Flg=0; } }