📄 display.c
字号:
//************************************************************************
// Datei: display.c
// Hauptprogramm
//
// Demoprogramm um Text und Grafik auf
// KS108 Grafik-LCD-Display anzuzeigen
// Display: Displaytech 64240A 240x64 Pixel
//
// Erl鋟terungen zu den Funktionen stehen in den entsprechenden
// *.c Dateien.
//
// hk@holger-klabunde.de
// http://www.holger-klabunde.de
// 04.10.2003
// Compiler WinAVR 3.3
//************************************************************************
// Prozessor: ATMega128
//************************************************************************
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
#include <stdlib.h>
#include <string.h>
#include "protos.h"
#include "paul.h"
#include "demo.h"
//#include "serial.h"
int main(void)
{
//1 ist Ausgang
//0 ist Eingang
int i;
// ser_init(); //Serielle Schnittstelle einstellen
sei(); //enable interrupts
DisplayOn();
//Beginn Endlosschleife
while(1)
{
ClearScreen();
SetGCursor(0,0);
DrawLineAbs(239,0,0); //Die 0 hinten hei遲 letzte Position merken
Delay1ms(250);
DrawLineAbs(239,63,0);
Delay1ms(250);
DrawLineAbs(0,0,0); //ergibt ein gro遝s Dreieck
Delay1ms(250);
SetGCursor(200,32);
DrawLineRel(-10,-10,1); //Die 1 hinten hei遲 letzte Position NICHT merken
Delay1ms(250);
DrawLineRel(5,-10,1); //Strahlen zeichnen, alle mit demselben Ausgangspunkt
Delay1ms(250);
DrawLineRel(-10,5,1);
Delay1ms(250);
DrawLineRel(20,10,1);
Delay1ms(250);
SetGCursor(0,55);
for(i=0; i<9; i++) //Eine merkw黵dige Achse zeichnen
{
DrawLineRel(0,-5,1); //Strich nach oben, Cursor nicht 鋘dern
Delay1ms(250);
DrawLineRel(5,5,1); //Strich nach rechts unten, Cursor nicht 鋘dern
Delay1ms(250);
DrawLineRel(10,-3,0);//Strich nach rechts oben, letzte Position merken
Delay1ms(250);
}
Delay1ms(3000);
ClearScreen();
Circle(60,32,30,6); //Kreisrand nicht geschlossen
Circle(60,32,20,3); //Kreisrand geschlossen
Circle(60,32,10,3); //Kreisrand geschlossen
FillCircle(140,32,30,2); //Bei step=3 gibts L鋘gsstreifen im Kreis
FillCircle(180,10,10,6); //Keine L鋘gsstreifen im Kreis
FillCircle(200,40,20,3); //Keine L鋘gsstreifen im Kreis
Delay1ms(3000);
ClearScreen();
LoadBitmap(paulbmp, 0 , 0, paulWIDTH, paulHEIGHT); //Bitmap laden
LoadBitmap(paulbmp, 121 , 0, paulWIDTH, paulHEIGHT); //Noch eine Bitmap laden
LoadBitmap(paulbmp, 199 , 32, paulWIDTH, paulHEIGHT);
Delay1ms(3000);
ClearScreen();
LoadBitmap(demobmp, 0 , 0, demoWIDTH, demoHEIGHT); //Bitmap f黮lt ganzes Display
Delay1ms(3000);
ClearScreen();
DrawRect(0,0,LCD_WIDTH,LCD_HEIGHT); //Ganzen Bildschirm mit 3 Pixel Breite umranden
DrawRect(1,1,LCD_WIDTH-2,LCD_HEIGHT-2);
DrawRect(2,2,LCD_WIDTH-4,LCD_HEIGHT-4);
FillRect(5,5,LCD_WIDTH-10,LCD_HEIGHT-10); //Gro遝 Fl鋍he f黮len, flimmert es ? ;)
Delay1ms(3000);
ClearScreen();
DrawRect(0,0,LCD_WIDTH,LCD_HEIGHT);
DrawLine(0,0,LCD_WIDTH,LCD_HEIGHT); //Schr鋑e Linien zeichnen links nach rechts
DrawLine(LCD_WIDTH,0,0,LCD_HEIGHT); //und andersrum
DrawLine(0,0,LCD_WIDTH/2,LCD_HEIGHT); //Schr鋑e Linien zeichnen links nach rechts
DrawLine(LCD_WIDTH/2,0,0,LCD_HEIGHT); //und andersrum
DrawLine(LCD_WIDTH/2,0,LCD_WIDTH,LCD_HEIGHT); //Schr鋑e Linien zeichnen links nach rechts
DrawLine(LCD_WIDTH,0,LCD_WIDTH/2,LCD_HEIGHT); //und andersrum
Delay1ms(3000);
ClearScreen();
//Software Fonts. Schreiben ist langsam, daf黵 auf einen Pixel genau plazierbar
SetFont(4);
//Umlaute unter Windows hier im DOS-Modus eintippen !
LCDSoftText("F16x8a SoftFont gjqy剶亷櫄
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -