#include #include #include #include #include #include #include "global.h" #include "lcd.h" #include "uart.h" #include "spi_mem_drv.h" //*************************************************************************** //* * //* LCD Controller für 320x240 LCD * //* * //* mit UART * //* * //* Version 1.3 * //* * //* © by Benedikt * //* * //* 8 Graustufen by Sebastian * //* * //* Email: benedikt83 ät gmx.net * //* * //*************************************************************************** //* * //* Die Software darf frei kopiert und verändert werden, solange sie nicht * //* ohne meine Erlaubnis für kommerzielle Zwecke eingesetzt wird. * //* * //*************************************************************************** #define XTAL_CPU 16000000UL //#define UART_BAUD_RATE 19200 //#define UART_BAUD_RATE 38400 //#define UART_BAUD_RATE 57600 //#define UART_BAUD_RATE 250000 //#define UART_BAUD_RATE 500000 //#define UART_BAUD_RATE 666666 #define UART_BAUD_RATE 1000000 //#define UART_BAUD_RATE 2000000 #if ((defined(COMMAND_TIMEOUT))&&(COMMAND_TIMEOUT>0)) volatile unsigned char ctimeout; #endif #define DOTIMEOUT() ctimeout=COMMAND_TIMEOUT; while (!uart_data()) if (!ctimeout) goto mainloop int main(void) __attribute__((OS_main)); int main(void) { PORTA=255; PORTC=255; PORTD=7; DDRB=255; DDRD=254; DDRE=255; lcd_init(); // LCD Controller initialisieren uart_init(UART_BAUD(UART_BAUD_RATE, XTAL_CPU),UART_BAUD_U2X(UART_BAUD_RATE, XTAL_CPU)); unsigned char c; //ypos=0; // unsigned short xpos=0, xoffs=0; // unsigned char textcol=255, backcol=0; mainloop: for (;;) { c = uart_getchar(); if (c==16) // Load BMP { unsigned char x,y,c; if (uart_getchar()==0xAA) { for (y=0; y<240; y++) { for (x=0; x<40; x++) { #if ((defined(COMMAND_TIMEOUT))&&(COMMAND_TIMEOUT>0)) DOTIMEOUT(); #endif c=uart_getchar(); lcd_writebyte(x,y,c); } } } } } }