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:
13:7b27a8e9cbb4
DUMMP program to demonstrate the problems : working

Who changed what in which revision?

UserRevisionLine numberNew contents of line
shreeshas95 13:7b27a8e9cbb4 1 void interleave( unsigned char *input, unsigned char *output ){
shreeshas95 13:7b27a8e9cbb4 2
shreeshas95 13:7b27a8e9cbb4 3 unsigned int outState = 0;
shreeshas95 13:7b27a8e9cbb4 4 unsigned int outByte = 0;
shreeshas95 13:7b27a8e9cbb4 5
shreeshas95 13:7b27a8e9cbb4 6 for( unsigned int i = 0 ; i < 36 ; ++i ){
shreeshas95 13:7b27a8e9cbb4 7 for(unsigned int j = 0 ; j < 30 ; ++j){
shreeshas95 13:7b27a8e9cbb4 8 unsigned int x = j*36+i;
shreeshas95 13:7b27a8e9cbb4 9 unsigned char tempBit = ((input[x >> 3]) >> (7-(x % 8))) & 1;
shreeshas95 13:7b27a8e9cbb4 10 switch(outState){
shreeshas95 13:7b27a8e9cbb4 11 case 0:
shreeshas95 13:7b27a8e9cbb4 12 outState = 1;
shreeshas95 13:7b27a8e9cbb4 13 output[outByte] = tempBit << 7;
shreeshas95 13:7b27a8e9cbb4 14 break;
shreeshas95 13:7b27a8e9cbb4 15 case 1:
shreeshas95 13:7b27a8e9cbb4 16 outState = 2;
shreeshas95 13:7b27a8e9cbb4 17 output[outByte] += tempBit << 6;
shreeshas95 13:7b27a8e9cbb4 18 break;
shreeshas95 13:7b27a8e9cbb4 19 case 2:
shreeshas95 13:7b27a8e9cbb4 20 outState = 3;
shreeshas95 13:7b27a8e9cbb4 21 output[outByte] += tempBit << 5;
shreeshas95 13:7b27a8e9cbb4 22 break;
shreeshas95 13:7b27a8e9cbb4 23 case 3:
shreeshas95 13:7b27a8e9cbb4 24 outState = 4;
shreeshas95 13:7b27a8e9cbb4 25 output[outByte] += tempBit << 4;
shreeshas95 13:7b27a8e9cbb4 26 break;
shreeshas95 13:7b27a8e9cbb4 27 case 4:
shreeshas95 13:7b27a8e9cbb4 28 outState = 5;
shreeshas95 13:7b27a8e9cbb4 29 output[outByte] += tempBit << 3;
shreeshas95 13:7b27a8e9cbb4 30 break;
shreeshas95 13:7b27a8e9cbb4 31 case 5:
shreeshas95 13:7b27a8e9cbb4 32 outState = 6;
shreeshas95 13:7b27a8e9cbb4 33 output[outByte] += tempBit << 2;
shreeshas95 13:7b27a8e9cbb4 34 break;
shreeshas95 13:7b27a8e9cbb4 35 case 6:
shreeshas95 13:7b27a8e9cbb4 36 outState = 7;
shreeshas95 13:7b27a8e9cbb4 37 output[outByte] += tempBit << 1;
shreeshas95 13:7b27a8e9cbb4 38 break;
shreeshas95 13:7b27a8e9cbb4 39 case 7:
shreeshas95 13:7b27a8e9cbb4 40 outState = 0;
shreeshas95 13:7b27a8e9cbb4 41 output[outByte] += tempBit;
shreeshas95 13:7b27a8e9cbb4 42 ++outByte;
shreeshas95 13:7b27a8e9cbb4 43 break;
shreeshas95 13:7b27a8e9cbb4 44 }
shreeshas95 13:7b27a8e9cbb4 45 }
shreeshas95 13:7b27a8e9cbb4 46 for(unsigned int j = 0 ; j < 2 ; ++j){
shreeshas95 13:7b27a8e9cbb4 47 switch(outState){
shreeshas95 13:7b27a8e9cbb4 48 case 0:
shreeshas95 13:7b27a8e9cbb4 49 output[outByte] = 0;
shreeshas95 13:7b27a8e9cbb4 50 outState = 1;
shreeshas95 13:7b27a8e9cbb4 51 break;
shreeshas95 13:7b27a8e9cbb4 52 case 1:
shreeshas95 13:7b27a8e9cbb4 53 outState = 2;
shreeshas95 13:7b27a8e9cbb4 54 break;
shreeshas95 13:7b27a8e9cbb4 55 case 2:
shreeshas95 13:7b27a8e9cbb4 56 outState = 3;
shreeshas95 13:7b27a8e9cbb4 57 break;
shreeshas95 13:7b27a8e9cbb4 58 case 3:
shreeshas95 13:7b27a8e9cbb4 59 outState = 4;
shreeshas95 13:7b27a8e9cbb4 60 break;
shreeshas95 13:7b27a8e9cbb4 61 case 4:
shreeshas95 13:7b27a8e9cbb4 62 outState = 5;
shreeshas95 13:7b27a8e9cbb4 63 break;
shreeshas95 13:7b27a8e9cbb4 64 case 5:
shreeshas95 13:7b27a8e9cbb4 65 outState = 6;
shreeshas95 13:7b27a8e9cbb4 66 break;
shreeshas95 13:7b27a8e9cbb4 67 case 6:
shreeshas95 13:7b27a8e9cbb4 68 outState = 7;
shreeshas95 13:7b27a8e9cbb4 69 break;
shreeshas95 13:7b27a8e9cbb4 70 case 7:
shreeshas95 13:7b27a8e9cbb4 71 outState = 0;
shreeshas95 13:7b27a8e9cbb4 72 ++outByte;
shreeshas95 13:7b27a8e9cbb4 73 break;
shreeshas95 13:7b27a8e9cbb4 74 }
shreeshas95 13:7b27a8e9cbb4 75 }
shreeshas95 13:7b27a8e9cbb4 76 }
shreeshas95 13:7b27a8e9cbb4 77 }