* Use freely
*/
-#define W_CLK 8 // Pin 8 - connect to AD9850 module word load clock pin (CLK)
-#define FQ_UD 9 // Pin 9 - connect to freq update pin (FQ)
-#define DATA 10 // Pin 10 - connect to serial data load pin (DATA)
-#define RESET 11 // Pin 11 - connect to reset pin (RST).
+#define W_CLK 7 // connect to AD9850 module word load clock pin (CLK)
+#define FQ_UD 6 // connect to freq update pin (FQ)
+#define DATA 5 // connect to serial data load pin (DATA)
+#define RESET 4 // connect to reset pin (RST).
-#define encoder_a 3
-#define encoder_b 4
-#define encoder_click 5
+#define ENCODER 0
+#define encoder_a 7
+#define encoder_b 8
+#define encoder_click 9
#define pulseHigh(pin) {digitalWrite(pin, HIGH); digitalWrite(pin, LOW); }
pulseHigh(W_CLK);
pulseHigh(FQ_UD); // this pulse enables serial mode - Datasheet page 12 figure 10
+#if ENCODER
// encoder
pinMode(encoder_a, INPUT);
pinMode(encoder_b, INPUT);
pinMode(encoder_click, INPUT);
+#endif
Serial.begin(9600);
sendFrequency(user_freq);
int encoder_state = LOW;
int encoder_last = LOW;
+double new_freq = 0;
+
void loop() {
if (Serial.available()) {
int inByte = Serial.read();
Serial.println(inByte, DEC);
- if (inByte == 43 || inByte == 61) { // + or =
+ if (inByte == 43 || inByte == 61 or inByte == 67) { // + = left
user_freq += freq_step;
sendFrequency(user_freq);
- } else if ( inByte == 45 ) {
+ } else if ( inByte == 45 || inByte == 68) { // - right
user_freq -= freq_step;
sendFrequency(user_freq);
+ } else if ( inByte == 65 ) { // up
+ user_freq -= freq_step * 10;
+ sendFrequency(user_freq);
+ } else if ( inByte == 66 ) { // down
+ user_freq += freq_step * 10;
+ sendFrequency(user_freq);
+ } else if ( inByte >= 48 && inByte <= 57) { // 0 .. 9
+ user_freq = ( inByte - 48 ) * 1.e6;
+ sendFrequency(user_freq);
+ } else if ( inByte == 13 ) { // enter
+ Serial.print("enter Mhz = ");
+ while (Serial.available() == 0);
+ new_freq = Serial.parseFloat();
+ while (Serial.available() > 0) { Serial.read(); } // suck enter and just from partFloat
+ Serial.println();
+ if ( new_freq == 0 ) {
+ Serial.println("# ignored");
+ } else {
+ user_freq = new_freq * 1.e6;
+ sendFrequency(user_freq);
+ }
}
}
+#if ENCODER
encoder_state = digitalRead(encoder_a);
if ((encoder_last == LOW) && (encoder_state == HIGH)) {
if (digitalRead(encoder_b) == LOW) {
encoder_last = encoder_state;
if(digitalRead(encoder_click) == LOW) sendFrequency( 1.e6 ); // reset to 1MHz
+#endif
}