Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const int tombol1 = 2; // Pushbutton 1
- const int tombol2 = 3; // Pushbutton 2
- const int tombol3 = 4; // Pushbutton 3
- int status1 = 0;
- int status2 = 0;
- int status3 = 0;
- long f = 0;
- #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 pulseHigh(pin) {digitalWrite(pin, HIGH); digitalWrite(pin, LOW); }
- // transfers a byte, a bit at a time, LSB first to the 9850 via serial DATA line
- void tfr_byte(byte data)
- {
- for (int i=0; i<8; i++, data>>=1) {
- digitalWrite(DATA, data & 0x01);
- pulseHigh(W_CLK); //after each bit sent, CLK is pulsed high
- }
- }
- // frequency calc from datasheet page 8 = <sys clock> * <frequency tuning word>/2^32
- void sendFrequency(double frequency) {
- int32_t freq = frequency * 4294967295/125000000; // note 125 MHz clock on 9850
- for (int b=0; b<4; b++, freq>>=8) {
- tfr_byte(freq & 0xFF);
- }
- tfr_byte(0x000); // Final control byte, all 0 for 9850 chip
- pulseHigh(FQ_UD); // Done! Should see output
- }
- void setup()
- {
- // configure arduino data pins for output
- pinMode(FQ_UD, OUTPUT);
- pinMode(W_CLK, OUTPUT);
- pinMode(DATA, OUTPUT);
- pinMode(RESET, OUTPUT);
- pulseHigh(RESET);
- pulseHigh(W_CLK);
- pulseHigh(FQ_UD); // this pulse enables serial mode - Datasheet page 12 figure 10
- pinMode(tombol1, INPUT);
- pinMode(tombol2, INPUT);
- pinMode(tombol3, INPUT);
- Serial.begin(9600);
- sendFrequency(400); // freq
- delay (5000);
- sendFrequency(1300); // freq
- delay (5000);
- sendFrequency(3000); // freq
- delay (5000);
- }
- void loop()
- {
- status1 = digitalRead(tombol1);
- status2 = digitalRead(tombol2);
- status3 = digitalRead(tombol3);
- if (status1 == HIGH) {
- outermarker();
- Serial.println ("Outer Marker");
- } else {
- notone();
- }
- if (status2 == HIGH) {
- midlemarker();
- Serial.println ("Midle Marker");
- } else {
- notone();
- }
- if (status3 == HIGH) {
- innermarker();
- Serial.println ("Inner Marker");
- } else {
- notone();
- }
- }
- void notone(){
- sendFrequency(0); // freq
- }
- void outermarker(){
- sendFrequency(400); // freq
- delay(500);
- sendFrequency(0); // freq
- delay(100);
- sendFrequency(400); // freq
- }
- void midlemarker(){
- sendFrequency(1300); // freq
- delay(200);
- sendFrequency(0); // freq
- delay(100);
- sendFrequency(1300); // freq
- delay(500);
- }
- void innermarker(){
- sendFrequency(3000); // freq
- delay(150);
- sendFrequency(0); // freq
- delay(150);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement