| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- //Inculde Header Files-----------------------------------------------
- #include<stdlib.h>
- #include<stdio.h>
- #include<time.h>
- #include<unistd.h>
- #include<termios.h>
- #include<sys/types.h>
- #include<sys/stat.h>
- #include<fcntl.h>
- #include<sys/resource.h>
- //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);
- }
|