#include <sysdefs.h>
#include <lpc134x.h>
+#ifdef R0KET
+
#include <r0ketports.h>
+#define CS_LOW() gpioSetValue(RB_LCD_CS , 0)
+#define CS_HIGH() gpioSetValue(RB_LCD_CS , 1)
+#define RST_LOW() gpioSetValue(RB_LCD_RST, 0)
+#define RST_HIGH() gpioSetValue(RB_LCD_RST, 1)
+
+#else
+
+#include <badge/pinconfig.h>
+
+#define CS_LOW() gpioSetValue(HOB_PORT(HOB_LCD_CS ), HOB_PIN(HOB_LCD_CS ), 0)
+#define CS_HIGH() gpioSetValue(HOB_PORT(HOB_LCD_CS ), HOB_PIN(HOB_LCD_CS ), 1)
+#define RST_LOW() gpioSetValue(HOB_PORT(HOB_LCD_RST), HOB_PIN(HOB_LCD_RST), 0)
+#define RST_HIGH() gpioSetValue(HOB_PORT(HOB_LCD_RST), HOB_PIN(HOB_LCD_RST), 1)
+
+#endif
+
#ifdef CFG_USBMSC
#include <core/usbhid-rom/usbmsc.h>
| SSP_SSP0CR0_FRF_SPI // Frame format = SPI
| SSP_SSP0CR0_SCR_8); // Serial clock rate = 8
SSP_SSP0CR0 = configReg;
- gpioSetValue(RB_LCD_CS, 0);
+
+ CS_LOW();
}
static void lcd_deselect() {
- gpioSetValue(RB_LCD_CS, 1);
+ CS_HIGH();
/* reset the bus to 8-Bit frames that everyone else uses */
uint32_t configReg = ( SSP_SSP0CR0_DSS_8BIT // Data size = 8-bit
| SSP_SSP0CR0_FRF_SPI // Frame format = SPI
void badge_display_init(void) {
sspInit(0, sspClockPolarity_Low, sspClockPhase_RisingEdge);
- gpioSetValue(RB_LCD_CS , 1);
- gpioSetValue(RB_LCD_RST, 1);
-
- gpioSetDir (RB_LCD_CS , gpioDirection_Output);
- gpioSetDir (RB_LCD_RST, gpioDirection_Output);
+ CS_HIGH();
+ RST_HIGH();
systickDelay(100);
- gpioSetValue(RB_LCD_RST, 0);
+ RST_LOW();
systickDelay(100);
- gpioSetValue(RB_LCD_RST, 1);
+ RST_HIGH();
systickDelay(100);
/*
int id = lcdRead(220);
* 10: set x address (upper bits): X[6-4] = 0
*/
static uint8_t const initseq[]= { 0xE2, 0xAF, // Display ON
- // 0xA1, // Mirror-X
- 0xc8, // mirror-y
+ 0xA1, // Mirror-X
+ //0xc8, // mirror-y
0xa7, // invert (1 = black)
0xA4, 0x2F,
+ // 0x9f, 0x24
0xB0, 0x10,
- 0x9f, 0x24 };
+ };
for(uint8_t i = 0; i < sizeof(initseq); ++i){
lcd_write_command(initseq[i]);
systickDelay(5);
lcd_write_command(0x00);
- for(int i = 0; i < 9 * 96; ++i) {
+ for(int i = 0; i < BADGE_DISPLAY_STRIPE_COUNT * BADGE_DISPLAY_WIDTH; ++i) {
lcd_write_data(fb->data[0][i]);
}