📄 main.c
字号:
/************************************************\* by threewater<threewater@up-tech.com> ** 2003.12.18 ** *\***********************************************/#include <stdio.h>#include <fcntl.h>#include <string.h>#include <sys/ioctl.h>#include "hardware.h"#include "zlg7289.h"#include "s3c44b0-spi.h"#define SPI_DEV "/dev/spi/0"static int spi_fd = -1;#define Zlg7289_Reset() do{write_Zlg7289(ZLG7289_CMD_RST);Delay(20);}while(0)static void Delay(int t){ int i; for(;t>0;t--) for(i=0;i<400;i++);}static void write_Zlg7289(int cmd){ spi_rw data; data.buffer=(char*)&cmd; data.size=1; if(ioctl(spi_fd, SPI_IOCTRL_WFORZLG7289, &data)!=0){ printf("Error IOCTRL, please check your spi driver in kernel!\n"); close(spi_fd); exit(1); }}static void mwrite_Zlg7289(char* buffer, int size){ spi_rw data; data.buffer=buffer; data.size=size; if(ioctl(spi_fd, SPI_IOCTRL_WFORZLG7289, &data)!=0){ printf("Error IOCTRL, please check your spi driver in kernel!\n"); close(spi_fd); exit(1); }}static void Zlg7289_showStr(char* str){ int i; unsigned int showdata; char buffer[20],*p=str; if(strlen(str)>8) //the string length must below 8. str[8]=0; sscanf(str, "%x", &showdata); printf("showdata=%x\n",showdata); for(i=0;i<8 && *p!=0 ;i++){ buffer[i*2]=(ZLG7289_CMD_DATA1|i); // buffer[i*2+1]=(showdata&0xf); showdata>>=4; p++; } for(;i<8;i++){ buffer[i*2]=(ZLG7289_CMD_DATA0|i); buffer[i*2+1]=0xf; //don't show any word } mwrite_Zlg7289(buffer, 16);}int main(int argc, char **argv){ float v; int value; if((spi_fd=open(SPI_DEV, O_NONBLOCK))<0){ printf("Error opening %s spi device\n", SPI_DEV); return 1; } Zlg7289_Reset(); if(argc==1){ write_Zlg7289(ZLG7289_CMD_TEST); printf("Zlg7289 in test Mode\n"); goto end; } Zlg7289_showStr(argv[1]);end: close(spi_fd); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -