mirror of
https://git.intern.spaceteamaachen.de/ALPAKA/sta-core.git
synced 2025-08-06 10:27:34 +00:00
Added fixes to the SPI implementation, removed debugging
This commit is contained in:
@@ -68,8 +68,15 @@ namespace sta
|
||||
spi_message[0].tx_buf = (unsigned long)&value;
|
||||
spi_message[0].len = 1;
|
||||
|
||||
// For some reasons, this line makes the SPI interface work for the BMP388.
|
||||
spi_message[0].cs_change = 1;
|
||||
|
||||
int result = ioctl(spifd_, SPI_IOC_MESSAGE(1), spi_message);
|
||||
|
||||
if (result < 0) {
|
||||
printf("Sending failed with error '%s'! \n", strerror(errno));
|
||||
}
|
||||
|
||||
STA_DEBUG_IOCTL_SEND(result);
|
||||
}
|
||||
|
||||
@@ -83,6 +90,7 @@ namespace sta
|
||||
memset(spi_message, 0, sizeof(spi_message));
|
||||
spi_message[0].tx_buf = (unsigned long)&value;
|
||||
spi_message[0].len = 1;
|
||||
spi_message[0].cs_change = 1;
|
||||
|
||||
int result = ioctl(spifd_, SPI_IOC_MESSAGE(1), spi_message);
|
||||
|
||||
@@ -102,14 +110,12 @@ namespace sta
|
||||
spi_message[0].tx_buf = (unsigned long)buffer;
|
||||
spi_message[0].len = size;
|
||||
|
||||
printf("Sending ");
|
||||
for (int i = 0; i < size; i++) {
|
||||
printf("%x, ", buffer[i]);
|
||||
}
|
||||
printf("\n");
|
||||
|
||||
int result = ioctl(spifd_, SPI_IOC_MESSAGE(1), spi_message);
|
||||
|
||||
if (result < 0) {
|
||||
printf("Sending failed with error '%s'! \n", strerror(errno));
|
||||
}
|
||||
|
||||
STA_DEBUG_IOCTL_SEND(result);
|
||||
}
|
||||
|
||||
@@ -131,7 +137,7 @@ namespace sta
|
||||
|
||||
int result = ioctl(spifd_, SPI_IOC_MESSAGE(1), spi_message);
|
||||
|
||||
if (result == -1) {
|
||||
if (result < 0) {
|
||||
printf("Sending failed with error '%s'! \n", strerror(errno));
|
||||
}
|
||||
|
||||
@@ -154,12 +160,6 @@ namespace sta
|
||||
|
||||
int result = ioctl(spifd_, SPI_IOC_MESSAGE(1), spi_message);
|
||||
|
||||
printf("Receiving ");
|
||||
for (int i = 0; i < size; i++) {
|
||||
printf("%x, ", buffer[i]);
|
||||
}
|
||||
printf("\n");
|
||||
|
||||
STA_DEBUG_IOCTL_SEND(result);
|
||||
}
|
||||
|
||||
@@ -226,18 +226,34 @@ namespace sta
|
||||
int result = ioctl(spifd_, SPI_IOC_WR_MODE, &mode_);
|
||||
STA_DEBUG_IOCTL_WRITE(result);
|
||||
|
||||
if (result < 0) {
|
||||
printf("Update mode failed with error '%s'! \n", strerror(errno));
|
||||
}
|
||||
|
||||
// Set the word size. According to the documentation "the value zero signifies eight bits".
|
||||
result = ioctl(spifd_, SPI_IOC_WR_BITS_PER_WORD, &dataSize_);
|
||||
STA_DEBUG_IOCTL_WRITE(result);
|
||||
|
||||
if (result < 0) {
|
||||
printf("Update dataSize failed with error '%s'! \n", strerror(errno));
|
||||
}
|
||||
|
||||
// Set the bit order. According to the documentation zero means MSB first, everything else means LSB first.
|
||||
result = ioctl(spifd_, SPI_IOC_WR_LSB_FIRST, &bitOrder_);
|
||||
STA_DEBUG_IOCTL_WRITE(result);
|
||||
|
||||
if (result < 0) {
|
||||
printf("Update endianness failed with error '%s'! \n", strerror(errno));
|
||||
}
|
||||
|
||||
// Set the maximum clock speed.
|
||||
result = ioctl(spifd_, SPI_IOC_WR_MAX_SPEED_HZ, &clkSpeed_);
|
||||
STA_DEBUG_IOCTL_WRITE(result);
|
||||
|
||||
if (result < 0) {
|
||||
printf("Update clock speed failed with error '%s'! \n", strerror(errno));
|
||||
}
|
||||
|
||||
#if defined(DEBUG)
|
||||
uint8_t r_mode = 0;
|
||||
get_setting(SPI_IOC_RD_MODE, &r_mode);
|
||||
|
Reference in New Issue
Block a user