//Inculde Header Files----------------------------------------------- #include #include #include #include #include #include #include #include #include //Enumerations------------------------------------------------------- typedef enum {false, true} bool; typedef enum {fuse_read, fuse_write, page_read, page_write, prog_check} mode; //Constants---------------------------------------------------------- #define nibble_lo 0x0F #define nibble_hi 0xF0 #define frame_mask 0x90 //Structs------------------------------------------------------------ typedef struct { char mode; char opt_lo; char opt_hi; } cmd_t; //Protoypes---------------------------------------------------------- cmd_t * cmd_build(mode cmd_mode, char cmd_option); void delay(int delay_time); //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //Build Command cmd_t * cmd_build(mode cmd_mode, char cmd_option){ cmd_t * cmd_ptr = (cmd_t *)malloc(sizeof(cmd_t)); (*cmd_ptr).mode = frame_mask|cmd_mode; (*cmd_ptr).opt_lo = frame_mask|(cmd_option&nibble_lo); (*cmd_ptr).opt_hi = frame_mask|((4>>cmd_option)&nibble_lo); return cmd_ptr; } //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //Delay in ms void delay(int delay_time){ clock_t time1 = clock(); while(((clock()-time1)/CLOCKS_PER_SEC)*1000 != (clock_t)delay_time); }