📄 main.c
字号:
#include <inttypes.h>
#include "..\lfsr\lfsr.h"
#include "..\lib\glcd.h"
#ifdef USE_FONTS
#include "..\font\nums.h"
#include "..\font\eye.h"
#include "..\font\f8x11.h"
#endif
void testEye(void) {
#ifdef eye_H
uint8_t k = (lfsr(4) % 3) + 1;
glcdSelectFont(eye, glcdFontRead);
glcdSetColor(0, NONE);
glcdSetColor(1, lfsr(8));
glcdSetColor(2, lfsr(8));
glcdSetColor(3, lfsr(8));
glcdSetColor(1 + (k +1) % 3, NONE);
for (uint8_t i = 0; i < 64; i++) {
glcdSetColor(k, lfsr(8));
glcdMoveTo((SCREEN_RIGHT - glcd_FontWidth) / 2, (SCREEN_BOTTOM - glcd_FontHeight) / 2);
glcdDrawChar(0x20);
}
#endif
}
void testSymbols(uint8_t iteration) {
#ifdef nums_H
glcdSelectFont(nums, glcdFontRead);
glcdSetBkColor(NONE);
for (; iteration > 0; iteration--) {
glcdClearScreen();
for (uint8_t i = 0; i < 255; i++) {
glcdSetColor(1, lfsr(8));
glcdSetColor(2, lfsr(8));
glcdSetColor(3, lfsr(8));
glcdMoveTo(lfsr(7), lfsr(7));
glcdDrawChar(lfsr(4) % 11 + 32);
}
}
#endif
}
#ifdef USE_LINES
void testLines(uint8_t iteration) {
glcdSelectFont(nums, glcdFontRead);
for (uint8_t i = 0; i < iteration; i++) {
glcdClearScreen();
glcdSetColor(0, SCREEN_COLOR);
glcdSetColor(1, BLACK);
glcdSetColor(2, GOLD);
glcdSetColor(3, RED);
glcdMoveTo((SCREEN_RIGHT - glcd_FontWidth) / 2, (SCREEN_BOTTOM - glcd_FontHeight) / 2);
glcdDrawChar(0x20 + i % 11);
for (glcdCoord_t x = SCREEN_LEFT; x < SCREEN_WIDTH; x++) {
glcdSetFgColor(YELLOW);
glcdLine(x, SCREEN_TOP, x, SCREEN_BOTTOM);
glcdSetFgColor(GREEN);
glcdLine(SCREEN_WIDTH - x, SCREEN_TOP, SCREEN_WIDTH - x, SCREEN_BOTTOM);
glcdSetFgColor(BLUE);
glcdLine(SCREEN_LEFT, SCREEN_TOP, x, SCREEN_BOTTOM);
glcdSetFgColor(RED);
glcdLine(SCREEN_RIGHT, SCREEN_BOTTOM, SCREEN_WIDTH - x, SCREEN_TOP);
}
}
}
void testLines2(uint8_t iteration) {
for (uint8_t i = 0; i < iteration; i++) {
glcdClearScreen();
for (uint8_t j = 0; j < 255; j++) {
glcdSetFgColor(lfsr(8));
glcdLine(lfsr(7) +2, lfsr(7) +2, lfsr(7) +2, lfsr(7) +2);
}
}
}
#endif
void testRects(uint8_t iteration) {
for (; iteration > 0; iteration--) {
glcdClearScreen();
for (uint8_t i = 0; i < 255; i++) {
glcdSetColors(lfsr(8), lfsr(8));
glcdRectangle(lfsr(7) +2, lfsr(7) +2, lfsr(7) +2, lfsr(7) +2);
}
}
}
#ifdef USE_ELLIPSES
void testEllipses(uint8_t iteration) {
for (; iteration > 0; iteration--) {
glcdClearScreen();
for (uint8_t i = 0; i < 255; i++) {
glcdSetColors(lfsr(8), lfsr(8));
glcdEllipse(lfsr(7) +2, lfsr(7) +2, lfsr(6), lfsr(6));
}
}
}
#endif
int main(void) {
#define COUNT 2
glcdDisplayInit();
glcdClearScreen();
glcdSetOrientation(0);
glcdSelectFont(f8x11, glcdFontRead);
glcdSetBkColor(YELLOW);
glcdFrame(0, 0, 97, 66);
glcdSetRect(glcd_Window, 1, 1, 95, 64);
glcdMoveTo(glcd_Window.X1, glcd_Window.Y1 +4);
glcdPrint_P(PSTR("Nokia 3510i\nDisplay Test\nby\nBluemidi"));
glcdWait(5000);
while (1) {
testRects(COUNT);
testEye();
#ifdef USE_LINES
testLines(COUNT);
testEye();
testLines2(COUNT);
testEye();
#endif
#ifdef USE_ELLIPSES
testEllipses(COUNT);
testEye();
#endif
testSymbols(COUNT);
testEye();
// setze Clipping zur點k auf vollen Screen
glcdSetRect(glcd_Clip, SCREEN_LEFT, SCREEN_TOP, SCREEN_RIGHT, SCREEN_BOTTOM);
glcdClearScreen();
// 鋘dere Display Orientation zuf鋖lig
glcdSetOrientation(lfsr(3));
if (lfsr(3)) {
// erzeuge neues zuf鋖liges Clipping in einem Rechteck mit schwarzem Rahmen
glcdCoord_t x1,y1,x2,y2;
while(1) {
x1 = lfsr(5);
y1 = lfsr(5);
x2 = x1 + lfsr(7);
y2 = y1 + lfsr(7);
if ((x1 + 20 < x2) & (y1 + 20 < y2) & (x1 > 1) & (y1 > 1) & (x2 < SCREEN_RIGHT) & (y2 < SCREEN_BOTTOM)) break;
}
// nun Rechteck um das Clipping zeichnen
glcdSetBkColor(NONE);
glcdSetFgColor(BLACK);
glcdRectangle(x1, y1, x2, y2);
// die Clipping-Koordinaten m黶sen abh鋘gig von der Display Orientation angepasst werden !!
if (glcd_MemCtrl && (1 << MEM_90) == 0) {
glcdSwapCoord(x1, y1);
glcdSwapCoord(x2, y2);
}
glcdSetRect(glcd_Clip, ++x1, ++y1, --x2, --y2);
}
}
return(0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -