typedef struct FSM_State_s { unsigned PD7 : 1; unsigned PD6 : 1; unsigned PD5 : 1; unsigned PD4 : 1; unsigned PC2 : 1; unsigned PC3 : 1; unsigned PC4 : 1; unsigned PC5 : 1; } FSM_State_t; typedef unsigned int PTRType; typedef struct stateEntry_s { PTRType next; FSM_State_t state; } stateEntry_t; //----------| PD7 |---------- #define on 0 #define off 1 //----------| PD6 |---------- #define on 0 #define off 1 //----------| PD5 |---------- #define on 0 #define off 1 //----------| PD4 |---------- #define on 0 #define off 1 //----------| PC2 |---------- #define on 0 #define off 1 //----------| PC3 |---------- #define on 0 #define off 1 //----------| PC4 |---------- #define on 0 #define off 1 //----------| PC5 |---------- #define on 0 #define off 1 //------------ // PC5 , PC4 , PC3 , PC2 , PD4 , PD5 , PD6 , PD7 , stateEntry_t stateTable[] = { { 31, { on , on , on , off , off , off , off , off , }}, /* index: 31 0 */ { 62, { on , on , off , off , off , off , off , on , }}, /* index: 62 1 */ { 63, { on , on , off , off , off , off , off , off , }}, /* index: 63 2 */ { 95, { on , off , on , off , off , off , off , off , }}, /* index: 95 3 */ { 123, { on , off , off , off , off , on , off , off , }}, /* index: 123 4 */ { 124, { on , off , off , off , off , off , on , on , }}, /* index: 124 5 */ { 126, { on , off , off , off , off , off , off , on , }}, /* index: 126 6 */ { 127, { on , off , off , off , off , off , off , off , }}, /* index: 127 7 */ { 143, { off , on , on , on , off , off , off , off , }}, /* index: 143 8 */ { 159, { off , on , on , off , off , off , off , off , }}, /* index: 159 9 */ { 175, { off , on , off , on , off , off , off , off , }}, /* index: 175 10 */ { 190, { off , on , off , off , off , off , off , on , }}, /* index: 190 11 */ { 191, { off , on , off , off , off , off , off , off , }}, /* index: 191 12 */ { 199, { off , off , on , on , on , off , off , off , }}, /* index: 199 13 */ { 207, { off , off , on , on , off , off , off , off , }}, /* index: 207 14 */ { 215, { off , off , on , off , on , off , off , off , }}, /* index: 215 15 */ { 223, { off , off , on , off , off , off , off , off , }}, /* index: 223 16 */ { 227, { off , off , off , on , on , on , off , off , }}, /* index: 227 17 */ { 231, { off , off , off , on , on , off , off , off , }}, /* index: 231 18 */ { 235, { off , off , off , on , off , on , off , off , }}, /* index: 235 19 */ { 239, { off , off , off , on , off , off , off , off , }}, /* index: 239 20 */ { 240, { off , off , off , off , on , on , on , on , }}, /* index: 240 21 */ { 243, { off , off , off , off , on , on , off , off , }}, /* index: 243 22 */ { 245, { off , off , off , off , on , off , on , off , }}, /* index: 245 23 */ { 247, { off , off , off , off , on , off , off , off , }}, /* index: 247 24 */ { 248, { off , off , off , off , off , on , on , on , }}, /* index: 248 25 */ { 249, { off , off , off , off , off , on , on , off , }}, /* index: 249 26 */ { 250, { off , off , off , off , off , on , off , on , }}, /* index: 250 27 */ { 251, { off , off , off , off , off , on , off , off , }}, /* index: 251 28 */ { 252, { off , off , off , off , off , off , on , on , }}, /* index: 252 29 */ { 253, { off , off , off , off , off , off , on , off , }}, /* index: 253 30 */ { 254, { off , off , off , off , off , off , off , on , }}, /* index: 254 31 */ };