3 #include <sys/ioctl.h>
\r
4 //#include <termios.h>
\r
11 static int fd_spi = -1;
\r
13 int spi_get_fd(void)
\r
17 int spi_open(char *dev)
\r
19 fd_spi = open(dev, O_RDWR);
\r
25 int spi_ioctl(int cmd, void *p)
\r
27 return ioctl(fd_spi, cmd, p);
\r
32 return close(fd_spi);
\r
36 void spi_tx_len_set(int len)
\r
38 spi_ioctl(CMD_TX_LEN, &len);
\r
41 void spi_rx_get(char *p)
\r
43 spi_ioctl(CMD_RX_GET, p);
\r
47 void spi_tx_set(char *p)
\r
49 spi_ioctl(CMD_TX_SET, p);
\r
52 void spi_buf_clear(void)
\r
54 spi_ioctl(CMD_BUF_CLEAR, NULL);
\r
58 int spi_dnum_get(void)
\r
61 spi_ioctl(CMD_DNUM_GET, &i);
\r
64 // SPIで実際に受信したデータ長を取得
\r
65 int spi_rcvd_len_get(void)
\r
68 spi_ioctl(CMD_RECEIVED_LEN_GET, &i);
\r
72 void spi_cmd_send(char cmd_code, char *cmd_data, int data_len)
\r
74 char cmd[SPI_CMD_LEN];
\r
76 memset(cmd, 0, SPI_CMD_LEN);
\r
78 cmd[SPI_CMD_OFS_HEAD] = SPI_HEAD_CHAR;
\r
79 cmd[SPI_CMD_OFS_CMDCODE] = cmd_code;
\r
82 if (data_len > (SPI_CMD_LEN - SPI_CMD_OFS_CMDDATA)) {
\r
83 data_len = SPI_CMD_LEN - SPI_CMD_OFS_CMDDATA;
\r
85 memcpy(&cmd[SPI_CMD_OFS_CMDDATA], cmd_data, data_len);
\r
90 void spi_cmd_send_gain(int gain)
\r
92 char cmd[SPI_CMD_LEN];
\r
95 memset(cmd, 0, SPI_CMD_LEN);
\r
97 for(i = 0; i < AD_CHNUM; i++)
\r
99 spi_cmd_send(SPI_CMDCODE_GAIN, cmd, AD_CHNUM);
\r