📄 io_lib.c
字号:
#include "io_lib.h"// read from device file and return value of byteunsigned long int read_dev(files file){ char string[STRING_LEN]={0}; FILE *f=NULL; int i=0; // open requested file for reading switch(file) { case switches: f=fopen(SWITCHES,"r"); break; case buttons: f=fopen(BUTTONS,"r"); break; } // read line while((i<10) && (string[i++]=fgetc(f))); fclose(f); // return value return atol(string);}// write byte(s) to device filevoid write_dev(files file, char *val){ FILE *f=NULL; // open requested file for writing switch(file) { case leds_red: f=fopen(LEDS_RED,"r+"); break; case leds_green: f=fopen(LEDS_GREEN,"r+"); break; case seg7: f=fopen(SEG7,"r+"); break; } fprintf(f,val); fclose(f);}int write_lcd(char *msg)
{
int i, file_desc, ret_val;
char msg32[33];
file_desc = open(DEVICE_FILE_NAME, 0);
if (file_desc < 0) {
printf("Can't open device file: %s\n", DEVICE_FILE_NAME);
return -1;
}
if (strlen(msg) >=0 && strlen(msg) < 32) {
strcpy(msg32, msg); // copy the short string
for(i = strlen(msg); i<32 ;i++) // fill the rest with space symbols
msg32[i] = (char)0x20;
} else
strncpy(msg32, msg, 32); // if string is equal or greater copy just 32 characters
msg32[32] = '\0'; // terminate string
// calls IOCTL_SET_MSG command of lcd device driver if(ioctl(file_desc, IOCTL_SET_MSG, msg32) < 0) return -2;
close(file_desc);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -