mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-21 13:53:55 -07:00
summer restructuring:
* .h include only the strict minimum for their own parsing * this forces all files to include explicitment their needs and not count on far streched dependencies * this helps Makefile to rebuild only the minimum * according to this rule, most standalone .h are now gone * big app.h is gone * remove seldom __cplusplus, if c++ happens, everything will have to be done properly anyway * all unrequired include were removed * split common/ into common/ (client+arm) and common_arm/ (os+bootloader) * bring zlib to common/ * bring stuff not really/not yet used in common back to armsrc/ or client/ * bring liblua into client/ * bring uart into client/ * move some portions of code around (dbprint, protocols,...) * rename unused files into *_disabled.[ch] to make it explicit * rename soft Uarts between 14a, 14b and iclass, so a standalone could use several without clash * remove PrintAndLogDevice * move deprecated-hid-flasher from client to tools * Makefiles * treat deps in armsrc/ as in client/ * client: stop on warning (-Werror), same as for armsrc/ Tested on: * all standalone modes * Linux
This commit is contained in:
parent
b7d412d27b
commit
d19754567d
447 changed files with 2553 additions and 2599 deletions
140
armsrc/LCD_disabled.c
Normal file
140
armsrc/LCD_disabled.c
Normal file
|
@ -0,0 +1,140 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// This code is licensed to you under the terms of the GNU GPL, version 2 or,
|
||||
// at your option, any later version. See the LICENSE.txt file for the text of
|
||||
// the license.
|
||||
//-----------------------------------------------------------------------------
|
||||
// LCD code
|
||||
//-----------------------------------------------------------------------------
|
||||
#include "LCD.h"
|
||||
|
||||
void LCDSend(unsigned int data) {
|
||||
// 9th bit set for data, clear for command
|
||||
while ((AT91C_BASE_SPI->SPI_SR & AT91C_SPI_TXEMPTY) == 0); // wait for the transfer to complete
|
||||
// For clarity's sake we pass data with 9th bit clear and commands with 9th
|
||||
// bit set since they're implemented as defines, se we need to invert bit
|
||||
AT91C_BASE_SPI->SPI_TDR = data ^ 0x100; // Send the data/command
|
||||
}
|
||||
|
||||
void LCDSetXY(unsigned char x, unsigned char y) {
|
||||
LCDSend(PPASET); // page start/end ram
|
||||
LCDSend(y); // Start Page to display to
|
||||
LCDSend(131); // End Page to display to
|
||||
|
||||
LCDSend(PCASET); // column start/end ram
|
||||
LCDSend(x); // Start Column to display to
|
||||
LCDSend(131); // End Column to display to
|
||||
}
|
||||
|
||||
void LCDSetPixel(unsigned char x, unsigned char y, unsigned char color) {
|
||||
LCDSetXY(x, y); // Set position
|
||||
LCDSend(PRAMWR); // Now write the pixel to the display
|
||||
LCDSend(color); // Write the data in the specified Color
|
||||
}
|
||||
|
||||
void LCDFill(unsigned char xs, unsigned char ys, unsigned char width, unsigned char height, unsigned char color) {
|
||||
unsigned char i, j;
|
||||
|
||||
for (i = 0; i < height; i++) { // Number of horizontal lines
|
||||
LCDSetXY(xs, ys + i); // Goto start of fill area (Top Left)
|
||||
LCDSend(PRAMWR); // Write to display
|
||||
|
||||
for (j = 0; j < width; j++) // pixels per line
|
||||
LCDSend(color);
|
||||
}
|
||||
}
|
||||
|
||||
void LCDString(char *lcd_string, const char *font_style, unsigned char x, unsigned char y, unsigned char fcolor, unsigned char bcolor) {
|
||||
unsigned int i;
|
||||
unsigned char mask = 0, px, py, xme, yme, offset;
|
||||
const char *data;
|
||||
|
||||
data = font_style; // point to the start of the font table
|
||||
|
||||
xme = *data; // get font x width
|
||||
data++;
|
||||
yme = *data; // get font y length
|
||||
data++;
|
||||
offset = *data; // get data bytes per font
|
||||
|
||||
do {
|
||||
// point to data in table to be loaded
|
||||
data = (font_style + offset) + (offset * (int)(*lcd_string - 32));
|
||||
|
||||
for (i = 0; i < yme; i++) {
|
||||
mask |= 0x80;
|
||||
|
||||
for (px = x; px < (x + xme); px++) {
|
||||
py = y + i;
|
||||
|
||||
if (*data & mask) LCDSetPixel(px, py, fcolor);
|
||||
else LCDSetPixel(px, py, bcolor);
|
||||
|
||||
mask >>= 1;
|
||||
}
|
||||
data++;
|
||||
}
|
||||
x += xme;
|
||||
|
||||
lcd_string++; // next character in string
|
||||
|
||||
} while (*lcd_string != '\0'); // keep spitting chars out until end of string
|
||||
}
|
||||
|
||||
void LCDReset(void) {
|
||||
LED_A_ON();
|
||||
SetupSpi(SPI_LCD_MODE);
|
||||
LOW(GPIO_LRST);
|
||||
SpinDelay(100);
|
||||
|
||||
HIGH(GPIO_LRST);
|
||||
SpinDelay(100);
|
||||
LED_A_OFF();
|
||||
}
|
||||
|
||||
void LCDInit(void) {
|
||||
int i;
|
||||
|
||||
LCDReset();
|
||||
|
||||
LCDSend(PSWRESET); // software reset
|
||||
SpinDelay(100);
|
||||
LCDSend(PSLEEPOUT); // exit sleep mode
|
||||
LCDSend(PBSTRON); // booster on
|
||||
LCDSend(PDISPON); // display on
|
||||
LCDSend(PNORON); // normal on
|
||||
LCDSend(PMADCTL); // rotate display 180 deg
|
||||
LCDSend(0xC0);
|
||||
|
||||
LCDSend(PCOLMOD); // color mode
|
||||
LCDSend(0x02); // 8bpp color mode
|
||||
|
||||
LCDSend(PSETCON); // set contrast
|
||||
LCDSend(0xDC);
|
||||
|
||||
// clear display
|
||||
LCDSetXY(0, 0);
|
||||
LCDSend(PRAMWR); // Write to display
|
||||
i = LCD_XRES * LCD_YRES;
|
||||
while (i--) LCDSend(WHITE);
|
||||
|
||||
// test text on different colored backgrounds
|
||||
LCDString(" The quick brown fox ", (char *)&FONT6x8, 1, 1 + 8 * 0, WHITE, BLACK);
|
||||
LCDString(" jumped over the ", (char *)&FONT6x8, 1, 1 + 8 * 1, BLACK, WHITE);
|
||||
LCDString(" lazy dog. ", (char *)&FONT6x8, 1, 1 + 8 * 2, YELLOW, RED);
|
||||
LCDString(" AaBbCcDdEeFfGgHhIiJj ", (char *)&FONT6x8, 1, 1 + 8 * 3, RED, GREEN);
|
||||
LCDString(" KkLlMmNnOoPpQqRrSsTt ", (char *)&FONT6x8, 1, 1 + 8 * 4, MAGENTA, BLUE);
|
||||
LCDString("UuVvWwXxYyZz0123456789", (char *)&FONT6x8, 1, 1 + 8 * 5, BLUE, YELLOW);
|
||||
LCDString("`-=[]_;',./~!@#$%^&*()", (char *)&FONT6x8, 1, 1 + 8 * 6, BLACK, CYAN);
|
||||
LCDString(" _+{}|:\\\"<>? ", (char *)&FONT6x8, 1, 1 + 8 * 7, BLUE, MAGENTA);
|
||||
|
||||
// color bands
|
||||
LCDFill(0, 1 + 8 * 8, 132, 8, BLACK);
|
||||
LCDFill(0, 1 + 8 * 9, 132, 8, WHITE);
|
||||
LCDFill(0, 1 + 8 * 10, 132, 8, RED);
|
||||
LCDFill(0, 1 + 8 * 11, 132, 8, GREEN);
|
||||
LCDFill(0, 1 + 8 * 12, 132, 8, BLUE);
|
||||
LCDFill(0, 1 + 8 * 13, 132, 8, YELLOW);
|
||||
LCDFill(0, 1 + 8 * 14, 132, 8, CYAN);
|
||||
LCDFill(0, 1 + 8 * 15, 132, 8, MAGENTA);
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue