Files @ 39ea1ee3d5af
Branch filter:

Location: therm-ng/inc/ssd1306.h

Ethan Zonca
Add logo rendering
#ifndef   ssd1306_H
#define   ssd1306_H


#define OLED_CS_Pin GPIO_PIN_0
#define OLED_CS_GPIO_Port GPIOA
#define OLED_RESET_Pin GPIO_PIN_1
#define OLED_RESET_GPIO_Port GPIOA
#define OLED_DC_Pin GPIO_PIN_2
#define OLED_DC_GPIO_Port GPIOA



#define   SSD_RESET       OLED_RESET_GPIO_Port,OLED_RESET_Pin
#define   SSD_A0          OLED_DC_GPIO_Port,OLED_DC_Pin
#define   SSD_CS          OLED_CS_GPIO_Port,OLED_CS_Pin

#define   SSD_Reset_Low()   HAL_GPIO_WritePin(SSD_RESET, 0)
#define   SSD_Reset_High()  HAL_GPIO_WritePin(SSD_RESET, 1)
#define   SSD_A0_Low()      HAL_GPIO_WritePin(SSD_A0, 0)
#define   SSD_A0_High()     HAL_GPIO_WritePin(SSD_A0, 1)
#define   SSD_CS_Low()      HAL_GPIO_WritePin(SSD_CS, 0)
#define   SSD_CS_High()     HAL_GPIO_WritePin(SSD_CS, 1)


// EMZ FIXME this won't really work
#define   SPI_SendByte(data)  HAL_SPI_Transmit(spi_get(), &data, 1, 100)
//#define SPI_SendByte(data)
#define SPI_Wait()

//#define   SPI_SendByte(data)  SPI_I2S_SendData(SPI1,data)
//#define   SPI_Wait()       while(!(SPI1->SR&SPI_FLAG_TXE));while(SPI1->SR&SPI_FLAG_BSY);

void ssd1306_init(void);
void ssd1306_drawchar(char ascii, unsigned char row, unsigned char xPos);
void ssd1306_drawcharbig(char ascii, unsigned char row, unsigned char xPos);
void ssd1306_drawstring(const char *dataPtr, unsigned char row, unsigned char xPos);
void ssd1306_drawstringbig(const char *dataPtr, unsigned char row, unsigned char xPos);
void ssd1306_drawlogo();
void ssd1306_clearscreen();

#endif

// vim:softtabstop=4 shiftwidth=4 expandtab