Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of COM_MNG_TMTC_SIMPLE by
adf.h@8:d1951bbdcdd8, 2015-12-31 (annotated)
- Committer:
- shekhar
- Date:
- Thu Dec 31 08:39:43 2015 +0000
- Revision:
- 8:d1951bbdcdd8
- Parent:
- 7:4e744637b2e8
- Child:
- 9:9dbd59a6cc30
added adf.h and snd_tm;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
shekhar | 8:d1951bbdcdd8 | 1 | //without reset feature , with state checks. |
shekhar | 8:d1951bbdcdd8 | 2 | |
shekhar | 8:d1951bbdcdd8 | 3 | //Adding following algo for reset feature |
shekhar | 8:d1951bbdcdd8 | 4 | //1. Check for reset flag, if true then |
shekhar | 8:d1951bbdcdd8 | 5 | //2. Modify values of the relevant flags |
shekhar | 8:d1951bbdcdd8 | 6 | //3. Attach the new pointer to head_pointer of the class |
shekhar | 8:d1951bbdcdd8 | 7 | //4. Ensure the values are modified. |
shekhar | 8:d1951bbdcdd8 | 8 | //in restart_adf write 2 times writing and transmitting and detach-attach ticker |
shekhar | 8:d1951bbdcdd8 | 9 | |
shekhar | 8:d1951bbdcdd8 | 10 | #include<iostream> |
shekhar | 8:d1951bbdcdd8 | 11 | //#include"mbed.h" |
shekhar | 8:d1951bbdcdd8 | 12 | #define ADF_IRQ PTA14 |
shekhar | 8:d1951bbdcdd8 | 13 | #define SPI_MOSI PTE1 |
shekhar | 8:d1951bbdcdd8 | 14 | #define SPI_MISO PTE3 |
shekhar | 8:d1951bbdcdd8 | 15 | #define SPI_CLK PTE2 |
shekhar | 8:d1951bbdcdd8 | 16 | #define SPI_CS_ADF PTA15 |
shekhar | 8:d1951bbdcdd8 | 17 | |
shekhar | 8:d1951bbdcdd8 | 18 | |
shekhar | 8:d1951bbdcdd8 | 19 | #include"stdio.h" // remove on adding "mbed.h" |
shekhar | 8:d1951bbdcdd8 | 20 | FILE *fp; |
shekhar | 8:d1951bbdcdd8 | 21 | //replace with spi.write(buffer_112[i]);\ |
shreeshas95 | 1:a0055b3280c8 | 22 | |
shekhar | 8:d1951bbdcdd8 | 23 | //modified : if(sent_tmfrom_SDcard){\ |
shekhar | 8:d1951bbdcdd8 | 24 | }else{\ |
shekhar | 8:d1951bbdcdd8 | 25 | snd_tm.transmit_data(buffer_112,&last_buffer);\ |
shekhar | 8:d1951bbdcdd8 | 26 | }\ |
shekhar | 8:d1951bbdcdd8 | 27 | //took this from write_data and put to check |
shekhar | 8:d1951bbdcdd8 | 28 | // commented IRQ |
shekhar | 8:d1951bbdcdd8 | 29 | //commented send_TM_FROM_SDCARD in "sdcread.h" |
shekhar | 8:d1951bbdcdd8 | 30 | //commented initiate |
shekhar | 8:d1951bbdcdd8 | 31 | // deleted spi.write from write_data |
shekhar | 8:d1951bbdcdd8 | 32 | |
shekhar | 8:d1951bbdcdd8 | 33 | |
shekhar | 8:d1951bbdcdd8 | 34 | |
shekhar | 8:d1951bbdcdd8 | 35 | //Serial gPC( USBTX, USBRX ); |
shekhar | 8:d1951bbdcdd8 | 36 | //gPC.baud(1200); |
shekhar | 8:d1951bbdcdd8 | 37 | //InterruptIn IRQ(ADF_IRQ); |
shekhar | 8:d1951bbdcdd8 | 38 | //Ticker ticker; |
shekhar | 8:d1951bbdcdd8 | 39 | //SPI spi(PTE1, PTE3, PTE2); |
shekhar | 8:d1951bbdcdd8 | 40 | //DigitalOut gCS_ADF(SPI_CS_ADF); |
shekhar | 8:d1951bbdcdd8 | 41 | unsigned int Adf_data_counter=0; |
shekhar | 8:d1951bbdcdd8 | 42 | unsigned char status =0; |
shekhar | 8:d1951bbdcdd8 | 43 | unsigned int cmd_err_cnt=0; |
shekhar | 8:d1951bbdcdd8 | 44 | unsigned int state_err_cnt=0; |
shekhar | 8:d1951bbdcdd8 | 45 | unsigned int miso_err_cnt=0; |
shekhar | 8:d1951bbdcdd8 | 46 | unsigned int hw_reset_err_cnt=0; |
shekhar | 8:d1951bbdcdd8 | 47 | bool bcn_flag=0; |
shekhar | 8:d1951bbdcdd8 | 48 | bool bbram_flag=0; |
shekhar | 8:d1951bbdcdd8 | 49 | |
shekhar | 8:d1951bbdcdd8 | 50 | bool stop_transmission=false; |
shreeshas95 | 1:a0055b3280c8 | 51 | bool sent_tmfrom_SDcard; |
shreeshas95 | 1:a0055b3280c8 | 52 | bool loop_on; |
shreeshas95 | 1:a0055b3280c8 | 53 | bool ADF_off; |
shreeshas95 | 1:a0055b3280c8 | 54 | bool buffer_state; |
shreeshas95 | 1:a0055b3280c8 | 55 | uint8_t signal = 0x00; |
shekhar | 8:d1951bbdcdd8 | 56 | uint8_t bbram_buffer[66]={0x19,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x00,0xF4,0xC2,0x10,0xC0,0x00,0x30,0x31,0x07,0x00,0x01,0x00,0x7F,0x00,0x0B,0x37,0x00,0x00,0x40,0x0C,0x00,0x05,0x00,0x00,0x18,0x12,0x34,0x56,0x10,0x10,0xC4,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00}; |
shekhar | 8:d1951bbdcdd8 | 57 | uint8_t Adf_data[100]={}; //Data to be transmitted |
shekhar | 8:d1951bbdcdd8 | 58 | //uint8_t buffer_112[112]; |
shreeshas95 | 2:2caf2a9a13aa | 59 | //int initialise_card(); |
shreeshas95 | 2:2caf2a9a13aa | 60 | //int disk_initialize(); |
shreeshas95 | 1:a0055b3280c8 | 61 | |
shekhar | 8:d1951bbdcdd8 | 62 | |
shekhar | 8:d1951bbdcdd8 | 63 | //void transmitdata(){ // copy the data to be transmitted to bufer_112 |
shekhar | 8:d1951bbdcdd8 | 64 | // for(int i=0;i<112;i++){ |
shekhar | 8:d1951bbdcdd8 | 65 | // buffer_112[i]=Adf_data[Adf_data_counter]; |
shekhar | 8:d1951bbdcdd8 | 66 | // if(100==Adf_data_counter){ |
shekhar | 8:d1951bbdcdd8 | 67 | // Adf_data_counter++; |
shekhar | 8:d1951bbdcdd8 | 68 | // stop_transmission= true; |
shekhar | 8:d1951bbdcdd8 | 69 | // break; |
shekhar | 8:d1951bbdcdd8 | 70 | // } |
shekhar | 8:d1951bbdcdd8 | 71 | // } |
shekhar | 8:d1951bbdcdd8 | 72 | //} |
shekhar | 8:d1951bbdcdd8 | 73 | |
shreeshas95 | 1:a0055b3280c8 | 74 | #define bbram_write {\ |
shreeshas95 | 1:a0055b3280c8 | 75 | gCS_ADF=0;\ |
shreeshas95 | 1:a0055b3280c8 | 76 | spi.write(0xB0);\ |
shreeshas95 | 1:a0055b3280c8 | 77 | wait_us(300);\ |
shreeshas95 | 1:a0055b3280c8 | 78 | gCS_ADF=1;\ |
shreeshas95 | 1:a0055b3280c8 | 79 | gCS_ADF=0;\ |
shreeshas95 | 1:a0055b3280c8 | 80 | for(int i=0;i<66;i++){\ |
shreeshas95 | 1:a0055b3280c8 | 81 | spi.write(bbram_buffer[i]);\ |
shreeshas95 | 1:a0055b3280c8 | 82 | }\ |
shreeshas95 | 1:a0055b3280c8 | 83 | gCS_ADF=1;\ |
shreeshas95 | 1:a0055b3280c8 | 84 | } |
shreeshas95 | 1:a0055b3280c8 | 85 | //------------------------------------------------------------------------ |
shreeshas95 | 1:a0055b3280c8 | 86 | // state checking functions |
shreeshas95 | 1:a0055b3280c8 | 87 | //bool assrt_phy_off( int, int, int); |
shreeshas95 | 1:a0055b3280c8 | 88 | //bool assrt_phy_on( int,int,int); |
shreeshas95 | 1:a0055b3280c8 | 89 | //bool assrt_phy_tx(int,int,int); |
shreeshas95 | 1:a0055b3280c8 | 90 | |
shreeshas95 | 1:a0055b3280c8 | 91 | #define START_ADDRESS 0x020; |
shreeshas95 | 1:a0055b3280c8 | 92 | #define MISO_PIN PTE3 |
shreeshas95 | 1:a0055b3280c8 | 93 | /**************Defining Counter Limits**************/ |
shreeshas95 | 1:a0055b3280c8 | 94 | #define THRS 20 |
shreeshas95 | 1:a0055b3280c8 | 95 | #define STATE_ERR_THRS 20 |
shreeshas95 | 1:a0055b3280c8 | 96 | #define PHY_OFF_EXEC_TIME 300 |
shreeshas95 | 1:a0055b3280c8 | 97 | #define PHY_ON_EXEC_TIME 300 |
shreeshas95 | 1:a0055b3280c8 | 98 | #define PHY_TX_EXEC_TIME 600 |
shreeshas95 | 1:a0055b3280c8 | 99 | /******DEFINING COMMANDS*********/ |
shreeshas95 | 1:a0055b3280c8 | 100 | #define CMD_HW_RESET 0xC8 |
shreeshas95 | 1:a0055b3280c8 | 101 | #define CMD_PHY_ON 0xB1 |
shreeshas95 | 1:a0055b3280c8 | 102 | #define CMD_PHY_OFF 0xB0 |
shreeshas95 | 1:a0055b3280c8 | 103 | #define CMD_PHY_TX 0xB5 |
shreeshas95 | 1:a0055b3280c8 | 104 | #define CMD_CONFIG_DEV 0xBB |
shreeshas95 | 1:a0055b3280c8 | 105 | |
shreeshas95 | 1:a0055b3280c8 | 106 | #define check_status {\ |
shreeshas95 | 1:a0055b3280c8 | 107 | unsigned char stat=0;\ |
shreeshas95 | 1:a0055b3280c8 | 108 | gCS_ADF=0;\ |
shreeshas95 | 1:a0055b3280c8 | 109 | spi.write(0xFF);\ |
shreeshas95 | 1:a0055b3280c8 | 110 | stat = spi.write(0xFF);\ |
shreeshas95 | 1:a0055b3280c8 | 111 | gCS_ADF=1;\ |
shreeshas95 | 1:a0055b3280c8 | 112 | status = stat;\ |
shreeshas95 | 1:a0055b3280c8 | 113 | } |
shreeshas95 | 1:a0055b3280c8 | 114 | |
shreeshas95 | 1:a0055b3280c8 | 115 | // all three arguments are int |
shreeshas95 | 1:a0055b3280c8 | 116 | #define assrt_phy_off(return_this) {\ |
shreeshas95 | 1:a0055b3280c8 | 117 | int cmd_err_cnt = 0;\ |
shreeshas95 | 1:a0055b3280c8 | 118 | int spi_err_cnt = 0;\ |
shreeshas95 | 1:a0055b3280c8 | 119 | int state_err_cnt = 0;\ |
shreeshas95 | 1:a0055b3280c8 | 120 | for(int i = 0 ; i < 40 ;i++){\ |
shreeshas95 | 1:a0055b3280c8 | 121 | check_status;\ |
shreeshas95 | 1:a0055b3280c8 | 122 | if(status == 0xB1){\ |
shreeshas95 | 1:a0055b3280c8 | 123 | return_this = 0;\ |
shreeshas95 | 1:a0055b3280c8 | 124 | break;\ |
shreeshas95 | 1:a0055b3280c8 | 125 | }\ |
shreeshas95 | 1:a0055b3280c8 | 126 | else if(cmd_err_cnt>THRS||spi_err_cnt>THRS){\ |
shreeshas95 | 1:a0055b3280c8 | 127 | return_this = 1;\ |
shreeshas95 | 1:a0055b3280c8 | 128 | break;\ |
shreeshas95 | 1:a0055b3280c8 | 129 | }\ |
shreeshas95 | 1:a0055b3280c8 | 130 | else if(state_err_cnt>STATE_ERR_THRS){\ |
shreeshas95 | 1:a0055b3280c8 | 131 | return_this = 1;\ |
shreeshas95 | 1:a0055b3280c8 | 132 | break;\ |
shreeshas95 | 1:a0055b3280c8 | 133 | }\ |
shreeshas95 | 1:a0055b3280c8 | 134 | else if( (status & 0xA0) == 0xA0 ){\ |
shreeshas95 | 1:a0055b3280c8 | 135 | gCS_ADF=0;\ |
shreeshas95 | 1:a0055b3280c8 | 136 | spi.write(CMD_PHY_OFF);\ |
shreeshas95 | 1:a0055b3280c8 | 137 | gCS_ADF=1;\ |
shreeshas95 | 1:a0055b3280c8 | 138 | wait_us(PHY_OFF_EXEC_TIME);\ |
shreeshas95 | 1:a0055b3280c8 | 139 | state_err_cnt++;\ |
shreeshas95 | 1:a0055b3280c8 | 140 | }\ |
shreeshas95 | 1:a0055b3280c8 | 141 | else if(status&0x80==0x00){\ |
shreeshas95 | 1:a0055b3280c8 | 142 | wait_ms(5);\ |
shreeshas95 | 1:a0055b3280c8 | 143 | spi_err_cnt++;\ |
shreeshas95 | 1:a0055b3280c8 | 144 | }\ |
shreeshas95 | 1:a0055b3280c8 | 145 | else {\ |
shreeshas95 | 1:a0055b3280c8 | 146 | wait_ms(1);\ |
shreeshas95 | 1:a0055b3280c8 | 147 | cmd_err_cnt++;\ |
shreeshas95 | 1:a0055b3280c8 | 148 | }\ |
shreeshas95 | 1:a0055b3280c8 | 149 | }\ |
shreeshas95 | 1:a0055b3280c8 | 150 | } |
shreeshas95 | 1:a0055b3280c8 | 151 | |
shreeshas95 | 1:a0055b3280c8 | 152 | |
shreeshas95 | 1:a0055b3280c8 | 153 | |
shreeshas95 | 1:a0055b3280c8 | 154 | |
shreeshas95 | 1:a0055b3280c8 | 155 | #define initial_adf_check {\ |
shreeshas95 | 1:a0055b3280c8 | 156 | bbram_flag=1;\ |
shreeshas95 | 1:a0055b3280c8 | 157 | } |
shreeshas95 | 1:a0055b3280c8 | 158 | |
shreeshas95 | 1:a0055b3280c8 | 159 | //bool hardware_reset(int bcn_call){ |
shekhar | 8:d1951bbdcdd8 | 160 | // for(int i= 0; i < 20 ; i++){ |
shekhar | 8:d1951bbdcdd8 | 161 | // gCS_ADF=0; |
shekhar | 8:d1951bbdcdd8 | 162 | // spi.write(CMD_HW_RESET); |
shekhar | 8:d1951bbdcdd8 | 163 | // gCS_ADF=1; |
shekhar | 8:d1951bbdcdd8 | 164 | // wait_ms(2);// Typically 1 ms |
shekhar | 8:d1951bbdcdd8 | 165 | // int count=0; |
shekhar | 8:d1951bbdcdd8 | 166 | // int temp_return = 0; |
shekhar | 8:d1951bbdcdd8 | 167 | // while(count<10 && miso_err_cnt<10){ |
shekhar | 8:d1951bbdcdd8 | 168 | // if(MISO_PIN){ |
shekhar | 8:d1951bbdcdd8 | 169 | // assrt_phy_off(temp_return); |
shekhar | 8:d1951bbdcdd8 | 170 | // if(!temp_return){ |
shekhar | 8:d1951bbdcdd8 | 171 | // return 0; |
shekhar | 8:d1951bbdcdd8 | 172 | // } |
shekhar | 8:d1951bbdcdd8 | 173 | // count++; |
shreeshas95 | 1:a0055b3280c8 | 174 | // } |
shreeshas95 | 1:a0055b3280c8 | 175 | // else{ |
shekhar | 8:d1951bbdcdd8 | 176 | // wait_us(50); |
shekhar | 8:d1951bbdcdd8 | 177 | // miso_err_cnt++; |
shreeshas95 | 1:a0055b3280c8 | 178 | // } |
shreeshas95 | 1:a0055b3280c8 | 179 | // } |
shekhar | 8:d1951bbdcdd8 | 180 | // } |
shekhar | 8:d1951bbdcdd8 | 181 | // return 1; |
shreeshas95 | 1:a0055b3280c8 | 182 | //} |
shekhar | 8:d1951bbdcdd8 | 183 | //for reseting the transmission call assert function after b5 and b1. after b1 assert_phi_on and after b5 assert_phi_tx. |
shreeshas95 | 1:a0055b3280c8 | 184 | //---------------------------------------------------------------------------- |
shekhar | 8:d1951bbdcdd8 | 185 | // |
shekhar | 8:d1951bbdcdd8 | 186 | //# define initiate {\ |
shekhar | 8:d1951bbdcdd8 | 187 | // gCS_ADF=0;\ |
shekhar | 8:d1951bbdcdd8 | 188 | // spi.write(0xFF);\ |
shekhar | 8:d1951bbdcdd8 | 189 | // spi.write(0xFF);\ |
shekhar | 8:d1951bbdcdd8 | 190 | // gCS_ADF=1;\ |
shekhar | 8:d1951bbdcdd8 | 191 | // gCS_ADF=0;\ |
shekhar | 8:d1951bbdcdd8 | 192 | // spi.write(0x08);\ |
shekhar | 8:d1951bbdcdd8 | 193 | // spi.write(0x14);\ |
shekhar | 8:d1951bbdcdd8 | 194 | // spi.write(0xFF);\ |
shekhar | 8:d1951bbdcdd8 | 195 | // gCS_ADF=1;\ |
shekhar | 8:d1951bbdcdd8 | 196 | // gCS_ADF=0;\ |
shekhar | 8:d1951bbdcdd8 | 197 | // spi.write(0x08);\ |
shekhar | 8:d1951bbdcdd8 | 198 | // spi.write(0x15);\ |
shekhar | 8:d1951bbdcdd8 | 199 | // spi.write(0xFF);\ |
shekhar | 8:d1951bbdcdd8 | 200 | // gCS_ADF=1;\ |
shekhar | 8:d1951bbdcdd8 | 201 | // gCS_ADF=0;\ |
shekhar | 8:d1951bbdcdd8 | 202 | // spi.write(0x09);\ |
shekhar | 8:d1951bbdcdd8 | 203 | // spi.write(0x24);\ |
shekhar | 8:d1951bbdcdd8 | 204 | // spi.write(0x20);\ |
shekhar | 8:d1951bbdcdd8 | 205 | // gCS_ADF=1;\ |
shekhar | 8:d1951bbdcdd8 | 206 | // gCS_ADF=0;\ |
shekhar | 8:d1951bbdcdd8 | 207 | // spi.write(0x09);\ |
shekhar | 8:d1951bbdcdd8 | 208 | // spi.write(0x37);\ |
shekhar | 8:d1951bbdcdd8 | 209 | // spi.write(0xE0);\ |
shekhar | 8:d1951bbdcdd8 | 210 | // gCS_ADF=1;\ |
shekhar | 8:d1951bbdcdd8 | 211 | // gCS_ADF=0;\ |
shekhar | 8:d1951bbdcdd8 | 212 | // spi.write(0x09);\ |
shekhar | 8:d1951bbdcdd8 | 213 | // spi.write(0x36);\ |
shekhar | 8:d1951bbdcdd8 | 214 | // spi.write(0x70);\ |
shekhar | 8:d1951bbdcdd8 | 215 | // gCS_ADF=1;\ |
shekhar | 8:d1951bbdcdd8 | 216 | // gCS_ADF=0;\ |
shekhar | 8:d1951bbdcdd8 | 217 | // spi.write(0x09);\ |
shekhar | 8:d1951bbdcdd8 | 218 | // spi.write(0x39);\ |
shekhar | 8:d1951bbdcdd8 | 219 | // spi.write(0x10);\ |
shekhar | 8:d1951bbdcdd8 | 220 | // gCS_ADF=1;\ |
shekhar | 8:d1951bbdcdd8 | 221 | //} |
shreeshas95 | 1:a0055b3280c8 | 222 | |
shreeshas95 | 1:a0055b3280c8 | 223 | |
shreeshas95 | 1:a0055b3280c8 | 224 | #define write_data {\ |
shreeshas95 | 1:a0055b3280c8 | 225 | if(buffer_state){\ |
shreeshas95 | 1:a0055b3280c8 | 226 | for(unsigned char i=0; i<112;i++){\ |
shekhar | 8:d1951bbdcdd8 | 227 | fprintf(fp,"0x%02X,",buffer_112[i]);\ |
shekhar | 8:d1951bbdcdd8 | 228 | }\ |
shekhar | 8:d1951bbdcdd8 | 229 | }\ |
shekhar | 8:d1951bbdcdd8 | 230 | else\ |
shekhar | 8:d1951bbdcdd8 | 231 | {\ |
shekhar | 8:d1951bbdcdd8 | 232 | for(unsigned char i=0; i<112;i++){\ |
shekhar | 8:d1951bbdcdd8 | 233 | fprintf(fp,"0x%02X,",buffer_112[i]);\ |
shreeshas95 | 1:a0055b3280c8 | 234 | }\ |
shreeshas95 | 1:a0055b3280c8 | 235 | }\ |
shreeshas95 | 1:a0055b3280c8 | 236 | buffer_state = !buffer_state;\ |
shreeshas95 | 1:a0055b3280c8 | 237 | } |
shekhar | 8:d1951bbdcdd8 | 238 | //void send_tm_from_SD_card(){ |
shekhar | 8:d1951bbdcdd8 | 239 | // } |
shekhar | 8:d1951bbdcdd8 | 240 | // |
shekhar | 8:d1951bbdcdd8 | 241 | //void check(){ |
shekhar | 8:d1951bbdcdd8 | 242 | // if(IRQ){ |
shekhar | 8:d1951bbdcdd8 | 243 | // if(!ADF_off){ |
shekhar | 8:d1951bbdcdd8 | 244 | // snd_tm.transmit_data(buffer_112,&last_buffer); |
shekhar | 8:d1951bbdcdd8 | 245 | // write_data; |
shekhar | 8:d1951bbdcdd8 | 246 | // } |
shekhar | 8:d1951bbdcdd8 | 247 | // else{ |
shekhar | 8:d1951bbdcdd8 | 248 | // ticker.detach(); |
shekhar | 8:d1951bbdcdd8 | 249 | // gCS_ADF=0; |
shekhar | 8:d1951bbdcdd8 | 250 | // spi.write(0xB1); |
shekhar | 8:d1951bbdcdd8 | 251 | // gCS_ADF=1; |
shekhar | 8:d1951bbdcdd8 | 252 | // gPC.puts("transmission done\r\n"); |
shekhar | 8:d1951bbdcdd8 | 253 | // loop_on=false; |
shekhar | 8:d1951bbdcdd8 | 254 | // } |
shekhar | 8:d1951bbdcdd8 | 255 | // } |
shekhar | 8:d1951bbdcdd8 | 256 | //} |
shekhar | 8:d1951bbdcdd8 | 257 | // |
shekhar | 8:d1951bbdcdd8 | 258 | //#define send_data {\ |
shekhar | 8:d1951bbdcdd8 | 259 | // gCS_ADF=0;\ |
shekhar | 8:d1951bbdcdd8 | 260 | // spi.write(0xBB);\ |
shekhar | 8:d1951bbdcdd8 | 261 | // gCS_ADF=1;\ |
shekhar | 8:d1951bbdcdd8 | 262 | // gCS_ADF=0;\ |
shekhar | 8:d1951bbdcdd8 | 263 | // spi.write(0xFF);\ |
shekhar | 8:d1951bbdcdd8 | 264 | // spi.write(0xFF);\ |
shekhar | 8:d1951bbdcdd8 | 265 | // gCS_ADF=1;\ |
shekhar | 8:d1951bbdcdd8 | 266 | // if(sent_tmfrom_SDcard){\ |
shekhar | 8:d1951bbdcdd8 | 267 | // send_tm_from_SD_card();\ |
shekhar | 8:d1951bbdcdd8 | 268 | // }else{\ |
shekhar | 8:d1951bbdcdd8 | 269 | // transmitdata();\ |
shekhar | 8:d1951bbdcdd8 | 270 | // }\ |
shekhar | 8:d1951bbdcdd8 | 271 | // write_data;\ |
shekhar | 8:d1951bbdcdd8 | 272 | // if(sent_tmfrom_SDcard){\ |
shekhar | 8:d1951bbdcdd8 | 273 | // send_tm_from_SD_card();\ |
shekhar | 8:d1951bbdcdd8 | 274 | // }else{\ |
shekhar | 8:d1951bbdcdd8 | 275 | // transmitdata();\ |
shekhar | 8:d1951bbdcdd8 | 276 | // }\ |
shekhar | 8:d1951bbdcdd8 | 277 | // write_data;\ |
shekhar | 8:d1951bbdcdd8 | 278 | // if(sent_tmfrom_SDcard){\ |
shekhar | 8:d1951bbdcdd8 | 279 | // send_tm_from_SD_card();\ |
shekhar | 8:d1951bbdcdd8 | 280 | // }else{\ |
shekhar | 8:d1951bbdcdd8 | 281 | // transmitdata();\ |
shekhar | 8:d1951bbdcdd8 | 282 | // }\ |
shekhar | 8:d1951bbdcdd8 | 283 | // gCS_ADF=0;\ |
shekhar | 8:d1951bbdcdd8 | 284 | // spi.write(0xB1);\ |
shekhar | 8:d1951bbdcdd8 | 285 | // gCS_ADF=1;\ |
shekhar | 8:d1951bbdcdd8 | 286 | // wait_us(300);\ |
shekhar | 8:d1951bbdcdd8 | 287 | // gCS_ADF=0;\ |
shekhar | 8:d1951bbdcdd8 | 288 | // spi.write(0xFF);\ |
shekhar | 8:d1951bbdcdd8 | 289 | // spi.write(0xFF);\ |
shekhar | 8:d1951bbdcdd8 | 290 | // gCS_ADF=1;\ |
shekhar | 8:d1951bbdcdd8 | 291 | // gCS_ADF=0;\ |
shekhar | 8:d1951bbdcdd8 | 292 | // spi.write(0xB5);\ |
shekhar | 8:d1951bbdcdd8 | 293 | // gCS_ADF=1;\ |
shekhar | 8:d1951bbdcdd8 | 294 | // wait_us(300);\ |
shekhar | 8:d1951bbdcdd8 | 295 | // gCS_ADF=0;\ |
shekhar | 8:d1951bbdcdd8 | 296 | // spi.write(0xFF);\ |
shekhar | 8:d1951bbdcdd8 | 297 | // spi.write(0xFF);\ |
shekhar | 8:d1951bbdcdd8 | 298 | // gCS_ADF=1;\ |
shekhar | 8:d1951bbdcdd8 | 299 | // ticker.attach_us(&check,32000);\ |
shekhar | 8:d1951bbdcdd8 | 300 | //} |
shreeshas95 | 1:a0055b3280c8 | 301 | |
shreeshas95 | 1:a0055b3280c8 | 302 | #define send_data {\ |
shreeshas95 | 1:a0055b3280c8 | 303 | snd_tm.transmit_data(buffer_112,&last_buffer);\ |
shreeshas95 | 1:a0055b3280c8 | 304 | write_data;\ |
shreeshas95 | 1:a0055b3280c8 | 305 | snd_tm.transmit_data(buffer_112,&last_buffer);\ |
shekhar | 8:d1951bbdcdd8 | 306 | write_data;\ |
shekhar | 8:d1951bbdcdd8 | 307 | while(loop_on)\ |
shekhar | 8:d1951bbdcdd8 | 308 | {\ |
shekhar | 8:d1951bbdcdd8 | 309 | if(!last_buffer && !snd_tm.reset_adf){\ |
shekhar | 8:d1951bbdcdd8 | 310 | snd_tm.transmit_data(buffer_112,&last_buffer);\ |
shekhar | 8:d1951bbdcdd8 | 311 | write_data;\ |
shekhar | 8:d1951bbdcdd8 | 312 | }else if(snd_tm.reset_adf && !last_buffer){\ |
shekhar | 8:d1951bbdcdd8 | 313 | restart_adf;snd_tm.reset_adf=false;\ |
shekhar | 8:d1951bbdcdd8 | 314 | }\ |
shekhar | 8:d1951bbdcdd8 | 315 | else if(last_buffer){\ |
shekhar | 8:d1951bbdcdd8 | 316 | loop_on=false;\ |
shekhar | 8:d1951bbdcdd8 | 317 | }\ |
shreeshas95 | 1:a0055b3280c8 | 318 | }\ |
shreeshas95 | 1:a0055b3280c8 | 319 | } |
shekhar | 8:d1951bbdcdd8 | 320 | #define restart_adf |
shreeshas95 | 1:a0055b3280c8 | 321 | void adf_not_SDcard(){ |
shreeshas95 | 1:a0055b3280c8 | 322 | buffer_state = true; |
shreeshas95 | 1:a0055b3280c8 | 323 | last_buffer = false; |
shreeshas95 | 1:a0055b3280c8 | 324 | loop_on = true; |
shreeshas95 | 1:a0055b3280c8 | 325 | ADF_off = false; |
shreeshas95 | 1:a0055b3280c8 | 326 | sent_tmfrom_SDcard = false; |
shekhar | 8:d1951bbdcdd8 | 327 | |
shekhar | 8:d1951bbdcdd8 | 328 | // signal = COM_MNG_TMTC_SIGNAL_ADF_NSD; |
shekhar | 8:d1951bbdcdd8 | 329 | // initial_adf_check; |
shekhar | 8:d1951bbdcdd8 | 330 | // initiate; |
shreeshas95 | 1:a0055b3280c8 | 331 | send_data; |
shreeshas95 | 2:2caf2a9a13aa | 332 | // gPC.puts("Inside adf transmission\r\n"); |
shreeshas95 | 2:2caf2a9a13aa | 333 | // ADF_non_responsive_timeout.attach(&ADF_non_responsive_fun, 10); |
shreeshas95 | 1:a0055b3280c8 | 334 | |
shreeshas95 | 1:a0055b3280c8 | 335 | } |