Example board file and cpp file for the Auduino teensy and the SSD1351 driver

This commit is contained in:
inmarket 2015-04-01 00:30:12 +10:00
parent 8e18cc30e2
commit 9f38cbc445
2 changed files with 95 additions and 0 deletions

View File

@ -0,0 +1,60 @@
/*
* This file is subject to the terms of the GFX License. If a copy of
* the license was not distributed with this file, you can obtain one at:
*
* http://ugfx.org/license.html
*/
#include <Arduino.h>
#include <SPI.h>
// pin numbers
#define SSD1351_DC 14
#define SSD1351_R 15
#define SSD1351_CS 16
// Predefine the routine with "C" prototypes
extern "C" void ssd1351_init_board(void);
extern "C" void ssd1351_setpin_reset(int state);
extern "C" void ssd1351_acquire_bus(void);
extern "C" void ssd1351_release_bus(void);
extern "C" void ssd1351_write_cmd(unsigned char index);
extern "C" void ssd1351_write_data(unsigned char data);
static SPISettings settings(12000000, MSBFIRST, SPI_MODE0);
void ssd1351_init_board(void) {
pinMode(SSD1351_R, OUTPUT);
pinMode(SSD1351_CS, OUTPUT);
pinMode(SSD1351_DC, OUTPUT);
digitalWriteFast(SSD1351_R, 1);
digitalWriteFast(SSD1351_CS, 1);
digitalWriteFast(SSD1351_D, 1);
}
void ssd1351_setpin_reset(int state) {
if (state)
digitalWriteFast(SSD1351_R, 0);
else
digitalWriteFast(SSD1351_R, 1);
}
void ssd1351_acquire_bus(void) {
SPI.beginTransaction(settings);
digitalWriteFast(SSD1351_CS, 0);
}
void ssd1351_release_bus(void) {
digitalWriteFast(SSD1351_CS, 1);
SPI.endTransaction();
}
void ssd1351_write_cmd(unsigned char index) {
digitalWriteFast(SSD1351_DC, 0);
SPI.transfer(index);
digitalWriteFast(SSD1351_DC, 1);
}
void ssd1351_write_data(unsigned char data) {
SPI.transfer(data);
}

View File

@ -0,0 +1,35 @@
/*
* This file is subject to the terms of the GFX License. If a copy of
* the license was not distributed with this file, you can obtain one at:
*
* http://ugfx.org/license.html
*/
#ifndef _GDISP_LLD_BOARD_H
#define _GDISP_LLD_BOARD_H
#ifdef __cplusplus
extern "C" {
#endif // __cplusplus
extern void ssd1351_init_board(void);
extern void ssd1351_setpin_reset(int state);
extern void ssd1351_acquire_bus(void);
extern void ssd1351_release_bus(void);
extern void ssd1351_write_cmd(unsigned char index);
extern void ssd1351_write_data(unsigned char data);
#define init_board(g) ssd1351_init_board()
#define post_init_board(g)
#define setpin_reset(g, s) ssd1351_setpin_reset(s)
#define set_backlight(g, p)
#define acquire_bus(g) ssd1351_acquire_bus()
#define release_bus(g) ssd1351_release_bus()
#define write_cmd(g, i) ssd1351_write_cmd(i)
#define write_data(g, d) ssd1351_write_cmd(d)
#ifdef __cplusplus
}
#endif // __cplusplus
#endif /* _GDISP_LLD_BOARD_H */