Code:
#include <avr/io.h>
#include <stdint.h>
#include <avr/pgmspace.h>
// Das Bild (Array-Größe: 2864 Bytes)
const uint8_t picLogo[] PROGMEM = {
220, 100, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 252, 1, 255, 255, 255, 255, 255, 240,
..., ..., ..., ..., ..., ..., ..., ..., ..., ...,
..., ..., ..., ..., ..., ..., ..., ..., ..., ...,
}
int main(void)
{
// UART TX einschalten, Asynchron 8N1
UCSRB |= (1<<TXEN);
UCSRC |= (1<<URSEL)|(3<<UCSZ0);
//Baudrate einstellen, 9600
UBRRH = UBRR_VAL >> 8;
UBRRL = UBRR_VAL & 0xFF;
// Initialisierung des Display-ICs
uart_send('U');
uart_send(9);
uart_send(14);
// Ausgabe des Bildes
for(int i=1; i<2864; i++){
uart_send(pgm_read_byte(&picLogo[i]));
}
}
// Einfache Funktion zum Senden einzelner Bytes
int uart_send(unsigned char c) {
while (!(UCSRA & (1<<UDRE))) {}
UDR = c;
return 0;
}
Wäre mein Vorhaben so in etwa möglich? Die passende Schaltung habe ich leider nicht zur Hand und muss mich auch noch ein paar mehr Tage gedulden, aber es schadet sicherlich nicht, sich schonmal mit der Theorie zu befassen...
Lesezeichen