parent
dd5b101589
commit
76e3cf789f
|
@ -3,7 +3,6 @@
|
||||||
#include "lpc134x.h"
|
#include "lpc134x.h"
|
||||||
#include "gpio/gpio.h"
|
#include "gpio/gpio.h"
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/*!
|
/*!
|
||||||
Approximates a 1 millisecond delay using "nop". This is less
|
Approximates a 1 millisecond delay using "nop". This is less
|
||||||
|
@ -30,14 +29,22 @@ void delayms(uint32_t ms)
|
||||||
/* Utility routines to manage nokia display */
|
/* Utility routines to manage nokia display */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
|
|
||||||
uint8_t buffer[RESX*RESY_B];
|
uint8_t lcdBuffer[RESX*RESY_B];
|
||||||
|
|
||||||
|
/*
|
||||||
|
//TODO FIXME why doenst that work ?
|
||||||
|
#define CS RB_LCD_CS
|
||||||
|
#define SCK RB_SPI_SCK
|
||||||
|
#define SDA RB_SPI_MOSI
|
||||||
|
#define RST RB_LCD_RST
|
||||||
|
*/
|
||||||
|
|
||||||
#define CS 2,1
|
#define CS 2,1
|
||||||
#define SCK 0,10
|
#define SCK 0,10
|
||||||
#define SDA 0,9
|
#define SDA 0,9
|
||||||
#define RST 2,2
|
#define RST 2,2
|
||||||
|
|
||||||
void write(uint8_t cd, uint8_t data)
|
void lcdWrite(uint8_t cd, uint8_t data)
|
||||||
{
|
{
|
||||||
uint8_t i;
|
uint8_t i;
|
||||||
|
|
||||||
|
@ -67,7 +74,7 @@ void write(uint8_t cd, uint8_t data)
|
||||||
//delayms(0);
|
//delayms(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void read(uint8_t data)
|
void lcdRead(uint8_t data)
|
||||||
{
|
{
|
||||||
uint8_t i;
|
uint8_t i;
|
||||||
|
|
||||||
|
@ -106,7 +113,7 @@ void read(uint8_t data)
|
||||||
delayms(1);
|
delayms(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void init(void)
|
void lcdInit(void)
|
||||||
{
|
{
|
||||||
IOCON_SWCLK_PIO0_10 = 0x51;
|
IOCON_SWCLK_PIO0_10 = 0x51;
|
||||||
|
|
||||||
|
@ -124,34 +131,36 @@ void init(void)
|
||||||
gpioSetValue(RST, 1);
|
gpioSetValue(RST, 1);
|
||||||
delayms(100);
|
delayms(100);
|
||||||
|
|
||||||
write(0,0xE2);
|
lcdWrite(0,0xE2);
|
||||||
delayms(5);
|
delayms(5);
|
||||||
write(0,0xAF);
|
lcdWrite(0,0xAF);
|
||||||
write(0,0xA4);
|
lcdWrite(0,0xA4);
|
||||||
write(0,0x2F);
|
lcdWrite(0,0x2F);
|
||||||
write(0,0xB0);
|
lcdWrite(0,0xB0);
|
||||||
write(0,0x10);
|
lcdWrite(0,0x10);
|
||||||
write(0,0x00);
|
lcdWrite(0,0x00);
|
||||||
|
|
||||||
uint16_t i;
|
uint16_t i;
|
||||||
for(i=0; i<100; i++)
|
for(i=0; i<100; i++)
|
||||||
write(1,0x00);
|
lcdWrite(1,0x00);
|
||||||
}
|
}
|
||||||
|
|
||||||
void fill(char f){
|
void lcdFill(char f){
|
||||||
int x;
|
int x;
|
||||||
for(x=0;x<RESX*RESY_B;x++)
|
for(x=0;x<RESX*RESY_B;x++) {
|
||||||
buffer[x]=f;
|
lcdBuffer[x]=f;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
void display(uint32_t shift)
|
void lcdDisplay(uint32_t shift)
|
||||||
{
|
{
|
||||||
write(0,0xB0);
|
lcdWrite(0,0xB0);
|
||||||
write(0,0x10);
|
lcdWrite(0,0x10);
|
||||||
write(0,0x00);
|
lcdWrite(0,0x00);
|
||||||
uint16_t i,page;
|
uint16_t i,page;
|
||||||
for(page=0; page<RESY_B;page++)
|
for(page=0; page<RESY_B;page++) {
|
||||||
for(i=0; i<RESX; i++)
|
for(i=0; i<RESX; i++) {
|
||||||
write(1,buffer[page*RESX+((i+shift)%RESX)]);
|
lcdWrite(1,lcdBuffer[page*RESX+((i+shift)%RESX)]);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -15,12 +15,12 @@
|
||||||
|
|
||||||
|
|
||||||
/* Display buffer */
|
/* Display buffer */
|
||||||
extern uint8_t buffer[RESX*RESY_B];
|
extern uint8_t lcdBuffer[RESX*RESY_B];
|
||||||
|
|
||||||
void write(uint8_t cd, uint8_t data);
|
void lcdWrite(uint8_t cd, uint8_t data);
|
||||||
void read(uint8_t data);
|
void lcdRead(uint8_t data);
|
||||||
void init(void);
|
void lcdInit(void);
|
||||||
void fill(char f);
|
void lcdFill(char f);
|
||||||
void display(uint32_t shift);
|
void lcdDisplay(uint32_t shift);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -100,7 +100,7 @@ int DoChar(int sx, int sy, char c){
|
||||||
flip(mask);
|
flip(mask);
|
||||||
|
|
||||||
for(int m=1;m<=preblank;m++){
|
for(int m=1;m<=preblank;m++){
|
||||||
buffer[(rx-dmul*(m))+(yidx+y)*RESX]&=~mask;
|
lcdBuffer[(rx-dmul*(m))+(yidx+y)*RESX]&=~mask;
|
||||||
};
|
};
|
||||||
for(x=0;x<width;x++){
|
for(x=0;x<width;x++){
|
||||||
unsigned char b1,b2;
|
unsigned char b1,b2;
|
||||||
|
@ -117,11 +117,11 @@ int DoChar(int sx, int sy, char c){
|
||||||
if(font_direction==FONT_DIR_LTR)
|
if(font_direction==FONT_DIR_LTR)
|
||||||
flip(byte);
|
flip(byte);
|
||||||
|
|
||||||
buffer[(rx+dmul*x)+(yidx+y)*RESX]&=~mask;
|
lcdBuffer[(rx+dmul*x)+(yidx+y)*RESX]&=~mask;
|
||||||
buffer[(rx+dmul*x)+(yidx+y)*RESX]|=byte;
|
lcdBuffer[(rx+dmul*x)+(yidx+y)*RESX]|=byte;
|
||||||
};
|
};
|
||||||
for(int m=0;m<blank;m++){
|
for(int m=0;m<blank;m++){
|
||||||
buffer[(rx+dmul*(x+m))+(yidx+y)*RESX]&=~mask;
|
lcdBuffer[(rx+dmul*(x+m))+(yidx+y)*RESX]&=~mask;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
return sx-dmul*(x+preblank+blank);
|
return sx-dmul*(x+preblank+blank);
|
||||||
|
|
13
main.c
13
main.c
|
@ -1,12 +1,13 @@
|
||||||
#include <sysinit.h>
|
#include <sysinit.h>
|
||||||
|
|
||||||
|
#include "basic/basic.h"
|
||||||
|
|
||||||
#include "lcd/render.h"
|
#include "lcd/render.h"
|
||||||
#include "lcd/smallfonts.h"
|
#include "lcd/smallfonts.h"
|
||||||
#include "lcd/ubuntu18.h"
|
#include "lcd/ubuntu18.h"
|
||||||
|
|
||||||
#include "pmu/pmu.h"
|
#include "pmu/pmu.h"
|
||||||
#include "eeprom/eeprom.h"
|
#include "eeprom/eeprom.h"
|
||||||
#include "basic/basic.h"
|
|
||||||
|
|
||||||
void ReinvokeISP(void);
|
void ReinvokeISP(void);
|
||||||
|
|
||||||
|
@ -22,7 +23,7 @@ int main(void) {
|
||||||
// initialise basic badge functions
|
// initialise basic badge functions
|
||||||
rbInit();
|
rbInit();
|
||||||
|
|
||||||
init(); // display
|
lcdInit(); // display
|
||||||
|
|
||||||
//Make PIO1_11 an analog input
|
//Make PIO1_11 an analog input
|
||||||
gpioSetDir(RB_LED3, gpioDirection_Input);
|
gpioSetDir(RB_LED3, gpioDirection_Input);
|
||||||
|
@ -30,8 +31,8 @@ int main(void) {
|
||||||
|
|
||||||
adcInit();
|
adcInit();
|
||||||
|
|
||||||
fill(255);
|
lcdFill(255);
|
||||||
display(0);
|
lcdDisplay(0);
|
||||||
uint32_t j=0;
|
uint32_t j=0;
|
||||||
|
|
||||||
//disable the JTAG on PIO3_3
|
//disable the JTAG on PIO3_3
|
||||||
|
@ -56,7 +57,7 @@ int main(void) {
|
||||||
uint8_t eeprom_val = 0;
|
uint8_t eeprom_val = 0;
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
display(j);
|
lcdDisplay(j);
|
||||||
delayms(10);
|
delayms(10);
|
||||||
|
|
||||||
font=fonts[fontctr];
|
font=fonts[fontctr];
|
||||||
|
@ -93,7 +94,7 @@ int main(void) {
|
||||||
while(gpioGetValue(RB_LED3) == 0){
|
while(gpioGetValue(RB_LED3) == 0){
|
||||||
};
|
};
|
||||||
gpioSetValue (RB_LED3, 1);
|
gpioSetValue (RB_LED3, 1);
|
||||||
fill(255);
|
lcdFill(255);
|
||||||
fontctr++;
|
fontctr++;
|
||||||
if(fontctr > 2) {
|
if(fontctr > 2) {
|
||||||
fontctr = 0;
|
fontctr = 0;
|
||||||
|
|
Loading…
Reference in New Issue