Merge branch 'master' of mjesec.ffzg.hr:/git/Arduino
[Arduino] / AD9850 / AD9850.ino
index 2cf65fe..074ac02 100644 (file)
@@ -7,14 +7,15 @@
  * 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); }
 
@@ -56,10 +57,12 @@ void setup() {
   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);
@@ -69,6 +72,8 @@ double freq_step = 1.e5; // 0.1 MHz
 int encoder_state = LOW;
 int encoder_last  = LOW;
 
+double new_freq = 0;
+
 void loop() {
   if (Serial.available()) {
      int inByte = Serial.read();
@@ -88,9 +93,22 @@ void loop() {
      } 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) {
@@ -103,5 +121,6 @@ void loop() {
   encoder_last = encoder_state;
   
   if(digitalRead(encoder_click) == LOW) sendFrequency( 1.e6 ); // reset to 1MHz
+#endif
 
 }