![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
ADF7023 with Explanations
main.cpp@0:77ff72005133, 2015-08-05 (annotated)
- Committer:
- dheerajmpai23
- Date:
- Wed Aug 05 11:19:48 2015 +0000
- Revision:
- 0:77ff72005133
SPORT MODE ADF7023 WITH EXPLANATION
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
dheerajmpai23 | 0:77ff72005133 | 1 | #include "mbed.h" //mbed Library |
dheerajmpai23 | 0:77ff72005133 | 2 | #include <iostream> |
dheerajmpai23 | 0:77ff72005133 | 3 | using namespace std; |
dheerajmpai23 | 0:77ff72005133 | 4 | #include <bitset> |
dheerajmpai23 | 0:77ff72005133 | 5 | |
dheerajmpai23 | 0:77ff72005133 | 6 | #define ENDL "\r" << endl; |
dheerajmpai23 | 0:77ff72005133 | 7 | #define START_ADDRESS 0x020; |
dheerajmpai23 | 0:77ff72005133 | 8 | |
dheerajmpai23 | 0:77ff72005133 | 9 | //SPI |
dheerajmpai23 | 0:77ff72005133 | 10 | |
dheerajmpai23 | 0:77ff72005133 | 11 | SPI adf(PTD6, PTD7, PTD5); //SPI Pin names in mbed |
dheerajmpai23 | 0:77ff72005133 | 12 | //MOSI, MISO, CLOCK |
dheerajmpai23 | 0:77ff72005133 | 13 | |
dheerajmpai23 | 0:77ff72005133 | 14 | DigitalOut CS(D10); //CS = chip select or slave select |
dheerajmpai23 | 0:77ff72005133 | 15 | Serial PC(USBTX, USBRX); //Serial Connection to PC Through USB port |
dheerajmpai23 | 0:77ff72005133 | 16 | DigitalOut ledr(LED_RED); //Blinking of LED for confirming the compilation of code |
dheerajmpai23 | 0:77ff72005133 | 17 | |
dheerajmpai23 | 0:77ff72005133 | 18 | DigitalIn clk(D8); //DigitalIn is used to poll the value of the clock |
dheerajmpai23 | 0:77ff72005133 | 19 | DigitalOut DT(D9); //Declaration of the pin |
dheerajmpai23 | 0:77ff72005133 | 20 | |
dheerajmpai23 | 0:77ff72005133 | 21 | int j=0; //Variable counting the bytes transmitted |
dheerajmpai23 | 0:77ff72005133 | 22 | |
dheerajmpai23 | 0:77ff72005133 | 23 | #define SPI_NOP 0xFF |
dheerajmpai23 | 0:77ff72005133 | 24 | |
dheerajmpai23 | 0:77ff72005133 | 25 | //Data that is to be transmitted |
dheerajmpai23 | 0:77ff72005133 | 26 | unsigned char data_TX [] = {0x65,0xD3,0x06,0x08,0xBB,0xE7,0xCD,0x16,0x65,0xD3,0x06,0x08,0xBB,0xE7,0xCD,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xEB,0x3D,0x35,0x66,0xDC,0xDA,0x33,0xA1,0x80,0x62,0xB7,0xB8,0x88,0x8A,0xCE,0x99,0x18,0xFA,0x24,0x42,0xD1,0x7C,0x2D,0x0E,0x72,0x9E,0xE9,0x7C,0xF9,0xBA,0x18,0xAA,0x4B,0xEC,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0xCC,0xB3,0xB2,0x5B,0x96,0x38,0x71,0x96,0x54,0xE2,0x4A,0x7F,0xC9,0xB7,0x1E,0x56,0x09,0x30,0x18,0x5A,0x84,0xFA,0xC1,0x9D,0xA6,0x6A,0x17,0x50,0x6F,0xD4,0x34,0x1D,0xF0,0xE0,0xE2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x78,0xC9,0x9A,0x09,0xE2,0x34,0xF9,0x39,0x61,0x36,0x9C,0xC2,0x98,0xB9,0x54,0xC0,0xDC,0xE6,0x90,0xF6,0xF6,0x88,0xD1,0xA5,0x5A,0x75,0x83,0x78,0x08,0xD6,0x9D,0xDE,0xB8,0x58,0xD4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x13,0x3F,0x78,0xD9,0x4E,0xB7,0xE8,0xD6,0x0D,0x1E,0xF1,0xC4,0xB9,0xAB,0x90,0x39,0x6A,0x9E,0x8A,0xB8,0xC9,0xAF,0x5E,0x85,0x66,0xBF,0x4E,0xB3,0xD3,0x54,0x9B,0x7D,0xA3,0x3A,0x1A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x20,0xE5,0xEE,0x00,0x81,0x83,0x7B,0x88,0x8A,0xAB,0x31,0x91,0x8F,0xA0,0x91,0x05,0x17,0xC2,0xD2,0xB9,0xC1,0xEE,0x97,0xCE,0x66,0xE9,0x8A,0xA4,0xBC,0xB1,0xFC,0xCB,0x3B,0x24,0x6E,0x5B,0x87,0x19,0x64,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x97,0x4C,0x18,0x22,0xEF,0x9F,0x34,0x59,0x97,0x4C,0x18,0x22,0xEF,0x9F,0x34,0x58,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x97,0x4C,0x18,0x22,0xEF,0x9F,0x34,0x59,0x97,0x4C,0x18,0x22,0xEF,0x9F,0x34,0x58,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; |
dheerajmpai23 | 0:77ff72005133 | 27 | |
dheerajmpai23 | 0:77ff72005133 | 28 | |
dheerajmpai23 | 0:77ff72005133 | 29 | //Note : A delay of 2 microseconds is given to ensure ADF7023 detects the CS = 'High' state and execute the command given. |
dheerajmpai23 | 0:77ff72005133 | 30 | //wait_us(2); ensures delay of 2 microseconds |
dheerajmpai23 | 0:77ff72005133 | 31 | |
dheerajmpai23 | 0:77ff72005133 | 32 | |
dheerajmpai23 | 0:77ff72005133 | 33 | |
dheerajmpai23 | 0:77ff72005133 | 34 | void send_data() |
dheerajmpai23 | 0:77ff72005133 | 35 | { |
dheerajmpai23 | 0:77ff72005133 | 36 | |
dheerajmpai23 | 0:77ff72005133 | 37 | |
dheerajmpai23 | 0:77ff72005133 | 38 | static int current_bit = 7; |
dheerajmpai23 | 0:77ff72005133 | 39 | |
dheerajmpai23 | 0:77ff72005133 | 40 | DT = (data_TX[j] >> current_bit) & 1; //if current bit == 1 then DT = High else DT = Low |
dheerajmpai23 | 0:77ff72005133 | 41 | --current_bit; //Next Bit |
dheerajmpai23 | 0:77ff72005133 | 42 | |
dheerajmpai23 | 0:77ff72005133 | 43 | if(current_bit == -1){ //If all 8 bits are transmitted. then go to next byte |
dheerajmpai23 | 0:77ff72005133 | 44 | current_bit = 7; //Going to the bit [0] |
dheerajmpai23 | 0:77ff72005133 | 45 | j++; |
dheerajmpai23 | 0:77ff72005133 | 46 | |
dheerajmpai23 | 0:77ff72005133 | 47 | |
dheerajmpai23 | 0:77ff72005133 | 48 | if(j>=sizeof(data_TX)) |
dheerajmpai23 | 0:77ff72005133 | 49 | { |
dheerajmpai23 | 0:77ff72005133 | 50 | // j=0; // In case repeatation of data is required |
dheerajmpai23 | 0:77ff72005133 | 51 | adf.write(0xB1); // Stops transmitting and reaches PHY_ON State (when repeatation is not required) |
dheerajmpai23 | 0:77ff72005133 | 52 | } |
dheerajmpai23 | 0:77ff72005133 | 53 | } |
dheerajmpai23 | 0:77ff72005133 | 54 | } |
dheerajmpai23 | 0:77ff72005133 | 55 | |
dheerajmpai23 | 0:77ff72005133 | 56 | |
dheerajmpai23 | 0:77ff72005133 | 57 | |
dheerajmpai23 | 0:77ff72005133 | 58 | |
dheerajmpai23 | 0:77ff72005133 | 59 | //BBRAM Sequence |
dheerajmpai23 | 0:77ff72005133 | 60 | // |
dheerajmpai23 | 0:77ff72005133 | 61 | |
dheerajmpai23 | 0:77ff72005133 | 62 | void write_bbram_sequence(void){ |
dheerajmpai23 | 0:77ff72005133 | 63 | |
dheerajmpai23 | 0:77ff72005133 | 64 | adf.write(0x19); //SPI_MEM_WR SPI Block Write BBRAM |
dheerajmpai23 | 0:77ff72005133 | 65 | adf.write(0x00); //Starting Address (0x100) |
dheerajmpai23 | 0:77ff72005133 | 66 | adf.write(0x00); //Data on 0x100 -- Interrupt_Mask Register -- As no Interrupt is required Value == 0x00 |
dheerajmpai23 | 0:77ff72005133 | 67 | adf.write(0x00); //Interrupt_Mask_1 No interrupts Required |
dheerajmpai23 | 0:77ff72005133 | 68 | |
dheerajmpai23 | 0:77ff72005133 | 69 | adf.write(0x00); // For details of other registers Please refer page 90-100 in ADF7023 Datasheet |
dheerajmpai23 | 0:77ff72005133 | 70 | adf.write(0x00); |
dheerajmpai23 | 0:77ff72005133 | 71 | adf.write(0x00); |
dheerajmpai23 | 0:77ff72005133 | 72 | adf.write(0x00); |
dheerajmpai23 | 0:77ff72005133 | 73 | |
dheerajmpai23 | 0:77ff72005133 | 74 | adf.write(0x00); |
dheerajmpai23 | 0:77ff72005133 | 75 | adf.write(0x33); |
dheerajmpai23 | 0:77ff72005133 | 76 | adf.write(0x00); |
dheerajmpai23 | 0:77ff72005133 | 77 | adf.write(0xF9); //BBRAm Register Corresponding to the frequency |
dheerajmpai23 | 0:77ff72005133 | 78 | |
dheerajmpai23 | 0:77ff72005133 | 79 | adf.write(0xC2); |
dheerajmpai23 | 0:77ff72005133 | 80 | adf.write(0x10); |
dheerajmpai23 | 0:77ff72005133 | 81 | adf.write(0xC0); |
dheerajmpai23 | 0:77ff72005133 | 82 | adf.write(0x00); |
dheerajmpai23 | 0:77ff72005133 | 83 | |
dheerajmpai23 | 0:77ff72005133 | 84 | adf.write(0x30); |
dheerajmpai23 | 0:77ff72005133 | 85 | adf.write(0x31); |
dheerajmpai23 | 0:77ff72005133 | 86 | adf.write(0x07); |
dheerajmpai23 | 0:77ff72005133 | 87 | adf.write(0x00); |
dheerajmpai23 | 0:77ff72005133 | 88 | |
dheerajmpai23 | 0:77ff72005133 | 89 | adf.write(0x01); |
dheerajmpai23 | 0:77ff72005133 | 90 | adf.write(0x00); |
dheerajmpai23 | 0:77ff72005133 | 91 | adf.write(0x7F); |
dheerajmpai23 | 0:77ff72005133 | 92 | adf.write(0x00); |
dheerajmpai23 | 0:77ff72005133 | 93 | |
dheerajmpai23 | 0:77ff72005133 | 94 | adf.write(0x0B); |
dheerajmpai23 | 0:77ff72005133 | 95 | adf.write(0x37); |
dheerajmpai23 | 0:77ff72005133 | 96 | adf.write(0x00); |
dheerajmpai23 | 0:77ff72005133 | 97 | adf.write(0x00); |
dheerajmpai23 | 0:77ff72005133 | 98 | adf.write(0x40); |
dheerajmpai23 | 0:77ff72005133 | 99 | adf.write(0x0C); |
dheerajmpai23 | 0:77ff72005133 | 100 | adf.write(0x00); |
dheerajmpai23 | 0:77ff72005133 | 101 | adf.write(0x05); |
dheerajmpai23 | 0:77ff72005133 | 102 | adf.write(0x00); |
dheerajmpai23 | 0:77ff72005133 | 103 | adf.write(0x00); |
dheerajmpai23 | 0:77ff72005133 | 104 | adf.write(0x18); |
dheerajmpai23 | 0:77ff72005133 | 105 | adf.write(0x12); |
dheerajmpai23 | 0:77ff72005133 | 106 | adf.write(0x34); |
dheerajmpai23 | 0:77ff72005133 | 107 | adf.write(0x56); |
dheerajmpai23 | 0:77ff72005133 | 108 | adf.write(0x10); |
dheerajmpai23 | 0:77ff72005133 | 109 | adf.write(0x10); |
dheerajmpai23 | 0:77ff72005133 | 110 | adf.write(0x08); |
dheerajmpai23 | 0:77ff72005133 | 111 | adf.write(0x14); |
dheerajmpai23 | 0:77ff72005133 | 112 | adf.write(0x00); |
dheerajmpai23 | 0:77ff72005133 | 113 | adf.write(0x00); |
dheerajmpai23 | 0:77ff72005133 | 114 | adf.write(0x00); |
dheerajmpai23 | 0:77ff72005133 | 115 | adf.write(0x00); |
dheerajmpai23 | 0:77ff72005133 | 116 | adf.write(0x00); |
dheerajmpai23 | 0:77ff72005133 | 117 | adf.write(0x00); |
dheerajmpai23 | 0:77ff72005133 | 118 | adf.write(0x00); |
dheerajmpai23 | 0:77ff72005133 | 119 | adf.write(0x00); |
dheerajmpai23 | 0:77ff72005133 | 120 | adf.write(0x00); |
dheerajmpai23 | 0:77ff72005133 | 121 | adf.write(0x00); |
dheerajmpai23 | 0:77ff72005133 | 122 | adf.write(0x00); |
dheerajmpai23 | 0:77ff72005133 | 123 | adf.write(0x00); |
dheerajmpai23 | 0:77ff72005133 | 124 | adf.write(0x00); |
dheerajmpai23 | 0:77ff72005133 | 125 | adf.write(0x00); |
dheerajmpai23 | 0:77ff72005133 | 126 | adf.write(0x00); |
dheerajmpai23 | 0:77ff72005133 | 127 | adf.write(0x00); |
dheerajmpai23 | 0:77ff72005133 | 128 | adf.write(0x00); |
dheerajmpai23 | 0:77ff72005133 | 129 | adf.write(0x00); |
dheerajmpai23 | 0:77ff72005133 | 130 | adf.write(0x04); |
dheerajmpai23 | 0:77ff72005133 | 131 | adf.write(0x00); |
dheerajmpai23 | 0:77ff72005133 | 132 | adf.write(0x00); |
dheerajmpai23 | 0:77ff72005133 | 133 | adf.write(0x00); |
dheerajmpai23 | 0:77ff72005133 | 134 | adf.write(0x00); |
dheerajmpai23 | 0:77ff72005133 | 135 | adf.write(0x00); |
dheerajmpai23 | 0:77ff72005133 | 136 | |
dheerajmpai23 | 0:77ff72005133 | 137 | } |
dheerajmpai23 | 0:77ff72005133 | 138 | |
dheerajmpai23 | 0:77ff72005133 | 139 | void initiate(void){ |
dheerajmpai23 | 0:77ff72005133 | 140 | |
dheerajmpai23 | 0:77ff72005133 | 141 | CS=0; //ADF023 and mbed SPI is active low and ADF7023 samples at rising edge mode = 0; |
dheerajmpai23 | 0:77ff72005133 | 142 | adf.write(0x1B); |
dheerajmpai23 | 0:77ff72005133 | 143 | adf.write(0xFA); |
dheerajmpai23 | 0:77ff72005133 | 144 | adf.write(0xA0); |
dheerajmpai23 | 0:77ff72005133 | 145 | CS=1; // SPI goes to High impedence State |
dheerajmpai23 | 0:77ff72005133 | 146 | wait_us(2); |
dheerajmpai23 | 0:77ff72005133 | 147 | |
dheerajmpai23 | 0:77ff72005133 | 148 | CS=0; //Chip Select = low implies Chip is selected SPI is enabled |
dheerajmpai23 | 0:77ff72005133 | 149 | adf.write(0x18); |
dheerajmpai23 | 0:77ff72005133 | 150 | adf.write(0x0D); |
dheerajmpai23 | 0:77ff72005133 | 151 | adf.write(0x00); |
dheerajmpai23 | 0:77ff72005133 | 152 | CS=1; //Chip select == high . Chip goes to High impedence state |
dheerajmpai23 | 0:77ff72005133 | 153 | wait_us(2); |
dheerajmpai23 | 0:77ff72005133 | 154 | |
dheerajmpai23 | 0:77ff72005133 | 155 | // ADF7023 is now configured to SPORT MODE |
dheerajmpai23 | 0:77ff72005133 | 156 | |
dheerajmpai23 | 0:77ff72005133 | 157 | CS=0; |
dheerajmpai23 | 0:77ff72005133 | 158 | adf.write(0xB0); //In order to write BBRAM Sequence we need to change the state to PHY_OFF state |
dheerajmpai23 | 0:77ff72005133 | 159 | CS=1; |
dheerajmpai23 | 0:77ff72005133 | 160 | wait_us(600); |
dheerajmpai23 | 0:77ff72005133 | 161 | |
dheerajmpai23 | 0:77ff72005133 | 162 | CS=0; |
dheerajmpai23 | 0:77ff72005133 | 163 | write_bbram_sequence(); //BBRAM_SEQUENCE Contains all data that is required to configure the Radio |
dheerajmpai23 | 0:77ff72005133 | 164 | CS=1; |
dheerajmpai23 | 0:77ff72005133 | 165 | wait_us(2); |
dheerajmpai23 | 0:77ff72005133 | 166 | |
dheerajmpai23 | 0:77ff72005133 | 167 | CS=0; |
dheerajmpai23 | 0:77ff72005133 | 168 | adf.write(0xFF); //0xFF is the Dummy Byte Provides required time for ADF to get ready to accept command |
dheerajmpai23 | 0:77ff72005133 | 169 | adf.write(0xFF); |
dheerajmpai23 | 0:77ff72005133 | 170 | CS=1; |
dheerajmpai23 | 0:77ff72005133 | 171 | wait_us(2); |
dheerajmpai23 | 0:77ff72005133 | 172 | |
dheerajmpai23 | 0:77ff72005133 | 173 | CS=0; |
dheerajmpai23 | 0:77ff72005133 | 174 | adf.write(0xFF); |
dheerajmpai23 | 0:77ff72005133 | 175 | adf.write(0xFF); |
dheerajmpai23 | 0:77ff72005133 | 176 | CS=1; |
dheerajmpai23 | 0:77ff72005133 | 177 | wait_us(2); |
dheerajmpai23 | 0:77ff72005133 | 178 | |
dheerajmpai23 | 0:77ff72005133 | 179 | |
dheerajmpai23 | 0:77ff72005133 | 180 | CS=0; |
dheerajmpai23 | 0:77ff72005133 | 181 | adf.write(0xBB);// CONFIGURE_DEV Configures the radio according to the bbram Sequence Except the transmission frequency |
dheerajmpai23 | 0:77ff72005133 | 182 | CS=1; |
dheerajmpai23 | 0:77ff72005133 | 183 | wait_us(2); // Approx time required for state transition |
dheerajmpai23 | 0:77ff72005133 | 184 | |
dheerajmpai23 | 0:77ff72005133 | 185 | CS=0; |
dheerajmpai23 | 0:77ff72005133 | 186 | adf.write(0xB1);//PHY_ON Turns on the radio |
dheerajmpai23 | 0:77ff72005133 | 187 | CS=1; |
dheerajmpai23 | 0:77ff72005133 | 188 | wait_us(2); |
dheerajmpai23 | 0:77ff72005133 | 189 | |
dheerajmpai23 | 0:77ff72005133 | 190 | CS=0; |
dheerajmpai23 | 0:77ff72005133 | 191 | adf.write(0xB5);//PHY_TX Sets Transmission Frequency according to bbram and starts transmitting |
dheerajmpai23 | 0:77ff72005133 | 192 | CS=1; |
dheerajmpai23 | 0:77ff72005133 | 193 | wait_us(600); //Maximum time required for ADF7023 for the above State transmission . Tested in Space Lab condition |
dheerajmpai23 | 0:77ff72005133 | 194 | } |
dheerajmpai23 | 0:77ff72005133 | 195 | |
dheerajmpai23 | 0:77ff72005133 | 196 | |
dheerajmpai23 | 0:77ff72005133 | 197 | |
dheerajmpai23 | 0:77ff72005133 | 198 | |
dheerajmpai23 | 0:77ff72005133 | 199 | int main(){ |
dheerajmpai23 | 0:77ff72005133 | 200 | |
dheerajmpai23 | 0:77ff72005133 | 201 | |
dheerajmpai23 | 0:77ff72005133 | 202 | CS = 1; // Chip Select == low Enabling the SPI |
dheerajmpai23 | 0:77ff72005133 | 203 | adf.format(8,0); // SPI interfaces in 8 bit pattern ,SPI Mode = 0 |
dheerajmpai23 | 0:77ff72005133 | 204 | adf.frequency( 1000000 ); // SPI Frequency = 1 MHz |
dheerajmpai23 | 0:77ff72005133 | 205 | |
dheerajmpai23 | 0:77ff72005133 | 206 | cout << "Press s" << ENDL; // The following code upto 6 lines are used to ensure the data is transmitted at the required time |
dheerajmpai23 | 0:77ff72005133 | 207 | ledr = 1; |
dheerajmpai23 | 0:77ff72005133 | 208 | char c = 'a'; //Initialising the variable |
dheerajmpai23 | 0:77ff72005133 | 209 | |
dheerajmpai23 | 0:77ff72005133 | 210 | while( c != 's'){ |
dheerajmpai23 | 0:77ff72005133 | 211 | c = PC.getc(); |
dheerajmpai23 | 0:77ff72005133 | 212 | PC.putc(c); |
dheerajmpai23 | 0:77ff72005133 | 213 | } |
dheerajmpai23 | 0:77ff72005133 | 214 | ledr = 0; |
dheerajmpai23 | 0:77ff72005133 | 215 | |
dheerajmpai23 | 0:77ff72005133 | 216 | initiate(); // Initiates the Radio to Sport Mode and starts transmitting |
dheerajmpai23 | 0:77ff72005133 | 217 | |
dheerajmpai23 | 0:77ff72005133 | 218 | int state; // The datarate in which we are testing is half the Clockrate |
dheerajmpai23 | 0:77ff72005133 | 219 | // We are using the variable 'state' to ensure the data is sampled in alternative rising edge |
dheerajmpai23 | 0:77ff72005133 | 220 | |
dheerajmpai23 | 0:77ff72005133 | 221 | if(clk == 0){ // Initialising the State of the clock |
dheerajmpai23 | 0:77ff72005133 | 222 | state = 0; |
dheerajmpai23 | 0:77ff72005133 | 223 | } |
dheerajmpai23 | 0:77ff72005133 | 224 | else{ |
dheerajmpai23 | 0:77ff72005133 | 225 | state = 1; |
dheerajmpai23 | 0:77ff72005133 | 226 | } |
dheerajmpai23 | 0:77ff72005133 | 227 | |
dheerajmpai23 | 0:77ff72005133 | 228 | while(true){ // Polling |
dheerajmpai23 | 0:77ff72005133 | 229 | if(clk == 0){ |
dheerajmpai23 | 0:77ff72005133 | 230 | if(state == 1){ |
dheerajmpai23 | 0:77ff72005133 | 231 | state = 0; |
dheerajmpai23 | 0:77ff72005133 | 232 | send_data(); |
dheerajmpai23 | 0:77ff72005133 | 233 | } |
dheerajmpai23 | 0:77ff72005133 | 234 | } |
dheerajmpai23 | 0:77ff72005133 | 235 | else{ //As data is sampled in alternating rising edge in ADF7023 this ensures that the Data changes accordingly |
dheerajmpai23 | 0:77ff72005133 | 236 | state = 1; |
dheerajmpai23 | 0:77ff72005133 | 237 | } |
dheerajmpai23 | 0:77ff72005133 | 238 | } |
dheerajmpai23 | 0:77ff72005133 | 239 | } |