Dummy program to demonstrate problems: working code

Dependencies:   SLCD mbed-rtos mbed

Fork of MNG_TC by Shreesha S

Committer:
shreeshas95
Date:
Thu Sep 17 14:15:00 2015 +0000
Revision:
17:2b04e53f3b1d
Parent:
14:a4c259ca0325
DUMMP program to demonstrate the problems : working

Who changed what in which revision?

UserRevisionLine numberNew contents of line
shreeshas95 13:7b27a8e9cbb4 1 DigitalOut cs_adf(D10);
shreeshas95 13:7b27a8e9cbb4 2 DigitalOut led2(LED_RED);
shreeshas95 13:7b27a8e9cbb4 3 InterruptIn IRQ(D8);
shreeshas95 13:7b27a8e9cbb4 4 Ticker ticker;
shreeshas95 13:7b27a8e9cbb4 5 unsigned char buffer_half=1;
shreeshas95 13:7b27a8e9cbb4 6 unsigned char buffer_counter = 0;
shreeshas95 13:7b27a8e9cbb4 7 bool transmission_done = false;
shreeshas95 13:7b27a8e9cbb4 8 bool sent_tmfrom_SDcard;
shreeshas95 13:7b27a8e9cbb4 9 unsigned char 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};
shreeshas95 14:a4c259ca0325 10 //void inline bbram_write(){
shreeshas95 14:a4c259ca0325 11 // SPI_mutex.lock();
shreeshas95 14:a4c259ca0325 12 // cs_adf=0;
shreeshas95 14:a4c259ca0325 13 // spi.write(0xB0);//PHY_OFF
shreeshas95 14:a4c259ca0325 14 // wait_us(300);
shreeshas95 14:a4c259ca0325 15 // cs_adf=1;
shreeshas95 14:a4c259ca0325 16 // SPI_mutex.unlock();
shreeshas95 14:a4c259ca0325 17 //
shreeshas95 14:a4c259ca0325 18 // SPI_mutex.lock();
shreeshas95 14:a4c259ca0325 19 // // Write bbram
shreeshas95 14:a4c259ca0325 20 // cs_adf=0;
shreeshas95 14:a4c259ca0325 21 // for(int i=0;i<66;i++){
shreeshas95 14:a4c259ca0325 22 // spi.write(bbram_buffer[i]);
shreeshas95 14:a4c259ca0325 23 // }
shreeshas95 14:a4c259ca0325 24 // cs_adf=1;
shreeshas95 14:a4c259ca0325 25 // SPI_mutex.unlock();
shreeshas95 14:a4c259ca0325 26 //}
shreeshas95 13:7b27a8e9cbb4 27
shreeshas95 13:7b27a8e9cbb4 28
shreeshas95 13:7b27a8e9cbb4 29 /******************************************************************************************/
shreeshas95 13:7b27a8e9cbb4 30
shreeshas95 14:a4c259ca0325 31 //void initiate(void){
shreeshas95 14:a4c259ca0325 32 // SPI_mutex.lock();
shreeshas95 14:a4c259ca0325 33 // cs_adf=0;
shreeshas95 14:a4c259ca0325 34 // spi.write(0xFF);
shreeshas95 14:a4c259ca0325 35 // spi.write(0xFF);
shreeshas95 14:a4c259ca0325 36 // cs_adf=1;
shreeshas95 14:a4c259ca0325 37 //// wait_ms(2);
shreeshas95 14:a4c259ca0325 38 //
shreeshas95 14:a4c259ca0325 39 // cs_adf=0;
shreeshas95 14:a4c259ca0325 40 // spi.write(0x08); // TRANSMIT_DATA LENGTH
shreeshas95 14:a4c259ca0325 41 // spi.write(0x14);
shreeshas95 14:a4c259ca0325 42 // spi.write(0xFF);
shreeshas95 14:a4c259ca0325 43 // cs_adf=1;
shreeshas95 14:a4c259ca0325 44 //// wait_ms(2);
shreeshas95 14:a4c259ca0325 45 // cs_adf=0;
shreeshas95 14:a4c259ca0325 46 // spi.write(0x08); // TRANSMIT_DATA LENGTH
shreeshas95 14:a4c259ca0325 47 // spi.write(0x15);
shreeshas95 14:a4c259ca0325 48 // spi.write(0xFF);
shreeshas95 14:a4c259ca0325 49 // cs_adf=1;
shreeshas95 14:a4c259ca0325 50 //// wait_ms(2);
shreeshas95 14:a4c259ca0325 51 //
shreeshas95 14:a4c259ca0325 52 // cs_adf=0;
shreeshas95 14:a4c259ca0325 53 // spi.write(0x09);
shreeshas95 14:a4c259ca0325 54 // spi.write(0x24); // TX_BASE ADDRESS 0x20(starting Tx Byte)
shreeshas95 14:a4c259ca0325 55 // spi.write(0x20);
shreeshas95 14:a4c259ca0325 56 // cs_adf=1;
shreeshas95 14:a4c259ca0325 57 //// wait_ms(2);
shreeshas95 14:a4c259ca0325 58 //
shreeshas95 14:a4c259ca0325 59 // cs_adf=0;
shreeshas95 14:a4c259ca0325 60 // spi.write(0x09);
shreeshas95 14:a4c259ca0325 61 // spi.write(0x37);// BUFFER SIZE 0xE0=224 Bytes 0x137 is adress of buffer size
shreeshas95 14:a4c259ca0325 62 // spi.write(0xE0);
shreeshas95 14:a4c259ca0325 63 // cs_adf=1;
shreeshas95 14:a4c259ca0325 64 //// wait_ms(2);
shreeshas95 14:a4c259ca0325 65 //
shreeshas95 14:a4c259ca0325 66 // cs_adf=0;
shreeshas95 14:a4c259ca0325 67 // spi.write(0x09);
shreeshas95 14:a4c259ca0325 68 // spi.write(0x36);//BB_Tx_Buffer Signal when Buffer is half filled
shreeshas95 14:a4c259ca0325 69 // spi.write(0x70);//0x70 = 112 >> When Half buffer interrupt is given
shreeshas95 14:a4c259ca0325 70 // cs_adf=1;
shreeshas95 14:a4c259ca0325 71 //// wait_ms(2);
shreeshas95 14:a4c259ca0325 72 //
shreeshas95 14:a4c259ca0325 73 //
shreeshas95 14:a4c259ca0325 74 // cs_adf=0;
shreeshas95 14:a4c259ca0325 75 // spi.write(0x09);
shreeshas95 14:a4c259ca0325 76 // spi.write(0x39);//BB_Tx_Buffer Signal when Buffer is half filled
shreeshas95 14:a4c259ca0325 77 // spi.write(0x10);//0x70 = 112 >> When Half buffer interrupt is given
shreeshas95 14:a4c259ca0325 78 // cs_adf=1;
shreeshas95 14:a4c259ca0325 79 //// wait_ms(2);
shreeshas95 14:a4c259ca0325 80 // SPI_mutex.unlock();
shreeshas95 14:a4c259ca0325 81 // }
shreeshas95 14:a4c259ca0325 82 //
shreeshas95 14:a4c259ca0325 83 //
shreeshas95 13:7b27a8e9cbb4 84
shreeshas95 13:7b27a8e9cbb4 85 void write_data(void){
shreeshas95 13:7b27a8e9cbb4 86
shreeshas95 13:7b27a8e9cbb4 87 cs_adf=0;
shreeshas95 13:7b27a8e9cbb4 88 spi.write(0x0B);//IRQ_SOURCE_Random write //To read CMD = 2B 36 FF FF
shreeshas95 13:7b27a8e9cbb4 89 spi.write(0x36);//Address : 0x336
shreeshas95 13:7b27a8e9cbb4 90 spi.write(0xFF);//Put Low
shreeshas95 13:7b27a8e9cbb4 91 cs_adf=1;
shreeshas95 13:7b27a8e9cbb4 92
shreeshas95 13:7b27a8e9cbb4 93 cs_adf=0;
shreeshas95 13:7b27a8e9cbb4 94 static bool first_2_time = true;
shreeshas95 13:7b27a8e9cbb4 95 buffer_counter=0;
shreeshas95 13:7b27a8e9cbb4 96
shreeshas95 13:7b27a8e9cbb4 97 if(first_2_time==false && last_buffer==false){
shreeshas95 13:7b27a8e9cbb4 98
shreeshas95 13:7b27a8e9cbb4 99 spi.write(0x18);
shreeshas95 13:7b27a8e9cbb4 100 if(buffer_half==1){
shreeshas95 13:7b27a8e9cbb4 101 spi.write(0x20);
shreeshas95 13:7b27a8e9cbb4 102 buffer_half = 2;
shreeshas95 13:7b27a8e9cbb4 103 }
shreeshas95 13:7b27a8e9cbb4 104 else if(buffer_half==2){
shreeshas95 13:7b27a8e9cbb4 105 spi.write(0x90);
shreeshas95 13:7b27a8e9cbb4 106 buffer_half = 1;
shreeshas95 13:7b27a8e9cbb4 107 }
shreeshas95 13:7b27a8e9cbb4 108
shreeshas95 13:7b27a8e9cbb4 109 buffer_counter = 0;
shreeshas95 13:7b27a8e9cbb4 110 while(buffer_counter<112){
shreeshas95 13:7b27a8e9cbb4 111 spi.write(buffer_112[buffer_counter]);
shreeshas95 13:7b27a8e9cbb4 112 buffer_counter++;
shreeshas95 13:7b27a8e9cbb4 113 }
shreeshas95 13:7b27a8e9cbb4 114
shreeshas95 13:7b27a8e9cbb4 115 }
shreeshas95 13:7b27a8e9cbb4 116
shreeshas95 13:7b27a8e9cbb4 117 if(first_2_time == true && last_buffer==false){
shreeshas95 13:7b27a8e9cbb4 118
shreeshas95 13:7b27a8e9cbb4 119 spi.write(0x18);
shreeshas95 13:7b27a8e9cbb4 120 if(buffer_half==1){
shreeshas95 13:7b27a8e9cbb4 121 spi.write(0x20);
shreeshas95 13:7b27a8e9cbb4 122 buffer_half=2;
shreeshas95 13:7b27a8e9cbb4 123 }
shreeshas95 13:7b27a8e9cbb4 124 else{
shreeshas95 13:7b27a8e9cbb4 125 spi.write(0x90);
shreeshas95 13:7b27a8e9cbb4 126 buffer_half=1;
shreeshas95 13:7b27a8e9cbb4 127 first_2_time = false;
shreeshas95 13:7b27a8e9cbb4 128 }
shreeshas95 13:7b27a8e9cbb4 129
shreeshas95 13:7b27a8e9cbb4 130 while(buffer_counter<112){
shreeshas95 13:7b27a8e9cbb4 131 spi.write(buffer_112[buffer_counter]);
shreeshas95 13:7b27a8e9cbb4 132 buffer_counter++;
shreeshas95 13:7b27a8e9cbb4 133 }
shreeshas95 13:7b27a8e9cbb4 134
shreeshas95 13:7b27a8e9cbb4 135 }
shreeshas95 13:7b27a8e9cbb4 136
shreeshas95 13:7b27a8e9cbb4 137 if(last_buffer){
shreeshas95 13:7b27a8e9cbb4 138 cs_adf=0;
shreeshas95 13:7b27a8e9cbb4 139 spi.write(0x18);
shreeshas95 13:7b27a8e9cbb4 140 spi.write(0x20);
shreeshas95 13:7b27a8e9cbb4 141
shreeshas95 13:7b27a8e9cbb4 142 while(buffer_counter<112){
shreeshas95 13:7b27a8e9cbb4 143 spi.write(buffer_112[buffer_counter]);
shreeshas95 13:7b27a8e9cbb4 144 buffer_counter++;
shreeshas95 13:7b27a8e9cbb4 145 }
shreeshas95 13:7b27a8e9cbb4 146 cs_adf=1;
shreeshas95 13:7b27a8e9cbb4 147
shreeshas95 13:7b27a8e9cbb4 148 ticker.detach();
shreeshas95 13:7b27a8e9cbb4 149 cs_adf=0;
shreeshas95 13:7b27a8e9cbb4 150 spi.write(0xB1);
shreeshas95 13:7b27a8e9cbb4 151 cs_adf=1;
shreeshas95 13:7b27a8e9cbb4 152 transmission_done=true;
shreeshas95 13:7b27a8e9cbb4 153 }
shreeshas95 13:7b27a8e9cbb4 154
shreeshas95 13:7b27a8e9cbb4 155 cs_adf=1;
shreeshas95 13:7b27a8e9cbb4 156 }
shreeshas95 13:7b27a8e9cbb4 157
shreeshas95 13:7b27a8e9cbb4 158
shreeshas95 13:7b27a8e9cbb4 159 void check(){
shreeshas95 13:7b27a8e9cbb4 160
shreeshas95 13:7b27a8e9cbb4 161 if(IRQ){
shreeshas95 13:7b27a8e9cbb4 162 VAR_SPACE::mng_tmtc_thread->signal_set(0x02);
shreeshas95 13:7b27a8e9cbb4 163 }
shreeshas95 13:7b27a8e9cbb4 164 }
shreeshas95 13:7b27a8e9cbb4 165
shreeshas95 14:a4c259ca0325 166 //
shreeshas95 14:a4c259ca0325 167 //void send_data(void){
shreeshas95 14:a4c259ca0325 168 // SPI_mutex.lock();
shreeshas95 14:a4c259ca0325 169 // cs_adf=0;
shreeshas95 14:a4c259ca0325 170 // spi.write(0xBB);
shreeshas95 14:a4c259ca0325 171 // cs_adf=1;
shreeshas95 14:a4c259ca0325 172 //// wait_us(300);
shreeshas95 14:a4c259ca0325 173 //
shreeshas95 14:a4c259ca0325 174 // cs_adf=0;
shreeshas95 14:a4c259ca0325 175 // spi.write(0xFF);
shreeshas95 14:a4c259ca0325 176 // spi.write(0xFF);
shreeshas95 14:a4c259ca0325 177 // cs_adf=1;
shreeshas95 14:a4c259ca0325 178 // SPI_mutex.unlock();
shreeshas95 14:a4c259ca0325 179 //// wait_ms(2);
shreeshas95 14:a4c259ca0325 180 // if(sent_tmfrom_SDcard){
shreeshas95 14:a4c259ca0325 181 // printf("inside if\r\n");
shreeshas95 14:a4c259ca0325 182 // send_tm_from_SD_card();
shreeshas95 14:a4c259ca0325 183 // }
shreeshas95 14:a4c259ca0325 184 // else{
shreeshas95 14:a4c259ca0325 185 // printf("inside else\r\n");
shreeshas95 14:a4c259ca0325 186 // snd_tm.transmit_data(buffer_112,&last_buffer);
shreeshas95 14:a4c259ca0325 187 // }
shreeshas95 14:a4c259ca0325 188 //// SPI_mutex.lock();
shreeshas95 14:a4c259ca0325 189 //// write_data();
shreeshas95 14:a4c259ca0325 190 //// SPI_mutex.unlock();
shreeshas95 14:a4c259ca0325 191 //// if(sent_tmfrom_SDcard)
shreeshas95 14:a4c259ca0325 192 //// {
shreeshas95 14:a4c259ca0325 193 //// send_tm_from_SD_card();
shreeshas95 14:a4c259ca0325 194 //// }
shreeshas95 14:a4c259ca0325 195 //// else
shreeshas95 14:a4c259ca0325 196 //// {
shreeshas95 14:a4c259ca0325 197 //// snd_tm.transmit_data(buffer_112,&last_buffer);
shreeshas95 14:a4c259ca0325 198 //// }
shreeshas95 14:a4c259ca0325 199 //// SPI_mutex.lock();
shreeshas95 14:a4c259ca0325 200 //// write_data();
shreeshas95 14:a4c259ca0325 201 //// SPI_mutex.unlock();
shreeshas95 14:a4c259ca0325 202 //// if(sent_tmfrom_SDcard)
shreeshas95 14:a4c259ca0325 203 //// {
shreeshas95 14:a4c259ca0325 204 //// send_tm_from_SD_card();
shreeshas95 14:a4c259ca0325 205 //// }
shreeshas95 14:a4c259ca0325 206 //// else
shreeshas95 14:a4c259ca0325 207 //// {
shreeshas95 14:a4c259ca0325 208 //// snd_tm.transmit_data(buffer_112,&last_buffer);
shreeshas95 14:a4c259ca0325 209 //// }
shreeshas95 14:a4c259ca0325 210 //// SPI_mutex.lock();
shreeshas95 14:a4c259ca0325 211 //// cs_adf=0;
shreeshas95 14:a4c259ca0325 212 //// spi.write(0xB1);
shreeshas95 14:a4c259ca0325 213 //// cs_adf=1;
shreeshas95 14:a4c259ca0325 214 //// SPI_mutex.unlock();
shreeshas95 14:a4c259ca0325 215 //// wait_us(300);
shreeshas95 14:a4c259ca0325 216 //// SPI_mutex.lock();
shreeshas95 14:a4c259ca0325 217 //// cs_adf=0;
shreeshas95 14:a4c259ca0325 218 //// spi.write(0xFF);
shreeshas95 14:a4c259ca0325 219 //// spi.write(0xFF);
shreeshas95 14:a4c259ca0325 220 //// cs_adf=1;
shreeshas95 14:a4c259ca0325 221 ////
shreeshas95 14:a4c259ca0325 222 ////// wait_ms(2);
shreeshas95 14:a4c259ca0325 223 ////
shreeshas95 14:a4c259ca0325 224 //// cs_adf=0;
shreeshas95 14:a4c259ca0325 225 //// spi.write(0xB5);
shreeshas95 14:a4c259ca0325 226 //// cs_adf=1;
shreeshas95 14:a4c259ca0325 227 ////// cout<<"B5 given"<<ENDL;
shreeshas95 14:a4c259ca0325 228 //// SPI_mutex.unlock();
shreeshas95 14:a4c259ca0325 229 //// wait_us(300);
shreeshas95 14:a4c259ca0325 230 ////// int b5=t.read_us();
shreeshas95 14:a4c259ca0325 231 //// SPI_mutex.lock();
shreeshas95 14:a4c259ca0325 232 //// cs_adf=0;
shreeshas95 14:a4c259ca0325 233 //// spi.write(0xFF);
shreeshas95 14:a4c259ca0325 234 //// spi.write(0xFF);
shreeshas95 14:a4c259ca0325 235 //// cs_adf=1;
shreeshas95 14:a4c259ca0325 236 //// SPI_mutex.unlock();
shreeshas95 14:a4c259ca0325 237 ////// wait_ms(2);
shreeshas95 14:a4c259ca0325 238 //// ticker.attach_us(&check,32000);
shreeshas95 14:a4c259ca0325 239 ////
shreeshas95 14:a4c259ca0325 240 //// while(!transmission_done){
shreeshas95 14:a4c259ca0325 241 //// led2=!led2;
shreeshas95 14:a4c259ca0325 242 //// printf("x");
shreeshas95 14:a4c259ca0325 243 //// Thread::signal_wait(0x2);
shreeshas95 14:a4c259ca0325 244 ////
shreeshas95 14:a4c259ca0325 245 //// SPI_mutex.lock();
shreeshas95 14:a4c259ca0325 246 //// write_data();
shreeshas95 14:a4c259ca0325 247 //// SPI_mutex.unlock();
shreeshas95 14:a4c259ca0325 248 //// if(sent_tmfrom_SDcard){
shreeshas95 14:a4c259ca0325 249 //// send_tm_from_SD_card();
shreeshas95 14:a4c259ca0325 250 //// }
shreeshas95 14:a4c259ca0325 251 //// else{
shreeshas95 14:a4c259ca0325 252 //// snd_tm.transmit_data(buffer_112,&last_buffer);
shreeshas95 14:a4c259ca0325 253 //// }
shreeshas95 14:a4c259ca0325 254 //// }
shreeshas95 14:a4c259ca0325 255 //}
shreeshas95 14:a4c259ca0325 256 //
shreeshas95 14:a4c259ca0325 257 //
shreeshas95 14:a4c259ca0325 258
shreeshas95 14:a4c259ca0325 259 void inline spi_SND_SDCard(uint64_t x,uint64_t y ){
shreeshas95 14:a4c259ca0325 260 start_block_num = x;
shreeshas95 14:a4c259ca0325 261 end_block_num = y;
shreeshas95 14:a4c259ca0325 262 sent_tmfrom_SDcard = true;
shreeshas95 14:a4c259ca0325 263 spi.format(8,0);
shreeshas95 14:a4c259ca0325 264 spi.frequency(1000000);
shreeshas95 13:7b27a8e9cbb4 265
shreeshas95 14:a4c259ca0325 266 // bbram_write();
shreeshas95 14:a4c259ca0325 267 // initiate();
shreeshas95 14:a4c259ca0325 268 // send_data();
shreeshas95 14:a4c259ca0325 269
shreeshas95 14:a4c259ca0325 270 }
shreeshas95 14:a4c259ca0325 271
shreeshas95 14:a4c259ca0325 272 void read_TC(TC_list* TC_ptr){
shreeshas95 14:a4c259ca0325 273 unsigned char service_subtype = 0;
shreeshas95 14:a4c259ca0325 274 uint64_t starting_add = 0, ending_add = 0;
shreeshas95 14:a4c259ca0325 275 service_subtype = (TC_ptr->TC_string[2])&0x0f;
shreeshas95 14:a4c259ca0325 276 starting_add = (TC_ptr->TC_string[5]) + ( (TC_ptr->TC_string[4])<<8 ) + ( (TC_ptr->TC_string[3]) <<16);
shreeshas95 14:a4c259ca0325 277 ending_add = (TC_ptr->TC_string[8]) + ( (TC_ptr->TC_string[7])<<8 ) + ( (TC_ptr->TC_string[6]) <<16);
shreeshas95 14:a4c259ca0325 278 spi_SND_SDCard(starting_add , ending_add);
shreeshas95 14:a4c259ca0325 279 }
shreeshas95 14:a4c259ca0325 280
shreeshas95 14:a4c259ca0325 281
shreeshas95 14:a4c259ca0325 282 void inline adf_not_SDcard(){
shreeshas95 14:a4c259ca0325 283 spi.format(8,0);
shreeshas95 14:a4c259ca0325 284 spi.frequency(1000000);
shreeshas95 14:a4c259ca0325 285 sent_tmfrom_SDcard = false;
shreeshas95 14:a4c259ca0325 286 // bbram_write();
shreeshas95 14:a4c259ca0325 287 SPI_mutex.lock();
shreeshas95 14:a4c259ca0325 288 cs_adf=0;
shreeshas95 14:a4c259ca0325 289 spi.write(0xB0);//PHY_OFF
shreeshas95 14:a4c259ca0325 290 wait_us(300);
shreeshas95 14:a4c259ca0325 291 cs_adf=1;
shreeshas95 14:a4c259ca0325 292 SPI_mutex.unlock();
shreeshas95 14:a4c259ca0325 293
shreeshas95 14:a4c259ca0325 294 SPI_mutex.lock();
shreeshas95 14:a4c259ca0325 295 // Write bbram
shreeshas95 14:a4c259ca0325 296 cs_adf=0;
shreeshas95 14:a4c259ca0325 297 for(int i=0;i<66;i++){
shreeshas95 14:a4c259ca0325 298 spi.write(bbram_buffer[i]);
shreeshas95 14:a4c259ca0325 299 }
shreeshas95 14:a4c259ca0325 300 cs_adf=1;
shreeshas95 14:a4c259ca0325 301 SPI_mutex.unlock();
shreeshas95 14:a4c259ca0325 302 // initiate();
shreeshas95 14:a4c259ca0325 303
shreeshas95 14:a4c259ca0325 304 SPI_mutex.lock();
shreeshas95 14:a4c259ca0325 305 cs_adf=0;
shreeshas95 14:a4c259ca0325 306 spi.write(0xFF);
shreeshas95 14:a4c259ca0325 307 spi.write(0xFF);
shreeshas95 14:a4c259ca0325 308 cs_adf=1;
shreeshas95 14:a4c259ca0325 309 // wait_ms(2);
shreeshas95 14:a4c259ca0325 310
shreeshas95 14:a4c259ca0325 311 cs_adf=0;
shreeshas95 14:a4c259ca0325 312 spi.write(0x08); // TRANSMIT_DATA LENGTH
shreeshas95 14:a4c259ca0325 313 spi.write(0x14);
shreeshas95 14:a4c259ca0325 314 spi.write(0xFF);
shreeshas95 14:a4c259ca0325 315 cs_adf=1;
shreeshas95 14:a4c259ca0325 316 // wait_ms(2);
shreeshas95 14:a4c259ca0325 317 cs_adf=0;
shreeshas95 14:a4c259ca0325 318 spi.write(0x08); // TRANSMIT_DATA LENGTH
shreeshas95 14:a4c259ca0325 319 spi.write(0x15);
shreeshas95 14:a4c259ca0325 320 spi.write(0xFF);
shreeshas95 14:a4c259ca0325 321 cs_adf=1;
shreeshas95 14:a4c259ca0325 322 // wait_ms(2);
shreeshas95 14:a4c259ca0325 323
shreeshas95 14:a4c259ca0325 324 cs_adf=0;
shreeshas95 14:a4c259ca0325 325 spi.write(0x09);
shreeshas95 14:a4c259ca0325 326 spi.write(0x24); // TX_BASE ADDRESS 0x20(starting Tx Byte)
shreeshas95 14:a4c259ca0325 327 spi.write(0x20);
shreeshas95 14:a4c259ca0325 328 cs_adf=1;
shreeshas95 14:a4c259ca0325 329 // wait_ms(2);
shreeshas95 14:a4c259ca0325 330
shreeshas95 14:a4c259ca0325 331 cs_adf=0;
shreeshas95 14:a4c259ca0325 332 spi.write(0x09);
shreeshas95 14:a4c259ca0325 333 spi.write(0x37);// BUFFER SIZE 0xE0=224 Bytes 0x137 is adress of buffer size
shreeshas95 14:a4c259ca0325 334 spi.write(0xE0);
shreeshas95 14:a4c259ca0325 335 cs_adf=1;
shreeshas95 14:a4c259ca0325 336 // wait_ms(2);
shreeshas95 14:a4c259ca0325 337
shreeshas95 14:a4c259ca0325 338 cs_adf=0;
shreeshas95 14:a4c259ca0325 339 spi.write(0x09);
shreeshas95 14:a4c259ca0325 340 spi.write(0x36);//BB_Tx_Buffer Signal when Buffer is half filled
shreeshas95 14:a4c259ca0325 341 spi.write(0x70);//0x70 = 112 >> When Half buffer interrupt is given
shreeshas95 14:a4c259ca0325 342 cs_adf=1;
shreeshas95 14:a4c259ca0325 343 // wait_ms(2);
shreeshas95 14:a4c259ca0325 344
shreeshas95 14:a4c259ca0325 345
shreeshas95 14:a4c259ca0325 346 cs_adf=0;
shreeshas95 14:a4c259ca0325 347 spi.write(0x09);
shreeshas95 14:a4c259ca0325 348 spi.write(0x39);//BB_Tx_Buffer Signal when Buffer is half filled
shreeshas95 14:a4c259ca0325 349 spi.write(0x10);//0x70 = 112 >> When Half buffer interrupt is given
shreeshas95 14:a4c259ca0325 350 cs_adf=1;
shreeshas95 14:a4c259ca0325 351 // wait_ms(2);
shreeshas95 14:a4c259ca0325 352 SPI_mutex.unlock();
shreeshas95 14:a4c259ca0325 353 // send_data();
shreeshas95 14:a4c259ca0325 354
shreeshas95 14:a4c259ca0325 355 SPI_mutex.lock();
shreeshas95 13:7b27a8e9cbb4 356 cs_adf=0;
shreeshas95 13:7b27a8e9cbb4 357 spi.write(0xBB);
shreeshas95 13:7b27a8e9cbb4 358 cs_adf=1;
shreeshas95 13:7b27a8e9cbb4 359 // wait_us(300);
shreeshas95 13:7b27a8e9cbb4 360
shreeshas95 13:7b27a8e9cbb4 361 cs_adf=0;
shreeshas95 13:7b27a8e9cbb4 362 spi.write(0xFF);
shreeshas95 13:7b27a8e9cbb4 363 spi.write(0xFF);
shreeshas95 13:7b27a8e9cbb4 364 cs_adf=1;
shreeshas95 13:7b27a8e9cbb4 365 SPI_mutex.unlock();
shreeshas95 13:7b27a8e9cbb4 366 // wait_ms(2);
shreeshas95 13:7b27a8e9cbb4 367 if(sent_tmfrom_SDcard){
shreeshas95 13:7b27a8e9cbb4 368 send_tm_from_SD_card();
shreeshas95 13:7b27a8e9cbb4 369 }
shreeshas95 14:a4c259ca0325 370 else{
shreeshas95 13:7b27a8e9cbb4 371 snd_tm.transmit_data(buffer_112,&last_buffer);
shreeshas95 13:7b27a8e9cbb4 372 }
shreeshas95 13:7b27a8e9cbb4 373 SPI_mutex.lock();
shreeshas95 13:7b27a8e9cbb4 374 write_data();
shreeshas95 13:7b27a8e9cbb4 375 SPI_mutex.unlock();
shreeshas95 13:7b27a8e9cbb4 376 if(sent_tmfrom_SDcard)
shreeshas95 13:7b27a8e9cbb4 377 {
shreeshas95 13:7b27a8e9cbb4 378 send_tm_from_SD_card();
shreeshas95 13:7b27a8e9cbb4 379 }
shreeshas95 13:7b27a8e9cbb4 380 else
shreeshas95 13:7b27a8e9cbb4 381 {
shreeshas95 13:7b27a8e9cbb4 382 snd_tm.transmit_data(buffer_112,&last_buffer);
shreeshas95 13:7b27a8e9cbb4 383 }
shreeshas95 13:7b27a8e9cbb4 384 SPI_mutex.lock();
shreeshas95 13:7b27a8e9cbb4 385 write_data();
shreeshas95 13:7b27a8e9cbb4 386 SPI_mutex.unlock();
shreeshas95 13:7b27a8e9cbb4 387 if(sent_tmfrom_SDcard)
shreeshas95 13:7b27a8e9cbb4 388 {
shreeshas95 13:7b27a8e9cbb4 389 send_tm_from_SD_card();
shreeshas95 13:7b27a8e9cbb4 390 }
shreeshas95 13:7b27a8e9cbb4 391 else
shreeshas95 13:7b27a8e9cbb4 392 {
shreeshas95 13:7b27a8e9cbb4 393 snd_tm.transmit_data(buffer_112,&last_buffer);
shreeshas95 13:7b27a8e9cbb4 394 }
shreeshas95 13:7b27a8e9cbb4 395 SPI_mutex.lock();
shreeshas95 13:7b27a8e9cbb4 396 cs_adf=0;
shreeshas95 13:7b27a8e9cbb4 397 spi.write(0xB1);
shreeshas95 13:7b27a8e9cbb4 398 cs_adf=1;
shreeshas95 13:7b27a8e9cbb4 399 SPI_mutex.unlock();
shreeshas95 13:7b27a8e9cbb4 400 wait_us(300);
shreeshas95 13:7b27a8e9cbb4 401 SPI_mutex.lock();
shreeshas95 13:7b27a8e9cbb4 402 cs_adf=0;
shreeshas95 13:7b27a8e9cbb4 403 spi.write(0xFF);
shreeshas95 13:7b27a8e9cbb4 404 spi.write(0xFF);
shreeshas95 13:7b27a8e9cbb4 405 cs_adf=1;
shreeshas95 13:7b27a8e9cbb4 406
shreeshas95 13:7b27a8e9cbb4 407 // wait_ms(2);
shreeshas95 13:7b27a8e9cbb4 408
shreeshas95 13:7b27a8e9cbb4 409 cs_adf=0;
shreeshas95 13:7b27a8e9cbb4 410 spi.write(0xB5);
shreeshas95 13:7b27a8e9cbb4 411 cs_adf=1;
shreeshas95 13:7b27a8e9cbb4 412 // cout<<"B5 given"<<ENDL;
shreeshas95 13:7b27a8e9cbb4 413 SPI_mutex.unlock();
shreeshas95 13:7b27a8e9cbb4 414 wait_us(300);
shreeshas95 13:7b27a8e9cbb4 415 // int b5=t.read_us();
shreeshas95 13:7b27a8e9cbb4 416 SPI_mutex.lock();
shreeshas95 13:7b27a8e9cbb4 417 cs_adf=0;
shreeshas95 13:7b27a8e9cbb4 418 spi.write(0xFF);
shreeshas95 13:7b27a8e9cbb4 419 spi.write(0xFF);
shreeshas95 13:7b27a8e9cbb4 420 cs_adf=1;
shreeshas95 13:7b27a8e9cbb4 421 SPI_mutex.unlock();
shreeshas95 13:7b27a8e9cbb4 422 // wait_ms(2);
shreeshas95 13:7b27a8e9cbb4 423 ticker.attach_us(&check,32000);
shreeshas95 13:7b27a8e9cbb4 424
shreeshas95 13:7b27a8e9cbb4 425 while(!transmission_done){
shreeshas95 13:7b27a8e9cbb4 426 led2=!led2;
shreeshas95 13:7b27a8e9cbb4 427 Thread::signal_wait(0x2);
shreeshas95 13:7b27a8e9cbb4 428
shreeshas95 13:7b27a8e9cbb4 429 SPI_mutex.lock();
shreeshas95 13:7b27a8e9cbb4 430 write_data();
shreeshas95 13:7b27a8e9cbb4 431 SPI_mutex.unlock();
shreeshas95 13:7b27a8e9cbb4 432 if(sent_tmfrom_SDcard){
shreeshas95 13:7b27a8e9cbb4 433 send_tm_from_SD_card();
shreeshas95 13:7b27a8e9cbb4 434 }
shreeshas95 13:7b27a8e9cbb4 435 else{
shreeshas95 13:7b27a8e9cbb4 436 snd_tm.transmit_data(buffer_112,&last_buffer);
shreeshas95 13:7b27a8e9cbb4 437 }
shreeshas95 13:7b27a8e9cbb4 438 }
shreeshas95 13:7b27a8e9cbb4 439 }