Improved compatibility with 4inch code

pull/4/head
erikkaashoek 6 years ago
parent 0a24a6e37b
commit c14584c6a9

@ -41,8 +41,12 @@
* @brief Enables the ADC subsystem. * @brief Enables the ADC subsystem.
*/ */
#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) #if !defined(HAL_USE_ADC) || defined(__DOXYGEN__)
#if defined(TINYSA_F303)
#define HAL_USE_ADC TRUE
#else
#define HAL_USE_ADC FALSE #define HAL_USE_ADC FALSE
#endif #endif
#endif
/** /**
* @brief Enables the CAN subsystem. * @brief Enables the CAN subsystem.
@ -132,7 +136,7 @@
* @brief Enables the SERIAL subsystem. * @brief Enables the SERIAL subsystem.
*/ */
#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) #if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__)
#define HAL_USE_SERIAL TRUE #define HAL_USE_SERIAL FALSE
#endif #endif
/** /**
@ -187,7 +191,7 @@
* @note Disabling this option saves both code and data space. * @note Disabling this option saves both code and data space.
*/ */
#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) #if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
#define ADC_USE_MUTUAL_EXCLUSION TRUE #define ADC_USE_MUTUAL_EXCLUSION FALSE
#endif #endif
/*===========================================================================*/ /*===========================================================================*/
@ -209,7 +213,7 @@
* @brief Enables the mutual exclusion APIs on the I2C bus. * @brief Enables the mutual exclusion APIs on the I2C bus.
*/ */
#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) #if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
#define I2C_USE_MUTUAL_EXCLUSION TRUE #define I2C_USE_MUTUAL_EXCLUSION FALSE
#endif #endif
/*===========================================================================*/ /*===========================================================================*/
@ -227,7 +231,7 @@
* @brief Enables an event sources for incoming packets. * @brief Enables an event sources for incoming packets.
*/ */
#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) #if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__)
#define MAC_USE_EVENTS TRUE #define MAC_USE_EVENTS FALSE
#endif #endif
/*===========================================================================*/ /*===========================================================================*/
@ -333,7 +337,7 @@
* @note Disabling this option saves both code and data space. * @note Disabling this option saves both code and data space.
*/ */
#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) #if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__)
#define SPI_USE_WAIT TRUE #define SPI_USE_WAIT FALSE
#endif #endif
/** /**
@ -341,7 +345,7 @@
* @note Disabling this option saves both code and data space. * @note Disabling this option saves both code and data space.
*/ */
#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) #if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
#define SPI_USE_MUTUAL_EXCLUSION TRUE #define SPI_USE_MUTUAL_EXCLUSION FALSE
#endif #endif
/** /**

@ -21,6 +21,9 @@
#include "hal.h" #include "hal.h"
#include "nanovna.h" #include "nanovna.h"
// Allow enable DMA for read display data (some problem vs use in ST7796 in fast mode)
#define __USE_DISPLAY_DMA_RX__
uint16_t spi_buffer[SPI_BUFFER_SIZE]; uint16_t spi_buffer[SPI_BUFFER_SIZE];
// Default foreground & background colors // Default foreground & background colors
uint16_t foreground_color = 0; uint16_t foreground_color = 0;
@ -195,6 +198,7 @@ static void spi_lld_serve_tx_interrupt(SPIDriver *spip, uint32_t flags)
(void)flags; (void)flags;
} }
#ifdef __USE_DISPLAY_DMA_RX__
static const stm32_dma_stream_t *dmarx = STM32_DMA_STREAM(STM32_SPI_SPI1_RX_DMA_STREAM); static const stm32_dma_stream_t *dmarx = STM32_DMA_STREAM(STM32_SPI_SPI1_RX_DMA_STREAM);
static uint32_t rxdmamode = STM32_DMA_CR_CHSEL(SPI1_RX_DMA_CHANNEL) static uint32_t rxdmamode = STM32_DMA_CR_CHSEL(SPI1_RX_DMA_CHANNEL)
| STM32_DMA_CR_PL(STM32_SPI_SPI1_DMA_PRIORITY) | STM32_DMA_CR_PL(STM32_SPI_SPI1_DMA_PRIORITY)
@ -208,6 +212,7 @@ static void spi_lld_serve_rx_interrupt(SPIDriver *spip, uint32_t flags)
(void)spip; (void)spip;
(void)flags; (void)flags;
} }
#endif
static void dmaStreamFlush(uint32_t len) static void dmaStreamFlush(uint32_t len)
{ {
@ -239,12 +244,14 @@ static void spi_init(void)
// Tx DMA init // Tx DMA init
dmaStreamAllocate(dmatx, STM32_SPI_SPI1_IRQ_PRIORITY, (stm32_dmaisr_t)spi_lld_serve_tx_interrupt, NULL); dmaStreamAllocate(dmatx, STM32_SPI_SPI1_IRQ_PRIORITY, (stm32_dmaisr_t)spi_lld_serve_tx_interrupt, NULL);
dmaStreamSetPeripheral(dmatx, &SPI1->DR); dmaStreamSetPeripheral(dmatx, &SPI1->DR);
SPI1->CR2|= SPI_CR2_TXDMAEN; // Tx DMA enable
#ifdef __USE_DISPLAY_DMA_RX__
// Rx DMA init // Rx DMA init
dmaStreamAllocate(dmarx, STM32_SPI_SPI1_IRQ_PRIORITY, (stm32_dmaisr_t)spi_lld_serve_rx_interrupt, NULL); dmaStreamAllocate(dmarx, STM32_SPI_SPI1_IRQ_PRIORITY, (stm32_dmaisr_t)spi_lld_serve_rx_interrupt, NULL);
dmaStreamSetPeripheral(dmarx, &SPI1->DR); dmaStreamSetPeripheral(dmarx, &SPI1->DR);
// Enable DMA on SPI // Enable DMA on SPI
SPI1->CR2|= SPI_CR2_TXDMAEN // Tx DMA enable SPI1->CR2|= SPI_CR2_RXDMAEN; // Rx DMA enable
| SPI_CR2_RXDMAEN; // Rx DMA enable #endif
#endif #endif
SPI1->CR1|= SPI_CR1_SPE; //SPI enable SPI1->CR1|= SPI_CR1_SPE; //SPI enable
} }
@ -369,7 +376,7 @@ void ili9341_bulk_8bit(int x, int y, int w, int h, uint16_t *palette)
} }
#ifndef __USE_DISPLAY_DMA__ #ifndef __USE_DISPLAY_DMA__
void ili9341_fill(int x, int y, int w, int h, int color) void ili9341_fill(int x, int y, int w, int h, uint16_t color)
{ {
//uint8_t xx[4] = { x >> 8, x, (x+w-1) >> 8, (x+w-1) }; //uint8_t xx[4] = { x >> 8, x, (x+w-1) >> 8, (x+w-1) };
//uint8_t yy[4] = { y >> 8, y, (y+h-1) >> 8, (y+h-1) }; //uint8_t yy[4] = { y >> 8, y, (y+h-1) >> 8, (y+h-1) };
@ -404,13 +411,11 @@ void ili9341_bulk(int x, int y, int w, int h)
} }
} }
#else #else
// //
// Use DMA for send data // Use DMA for send data
// //
// Fill region by some color // Fill region by some color
void ili9341_fill(int x, int y, int w, int h, int color) void ili9341_fill(int x, int y, int w, int h, uint16_t color)
{ {
uint32_t xx = __REV16(x | ((x + w - 1) << 16)); uint32_t xx = __REV16(x | ((x + w - 1) << 16));
uint32_t yy = __REV16(y | ((y + h - 1) << 16)); uint32_t yy = __REV16(y | ((y + h - 1) << 16));
@ -438,7 +443,9 @@ void ili9341_bulk(int x, int y, int w, int h)
STM32_DMA_CR_MSIZE_HWORD | STM32_DMA_CR_MINC); STM32_DMA_CR_MSIZE_HWORD | STM32_DMA_CR_MINC);
dmaStreamFlush(w * h); dmaStreamFlush(w * h);
} }
#if 0 // If read DMA hangs #endif
#ifndef __USE_DISPLAY_DMA_RX__
static uint8_t ssp_sendrecvdata(void) static uint8_t ssp_sendrecvdata(void)
{ {
// Start RX clock (by sending data) // Start RX clock (by sending data)
@ -531,7 +538,6 @@ void ili9341_read_memory(int x, int y, int w, int h, int len, uint16_t *out)
} }
} }
#endif #endif
#endif
void ili9341_clear_screen(void) void ili9341_clear_screen(void)
{ {

@ -14,6 +14,9 @@
limitations under the License. limitations under the License.
*/ */
#ifdef TINYSA_F303
#include "mcuconf_F303.h"
#else
#ifndef MCUCONF_H #ifndef MCUCONF_H
#define MCUCONF_H #define MCUCONF_H
@ -226,3 +229,4 @@
#define STM32_WDG_USE_IWDG FALSE #define STM32_WDG_USE_IWDG FALSE
#endif /* MCUCONF_H */ #endif /* MCUCONF_H */
#endif

@ -18,6 +18,9 @@
*/ */
#include "ch.h" #include "ch.h"
#ifdef TINYSA_F303
#include "adc_F303.h"
#endif
// Need enable HAL_USE_SPI in halconf.h // Need enable HAL_USE_SPI in halconf.h
#define __USE_DISPLAY_DMA__ #define __USE_DISPLAY_DMA__
@ -533,7 +536,7 @@ extern uint16_t spi_buffer[SPI_BUFFER_SIZE];
void ili9341_init(void); void ili9341_init(void);
void ili9341_test(int mode); void ili9341_test(int mode);
void ili9341_bulk(int x, int y, int w, int h); void ili9341_bulk(int x, int y, int w, int h);
void ili9341_fill(int x, int y, int w, int h, int color); void ili9341_fill(int x, int y, int w, int h, uint16_t color);
#if 0 #if 0
void ili9341_set_foreground(uint16_t fg); void ili9341_set_foreground(uint16_t fg);
void ili9341_set_background(uint16_t fg); void ili9341_set_background(uint16_t fg);

Loading…
Cancel
Save

Powered by TurnKey Linux.