Hallo,
ich bastel zur Zeit an der Ansteuerung eines Grafikdisplays.
Um genau zu sein, ist das meine Vorlage:
http://www.mikrocontroller.net/topic/92704#795168

Datenblatt:
http://www.mikrocontroller.net/attac..._LT_E9_372.pdf

Ich nutze das selbe Display und verfolge das selbe Ziel.
Mit einem Mega8 @16MHz dieses Display möglichst schnell ansteuern.

Genutzt wird eine 8x12 Schrift, das macht dann 40x20 Zeichen.

Das "Problem" ist die Geschwindigkeit, ich komm zur Zeit auf 63,5 Hz.
Das ist eigentlich eine ganze Menge, aber mir noch zu wenig, der AVR soll nämlich auch noch andere Sachen machen können, als Pixel aufs Display werfen

Ich nutze das AVR-Studio 5.1 und der Code wird mit der "-O1" Option optimiert, sonst wären es 13,5Hz

Die Funktionsweise ist recht einfach.
-ein 20x40 Array speichert die Zeichen für das Display
-das Display wird Zeile für Zeile gefüllt
-erst die ersten 4 Pixel des Buchstabens, dann die letzten 4 usw.


Jetzt meine eigentliche Frage, hat jemand eine Idee für die Optimierung?

Zum Schluss noch der Code:

Code:
/*
 *B0-CP
 *B1-LOAD
 *B2-FRAME
 *
 *C0-D0
 *C1-D1
 *C2-D2
 *C3-D3
 *
 *Mega8 @ 16MHz
 */ 

#define CP 0
#define LOAD 1
#define FRAME 2

#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/pgmspace.h>

//8x12 Schrift
//http://www.mikrocontroller.net/topic/54860
//Danke Benedikt!

const unsigned char schrift[256][12] PROGMEM ={
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},    // 0x00
{0x00,0x7E,0xC3,0x81,0xA5,0x81,0xBD,0x99,0xC3,0x7E,0x00,0x00},    // 0x01
{0x00,0x7E,0xFF,0xFF,0xDB,0xFF,0xC3,0xE7,0xFF,0x7E,0x00,0x00},    // 0x02
{0x00,0x00,0x44,0xEE,0xFE,0xFE,0xFE,0x7C,0x38,0x10,0x00,0x00},    // 0x03
{0x00,0x10,0x38,0x7C,0xFE,0xFE,0x7C,0x38,0x10,0x00,0x00,0x00},    // 0x04
{0x00,0x18,0x3C,0x3C,0xFF,0xE7,0xE7,0x18,0x18,0x7E,0x00,0x00},    // 0x05
{0x00,0x18,0x3C,0x7E,0xFF,0xFF,0x7E,0x18,0x18,0x7E,0x00,0x00},    // 0x06
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},    // 0x07
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},    // 0x08
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},    // 0x09
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},    // 0x0A
{0x00,0x3E,0x0E,0x3A,0x72,0xF8,0xCC,0xCC,0xCC,0x78,0x00,0x00},    // 0x0B
{0x00,0x3C,0x66,0x66,0x66,0x3C,0x18,0x7E,0x18,0x18,0x00,0x00},    // 0x0C
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},    // 0x0D
{0x00,0x7F,0x63,0x7F,0x63,0x63,0x63,0x67,0xE7,0xE6,0xC0,0x00},    // 0x0E
{0x00,0x00,0x18,0xDB,0x7E,0xE7,0xE7,0x7E,0xDB,0x18,0x00,0x00},    // 0x0F
{0x00,0x80,0xC0,0xE0,0xF8,0xFE,0xF8,0xE0,0xC0,0x80,0x00,0x00},    // 0x10
{0x00,0x02,0x06,0x0E,0x3E,0xFE,0x3E,0x0E,0x06,0x02,0x00,0x00},    // 0x11
{0x00,0x18,0x3C,0x7E,0x18,0x18,0x18,0x7E,0x3C,0x18,0x00,0x00},    // 0x12
{0x00,0x66,0x66,0x66,0x66,0x66,0x00,0x00,0x66,0x66,0x00,0x00},    // 0x13
{0x00,0x7F,0xDB,0xDB,0xDB,0x7B,0x1B,0x1B,0x1B,0x1B,0x00,0x00},    // 0x14
{0x00,0x7E,0x63,0x30,0x3C,0x66,0x66,0x3C,0x0C,0xC6,0x7E,0x00},    // 0x15
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xFE,0xFE,0x00,0x00},    // 0x16
{0x00,0x18,0x3C,0x7E,0x18,0x18,0x18,0x7E,0x3C,0x18,0x7E,0x00},    // 0x17
{0x00,0x18,0x3C,0x7E,0x18,0x18,0x18,0x18,0x18,0x18,0x00,0x00},    // 0x18
{0x00,0x18,0x18,0x18,0x18,0x18,0x18,0x7E,0x3C,0x18,0x00,0x00},    // 0x19
{0x00,0x00,0x00,0x18,0x0C,0xFE,0x0C,0x18,0x00,0x00,0x00,0x00},    // 0x1A
{0x00,0x00,0x00,0x30,0x60,0xFE,0x60,0x30,0x00,0x00,0x00,0x00},    // 0x1B
{0x00,0x00,0x00,0x00,0xC0,0xC0,0xC0,0xFE,0x00,0x00,0x00,0x00},    // 0x1C
{0x00,0x00,0x00,0x24,0x66,0xFF,0x66,0x24,0x00,0x00,0x00,0x00},    // 0x1D
{0x00,0x00,0x10,0x10,0x38,0x38,0x7C,0x7C,0xFE,0xFE,0x00,0x00},    // 0x1E
{0x00,0x00,0xFE,0xFE,0x7C,0x7C,0x38,0x38,0x10,0x10,0x00,0x00},    // 0x1F
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},    // 0x20
{0x00,0x30,0x78,0x78,0x78,0x30,0x30,0x00,0x30,0x30,0x00,0x00},    // 0x21
{0x00,0x66,0x66,0x66,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00},    // 0x22
{0x00,0x6C,0x6C,0xFE,0x6C,0x6C,0x6C,0xFE,0x6C,0x6C,0x00,0x00},    // 0x23
{0x30,0x30,0x7C,0xC0,0xC0,0x78,0x0C,0x0C,0xF8,0x30,0x30,0x00},    // 0x24
{0x00,0x00,0x00,0xC4,0xCC,0x18,0x30,0x60,0xCC,0x8C,0x00,0x00},    // 0x25
{0x00,0x70,0xD8,0xD8,0x70,0xFA,0xDE,0xCC,0xDC,0x76,0x00,0x00},    // 0x26
{0x00,0x30,0x30,0x30,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00},    // 0x27
{0x00,0x0C,0x18,0x30,0x60,0x60,0x60,0x30,0x18,0x0C,0x00,0x00},    // 0x28
{0x00,0x60,0x30,0x18,0x0C,0x0C,0x0C,0x18,0x30,0x60,0x00,0x00},    // 0x29
{0x00,0x00,0x00,0x66,0x3C,0xFF,0x3C,0x66,0x00,0x00,0x00,0x00},    // 0x2A
{0x00,0x00,0x00,0x18,0x18,0x7E,0x18,0x18,0x00,0x00,0x00,0x00},    // 0x2B
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x38,0x60,0x00},    // 0x2C
{0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x00},    // 0x2D
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x38,0x00,0x00},    // 0x2E
{0x00,0x00,0x02,0x06,0x0C,0x18,0x30,0x60,0xC0,0x80,0x00,0x00},    // 0x2F
{0x00,0x7C,0xC6,0xCE,0xDE,0xD6,0xF6,0xE6,0xC6,0x7C,0x00,0x00},    // 0x30
{0x00,0x10,0x30,0xF0,0x30,0x30,0x30,0x30,0x30,0xFC,0x00,0x00},    // 0x31
{0x00,0x78,0xCC,0xCC,0x0C,0x18,0x30,0x60,0xCC,0xFC,0x00,0x00},    // 0x32
{0x00,0x78,0xCC,0x0C,0x0C,0x38,0x0C,0x0C,0xCC,0x78,0x00,0x00},    // 0x33
{0x00,0x0C,0x1C,0x3C,0x6C,0xCC,0xFE,0x0C,0x0C,0x1E,0x00,0x00},    // 0x34
{0x00,0xFC,0xC0,0xC0,0xC0,0xF8,0x0C,0x0C,0xCC,0x78,0x00,0x00},    // 0x35
{0x00,0x38,0x60,0xC0,0xC0,0xF8,0xCC,0xCC,0xCC,0x78,0x00,0x00},    // 0x36
{0x00,0xFE,0xC6,0xC6,0x06,0x0C,0x18,0x30,0x30,0x30,0x00,0x00},    // 0x37
{0x00,0x78,0xCC,0xCC,0xCC,0x78,0xCC,0xCC,0xCC,0x78,0x00,0x00},    // 0x38
{0x00,0x78,0xCC,0xCC,0xCC,0x7C,0x18,0x18,0x30,0x70,0x00,0x00},    // 0x39
{0x00,0x00,0x00,0x38,0x38,0x00,0x00,0x38,0x38,0x00,0x00,0x00},    // 0x3A
{0x00,0x00,0x00,0x38,0x38,0x00,0x00,0x38,0x38,0x18,0x30,0x00},    // 0x3B
{0x00,0x0C,0x18,0x30,0x60,0xC0,0x60,0x30,0x18,0x0C,0x00,0x00},    // 0x3C
{0x00,0x00,0x00,0x00,0x7E,0x00,0x7E,0x00,0x00,0x00,0x00,0x00},    // 0x3D
{0x00,0x60,0x30,0x18,0x0C,0x06,0x0C,0x18,0x30,0x60,0x00,0x00},    // 0x3E
{0x00,0x78,0xCC,0x0C,0x18,0x30,0x30,0x00,0x30,0x30,0x00,0x00},    // 0x3F
{0x00,0x7C,0xC6,0xC6,0xDE,0xDE,0xDE,0xC0,0xC0,0x7C,0x00,0x00},    // 0x40
{0x00,0x30,0x78,0xCC,0xCC,0xCC,0xFC,0xCC,0xCC,0xCC,0x00,0x00},    // 0x41
{0x00,0xFC,0x66,0x66,0x66,0x7C,0x66,0x66,0x66,0xFC,0x00,0x00},    // 0x42
{0x00,0x3C,0x66,0xC6,0xC0,0xC0,0xC0,0xC6,0x66,0x3C,0x00,0x00},    // 0x43
{0x00,0xF8,0x6C,0x66,0x66,0x66,0x66,0x66,0x6C,0xF8,0x00,0x00},    // 0x44
{0x00,0xFE,0x62,0x60,0x64,0x7C,0x64,0x60,0x62,0xFE,0x00,0x00},    // 0x45
{0x00,0xFE,0x66,0x62,0x64,0x7C,0x64,0x60,0x60,0xF0,0x00,0x00},    // 0x46
{0x00,0x3C,0x66,0xC6,0xC0,0xC0,0xCE,0xC6,0x66,0x3E,0x00,0x00},    // 0x47
{0x00,0xCC,0xCC,0xCC,0xCC,0xFC,0xCC,0xCC,0xCC,0xCC,0x00,0x00},    // 0x48
{0x00,0x78,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x78,0x00,0x00},    // 0x49
{0x00,0x1E,0x0C,0x0C,0x0C,0x0C,0xCC,0xCC,0xCC,0x78,0x00,0x00},    // 0x4A
{0x00,0xE6,0x66,0x6C,0x6C,0x78,0x6C,0x6C,0x66,0xE6,0x00,0x00},    // 0x4B
{0x00,0xF0,0x60,0x60,0x60,0x60,0x62,0x66,0x66,0xFE,0x00,0x00},    // 0x4C
{0x00,0xC6,0xEE,0xFE,0xFE,0xD6,0xC6,0xC6,0xC6,0xC6,0x00,0x00},    // 0x4D
{0x00,0xC6,0xC6,0xE6,0xF6,0xFE,0xDE,0xCE,0xC6,0xC6,0x00,0x00},    // 0x4E
{0x00,0x38,0x6C,0xC6,0xC6,0xC6,0xC6,0xC6,0x6C,0x38,0x00,0x00},    // 0x4F
{0x00,0xFC,0x66,0x66,0x66,0x7C,0x60,0x60,0x60,0xF0,0x00,0x00},    // 0x50
{0x00,0x38,0x6C,0xC6,0xC6,0xC6,0xCE,0xDE,0x7C,0x0C,0x1E,0x00},    // 0x51
{0x00,0xFC,0x66,0x66,0x66,0x7C,0x6C,0x66,0x66,0xE6,0x00,0x00},    // 0x52
{0x00,0x78,0xCC,0xCC,0xC0,0x70,0x18,0xCC,0xCC,0x78,0x00,0x00},    // 0x53
{0x00,0xFC,0xB4,0x30,0x30,0x30,0x30,0x30,0x30,0x78,0x00,0x00},    // 0x54
{0x00,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0x78,0x00,0x00},    // 0x55
{0x00,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0x78,0x30,0x00,0x00},    // 0x56
{0x00,0xC6,0xC6,0xC6,0xC6,0xD6,0xD6,0x6C,0x6C,0x6C,0x00,0x00},    // 0x57
{0x00,0xCC,0xCC,0xCC,0x78,0x30,0x78,0xCC,0xCC,0xCC,0x00,0x00},    // 0x58
{0x00,0xCC,0xCC,0xCC,0xCC,0x78,0x30,0x30,0x30,0x78,0x00,0x00},    // 0x59
{0x00,0xFE,0xCE,0x98,0x18,0x30,0x60,0x62,0xC6,0xFE,0x00,0x00},    // 0x5A
{0x00,0x3C,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x3C,0x00,0x00},    // 0x5B
{0x00,0x00,0x80,0xC0,0x60,0x30,0x18,0x0C,0x06,0x02,0x00,0x00},    // 0x5C
{0x00,0x3C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x3C,0x00,0x00},    // 0x5D
{0x10,0x38,0x6C,0xC6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},    // 0x5E
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00},    // 0x5F
{0x30,0x30,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},    // 0x60
{0x00,0x00,0x00,0x00,0x78,0x0C,0x7C,0xCC,0xCC,0x76,0x00,0x00},    // 0x61
{0x00,0xE0,0x60,0x60,0x7C,0x66,0x66,0x66,0x66,0xDC,0x00,0x00},    // 0x62
{0x00,0x00,0x00,0x00,0x78,0xCC,0xC0,0xC0,0xCC,0x78,0x00,0x00},    // 0x63
{0x00,0x1C,0x0C,0x0C,0x7C,0xCC,0xCC,0xCC,0xCC,0x76,0x00,0x00},    // 0x64
{0x00,0x00,0x00,0x00,0x78,0xCC,0xFC,0xC0,0xCC,0x78,0x00,0x00},    // 0x65
{0x00,0x38,0x6C,0x60,0x60,0xF8,0x60,0x60,0x60,0xF0,0x00,0x00},    // 0x66
{0x00,0x00,0x00,0x00,0x76,0xCC,0xCC,0xCC,0x7C,0x0C,0xCC,0x78},    // 0x67
{0x00,0xE0,0x60,0x60,0x6C,0x76,0x66,0x66,0x66,0xE6,0x00,0x00},    // 0x68
{0x00,0x18,0x18,0x00,0x78,0x18,0x18,0x18,0x18,0x7E,0x00,0x00},    // 0x69
{0x00,0x0C,0x0C,0x00,0x3C,0x0C,0x0C,0x0C,0x0C,0xCC,0xCC,0x78},    // 0x6A
{0x00,0xE0,0x60,0x60,0x66,0x6C,0x78,0x6C,0x66,0xE6,0x00,0x00},    // 0x6B
{0x00,0x78,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x7E,0x00,0x00},    // 0x6C
{0x00,0x00,0x00,0x00,0xFC,0xD6,0xD6,0xD6,0xD6,0xC6,0x00,0x00},    // 0x6D
{0x00,0x00,0x00,0x00,0xF8,0xCC,0xCC,0xCC,0xCC,0xCC,0x00,0x00},    // 0x6E
{0x00,0x00,0x00,0x00,0x78,0xCC,0xCC,0xCC,0xCC,0x78,0x00,0x00},    // 0x6F
{0x00,0x00,0x00,0x00,0xDC,0x66,0x66,0x66,0x66,0x7C,0x60,0xF0},    // 0x70
{0x00,0x00,0x00,0x00,0x76,0xCC,0xCC,0xCC,0xCC,0x7C,0x0C,0x1E},    // 0x71
{0x00,0x00,0x00,0x00,0xEC,0x6E,0x76,0x60,0x60,0xF0,0x00,0x00},    // 0x72
{0x00,0x00,0x00,0x00,0x78,0xCC,0x60,0x18,0xCC,0x78,0x00,0x00},    // 0x73
{0x00,0x00,0x20,0x60,0xFC,0x60,0x60,0x60,0x6C,0x38,0x00,0x00},    // 0x74
{0x00,0x00,0x00,0x00,0xCC,0xCC,0xCC,0xCC,0xCC,0x76,0x00,0x00},    // 0x75
{0x00,0x00,0x00,0x00,0xCC,0xCC,0xCC,0xCC,0x78,0x30,0x00,0x00},    // 0x76
{0x00,0x00,0x00,0x00,0xC6,0xC6,0xD6,0xD6,0x6C,0x6C,0x00,0x00},    // 0x77
{0x00,0x00,0x00,0x00,0xC6,0x6C,0x38,0x38,0x6C,0xC6,0x00,0x00},    // 0x78
{0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x3C,0x0C,0x18,0xF0},    // 0x79
{0x00,0x00,0x00,0x00,0xFC,0x8C,0x18,0x60,0xC4,0xFC,0x00,0x00},    // 0x7A
{0x00,0x1C,0x30,0x30,0x60,0xC0,0x60,0x30,0x30,0x1C,0x00,0x00},    // 0x7B
{0x00,0x18,0x18,0x18,0x18,0x00,0x18,0x18,0x18,0x18,0x00,0x00},    // 0x7C
{0x00,0xE0,0x30,0x30,0x18,0x0C,0x18,0x30,0x30,0xE0,0x00,0x00},    // 0x7D
{0x00,0x73,0xDA,0xCE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},    // 0x7E
{0x00,0x00,0x00,0x10,0x38,0x6C,0xC6,0xC6,0xFE,0x00,0x00,0x00},    // 0x7F
{0x00,0x78,0xCC,0xCC,0xC0,0xC0,0xC0,0xCC,0xCC,0x78,0x30,0x60},    // 0x80
{0x00,0xCC,0xCC,0x00,0xCC,0xCC,0xCC,0xCC,0xCC,0x76,0x00,0x00},    // 0x81
{0x0C,0x18,0x30,0x00,0x78,0xCC,0xFC,0xC0,0xCC,0x78,0x00,0x00},    // 0x82
{0x30,0x78,0xCC,0x00,0x78,0x0C,0x7C,0xCC,0xCC,0x76,0x00,0x00},    // 0x83
{0x00,0xCC,0xCC,0x00,0x78,0x0C,0x7C,0xCC,0xCC,0x76,0x00,0x00},    // 0x84
{0xC0,0x60,0x30,0x00,0x78,0x0C,0x7C,0xCC,0xCC,0x76,0x00,0x00},    // 0x85
{0x38,0x6C,0x6C,0x38,0xF8,0x0C,0x7C,0xCC,0xCC,0x76,0x00,0x00},    // 0x86
{0x00,0x00,0x00,0x00,0x78,0xCC,0xC0,0xC0,0xCC,0x78,0x30,0x60},    // 0x87
{0x30,0x78,0xCC,0x00,0x78,0xCC,0xFC,0xC0,0xC0,0x7C,0x00,0x00},    // 0x88
{0x00,0xCC,0xCC,0x00,0x78,0xCC,0xFC,0xC0,0xC0,0x7C,0x00,0x00},    // 0x89
{0xC0,0x60,0x30,0x00,0x78,0xCC,0xFC,0xC0,0xC0,0x7C,0x00,0x00},    // 0x8A
{0x00,0x6C,0x6C,0x00,0x78,0x18,0x18,0x18,0x18,0x7E,0x00,0x00},    // 0x8B
{0x10,0x38,0x6C,0x00,0x78,0x18,0x18,0x18,0x18,0x7E,0x00,0x00},    // 0x8C
{0x60,0x30,0x18,0x00,0x78,0x18,0x18,0x18,0x18,0x7E,0x00,0x00},    // 0x8D
{0x00,0xCC,0x00,0x30,0x78,0xCC,0xCC,0xFC,0xCC,0xCC,0x00,0x00},    // 0x8E
{0x78,0xCC,0xCC,0x78,0x78,0xCC,0xCC,0xFC,0xCC,0xCC,0x00,0x00},    // 0x8F
{0x0C,0x18,0x00,0xFC,0xC4,0xC0,0xF8,0xC0,0xC4,0xFC,0x00,0x00},    // 0x90
{0x00,0x00,0x00,0x00,0xFE,0x1B,0x7F,0xD8,0xD8,0xEF,0x00,0x00},    // 0x91
{0x00,0x3E,0x78,0xD8,0xD8,0xFE,0xD8,0xD8,0xD8,0xDE,0x00,0x00},    // 0x92
{0x30,0x78,0xCC,0x00,0x78,0xCC,0xCC,0xCC,0xCC,0x78,0x00,0x00},    // 0x93
{0x00,0xCC,0xCC,0x00,0x78,0xCC,0xCC,0xCC,0xCC,0x78,0x00,0x00},    // 0x94
{0xC0,0x60,0x30,0x00,0x78,0xCC,0xCC,0xCC,0xCC,0x78,0x00,0x00},    // 0x95
{0x30,0x78,0xCC,0x00,0xCC,0xCC,0xCC,0xCC,0xCC,0x76,0x00,0x00},    // 0x96
{0xC0,0x60,0x30,0x00,0xCC,0xCC,0xCC,0xCC,0xCC,0x76,0x00,0x00},    // 0x97
{0x00,0x66,0x66,0x00,0x66,0x66,0x66,0x66,0x3C,0x0C,0x18,0xF0},    // 0x98
{0x00,0xCC,0x00,0x78,0xCC,0xCC,0xCC,0xCC,0xCC,0x78,0x00,0x00},    // 0x99
{0xCC,0x00,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0x78,0x00,0x00},    // 0x9A
{0x00,0x00,0x00,0x00,0x78,0xCC,0xDC,0xEC,0xCC,0x78,0x00,0x00},    // 0x9B
{0x3C,0x66,0x60,0x60,0x60,0xFC,0x60,0x60,0xC0,0xFE,0x00,0x00},    // 0x9C
{0x00,0x3A,0x6C,0xCE,0xD6,0xD6,0xD6,0xE6,0x6C,0xB8,0x00,0x00},    // 0x9D
{0x00,0x00,0x00,0x00,0x00,0xC6,0x6C,0x38,0x6C,0xC6,0x00,0x00},    // 0x9E
{0x0E,0x1B,0x18,0x18,0x7E,0x18,0x18,0x18,0xD8,0x70,0x00,0x00},    // 0x9F
{0x0C,0x18,0x30,0x00,0x78,0x0C,0x7C,0xCC,0xCC,0x76,0x00,0x00},    // 0xA0
{0x0C,0x18,0x30,0x00,0x78,0x18,0x18,0x18,0x18,0x7E,0x00,0x00},    // 0xA1
{0x0C,0x18,0x30,0x00,0x78,0xCC,0xCC,0xCC,0xCC,0x78,0x00,0x00},    // 0xA2
{0x0C,0x18,0x30,0x00,0xCC,0xCC,0xCC,0xCC,0xCC,0x76,0x00,0x00},    // 0xA3
{0x00,0x76,0xDC,0x00,0xF8,0xCC,0xCC,0xCC,0xCC,0xCC,0x00,0x00},    // 0xA4
{0x76,0xDC,0x00,0xC6,0xE6,0xF6,0xDE,0xCE,0xC6,0xC6,0x00,0x00},    // 0xA5
{0x00,0x78,0xCC,0xCC,0x7E,0x00,0xFE,0x00,0x00,0x00,0x00,0x00},    // 0xA6
{0x00,0x78,0xCC,0xCC,0x78,0x00,0xFE,0x00,0x00,0x00,0x00,0x00},    // 0xA7
{0x00,0x30,0x30,0x00,0x30,0x60,0xC0,0xC0,0xCC,0x78,0x00,0x00},    // 0xA8
{0x00,0x38,0x44,0xBA,0xAA,0xBA,0xB2,0xAA,0x44,0x38,0x00,0x00},    // 0xA9
{0x00,0x00,0x00,0x00,0x00,0xFC,0x0C,0x0C,0x0C,0x00,0x00,0x00},    // 0xAA
{0x00,0x62,0xE6,0x6C,0x78,0x30,0x6E,0xC3,0x86,0x0C,0x1F,0x00},    // 0xAB
{0x00,0x63,0xE6,0x6C,0x78,0x37,0x6F,0xDB,0xB3,0x3F,0x03,0x00},    // 0xAC
{0x00,0x30,0x30,0x00,0x30,0x30,0x78,0x78,0x78,0x30,0x00,0x00},    // 0xAD
{0x00,0x00,0x00,0x00,0x33,0x66,0xCC,0xCC,0x66,0x33,0x00,0x00},    // 0xAE
{0x00,0x00,0x00,0x00,0xCC,0x66,0x33,0x33,0x66,0xCC,0x00,0x00},    // 0xAF
{0x24,0x92,0x49,0x24,0x92,0x49,0x24,0x92,0x49,0x24,0x92,0x49},    // 0xB0
{0x55,0xAA,0x55,0xAA,0x55,0xAA,0x55,0xAA,0x55,0xAA,0x55,0xAA},    // 0xB1
{0x6D,0xDB,0xB6,0x6D,0xDB,0xB6,0x6D,0xDB,0xB6,0x6D,0xDB,0xB6},    // 0xB2
{0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18},    // 0xB3
{0x18,0x18,0x18,0x18,0x18,0xF8,0x18,0x18,0x18,0x18,0x18,0x18},    // 0xB4
{0x0C,0x18,0x00,0x30,0x78,0xCC,0xCC,0xFC,0xCC,0xCC,0x00,0x00},    // 0xB5
{0x78,0xCC,0x00,0x30,0x78,0xCC,0xCC,0xFC,0xCC,0xCC,0x00,0x00},    // 0xB6
{0x60,0x30,0x00,0x30,0x78,0xCC,0xCC,0xFC,0xCC,0xCC,0x00,0x00},    // 0xB7
{0x00,0x38,0x44,0xBA,0xA2,0xA2,0xA2,0xBA,0x44,0x38,0x00,0x00},    // 0xB8
{0x66,0x66,0x66,0x66,0xE6,0x06,0x06,0xE6,0x66,0x66,0x66,0x66},    // 0xB9
{0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66},    // 0xBA
{0x00,0x00,0x00,0x00,0xFE,0x06,0x06,0xE6,0x66,0x66,0x66,0x66},    // 0xBB
{0x66,0x66,0x66,0x66,0xE6,0x06,0x06,0xFE,0x00,0x00,0x00,0x00},    // 0xBC
{0x00,0x30,0x30,0x78,0xCC,0xC0,0xC0,0xCC,0x78,0x30,0x30,0x00},    // 0xBD
{0xCC,0xCC,0xCC,0xCC,0x78,0xFC,0x30,0xFC,0x30,0x30,0x00,0x00},    // 0xBE
{0x00,0x00,0x00,0x00,0x00,0xF8,0x18,0x18,0x18,0x18,0x18,0x18},    // 0xBF
{0x18,0x18,0x18,0x18,0x18,0x1F,0x00,0x00,0x00,0x00,0x00,0x00},    // 0xC0
{0x18,0x18,0x18,0x18,0x18,0xFF,0x00,0x00,0x00,0x00,0x00,0x00},    // 0xC1
{0x00,0x00,0x00,0x00,0x00,0xFF,0x18,0x18,0x18,0x18,0x18,0x18},    // 0xC2
{0x18,0x18,0x18,0x18,0x18,0x1F,0x18,0x18,0x18,0x18,0x18,0x18},    // 0xC3
{0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00},    // 0xC4
{0x18,0x18,0x18,0x18,0x18,0xFF,0x18,0x18,0x18,0x18,0x18,0x18},    // 0xC5
{0x00,0x76,0xDC,0x00,0x78,0x0C,0x7C,0xCC,0xCC,0x76,0x00,0x00},    // 0xC6
{0x76,0xDC,0x00,0x30,0x78,0xCC,0xCC,0xFC,0xCC,0xCC,0x00,0x00},    // 0xC7
{0x66,0x66,0x66,0x66,0x67,0x60,0x60,0x7F,0x00,0x00,0x00,0x00},    // 0xC8
{0x00,0x00,0x00,0x00,0x7F,0x60,0x60,0x67,0x66,0x66,0x66,0x66},    // 0xC9
{0x66,0x66,0x66,0x66,0xE7,0x00,0x00,0xFF,0x00,0x00,0x00,0x00},    // 0xCA
{0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0xE7,0x66,0x66,0x66,0x66},    // 0xCB
{0x66,0x66,0x66,0x66,0x67,0x60,0x60,0x67,0x66,0x66,0x66,0x66},    // 0xCC
{0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0xFF,0x00,0x00,0x00,0x00},    // 0xCD
{0x66,0x66,0x66,0x66,0xE7,0x00,0x00,0xE7,0x66,0x66,0x66,0x66},    // 0xCE
{0x00,0x00,0x00,0x00,0x00,0xC6,0x7C,0x6C,0x7C,0xC6,0x00,0x00},    // 0xCF
{0xCC,0x30,0xD8,0x0C,0x06,0x7E,0xC6,0xC6,0xC6,0x7C,0x00,0x00},    // 0xD0
{0x00,0xF8,0x6C,0x66,0x66,0xF6,0x66,0x66,0x6C,0xF8,0x00,0x00},    // 0xD1
{0x78,0xCC,0x00,0xFC,0xC4,0xC0,0xF8,0xC0,0xC4,0xFC,0x00,0x00},    // 0xD2
{0x00,0xCC,0x00,0xFC,0xC4,0xC0,0xF8,0xC0,0xC4,0xFC,0x00,0x00},    // 0xD3
{0x60,0x30,0x00,0xFC,0xC4,0xC0,0xF8,0xC0,0xC4,0xFC,0x00,0x00},    // 0xD4
{0x00,0xF0,0x30,0x30,0x30,0xFC,0x00,0x00,0x00,0x00,0x00,0x00},    // 0xD5
{0x18,0x30,0x00,0x78,0x30,0x30,0x30,0x30,0x30,0x78,0x00,0x00},    // 0xD6
{0x78,0xCC,0x00,0x78,0x30,0x30,0x30,0x30,0x30,0x78,0x00,0x00},    // 0xD7
{0x00,0xCC,0x00,0x78,0x30,0x30,0x30,0x30,0x30,0x78,0x00,0x00},    // 0xD8
{0x18,0x18,0x18,0x18,0x18,0xF8,0x00,0x00,0x00,0x00,0x00,0x00},    // 0xD9
{0x00,0x00,0x00,0x00,0x00,0x1F,0x18,0x18,0x18,0x18,0x18,0x18},    // 0xDA
{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},    // 0xDB
{0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},    // 0xDC
{0x00,0x18,0x18,0x18,0x18,0x00,0x18,0x18,0x18,0x18,0x00,0x00},    // 0xDD
{0x60,0x30,0x00,0x78,0x30,0x30,0x30,0x30,0x30,0x78,0x00,0x00},    // 0xDE
{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00},    // 0xDF
{0x18,0x30,0x00,0x78,0xCC,0xCC,0xCC,0xCC,0xCC,0x78,0x00,0x00},    // 0xE0
{0x00,0x78,0xCC,0xCC,0xD8,0xCC,0xCC,0xCC,0xF8,0xC0,0x60,0x00},    // 0xE1
{0x78,0xCC,0x00,0x78,0xCC,0xCC,0xCC,0xCC,0xCC,0x78,0x00,0x00},    // 0xE2
{0x60,0x30,0x00,0x78,0xCC,0xCC,0xCC,0xCC,0xCC,0x78,0x00,0x00},    // 0xE3
{0x00,0x76,0xDC,0x00,0x78,0xCC,0xCC,0xCC,0xCC,0x78,0x00,0x00},    // 0xE4
{0x76,0xDC,0x00,0x78,0xCC,0xCC,0xCC,0xCC,0xCC,0x78,0x00,0x00},    // 0xE5
{0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x7B,0x60,0xC0},    // 0xE6
{0x00,0x00,0xE0,0x60,0x7C,0x66,0x66,0x7C,0x60,0xF0,0x00,0x00},    // 0xE7
{0x00,0xF0,0x60,0x7C,0x66,0x66,0x66,0x7C,0x60,0xF0,0x00,0x00},    // 0xE8
{0x18,0x30,0x00,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0x78,0x00,0x00},    // 0xE9
{0x78,0xCC,0x00,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0x78,0x00,0x00},    // 0xEA
{0x60,0x30,0x00,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0x78,0x00,0x00},    // 0xEB
{0x06,0x0C,0x18,0x00,0x66,0x66,0x66,0x66,0x3C,0x0C,0x18,0xF0},    // 0xEC
{0x18,0x30,0x00,0xCC,0xCC,0xCC,0x78,0x30,0x30,0x78,0x00,0x00},    // 0xED
{0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},    // 0xEE
{0x0C,0x18,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},    // 0xEF
{0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0x00},    // 0xF0
{0x00,0x00,0x30,0x30,0xFC,0x30,0x30,0x00,0xFC,0x00,0x00,0x00},    // 0xF1
{0x00,0x00,0x00,0x00,0x00,0xF8,0x00,0x00,0xF8,0x00,0x00,0x00},    // 0xF2
{0xE0,0x33,0x66,0x3C,0xF8,0x37,0x6F,0xDB,0xB3,0x3F,0x03,0x00},    // 0xF3
{0x00,0x7F,0xDB,0xDB,0xDB,0x7B,0x1B,0x1B,0x1B,0x1B,0x00,0x00},    // 0xF4
{0x00,0x7E,0x63,0x30,0x3C,0x66,0x66,0x3C,0x0C,0xC6,0x7E,0x00},    // 0xF5
{0x00,0x00,0x30,0x30,0x00,0xFC,0x00,0x30,0x30,0x00,0x00,0x00},    // 0xF6
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x70},    // 0xF7
{0x00,0x3C,0x66,0x66,0x66,0x3C,0x00,0x00,0x00,0x00,0x00,0x00},    // 0xF8
{0x00,0xCC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},    // 0xF9
{0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00},    // 0xFA
{0x00,0x30,0x70,0x30,0x30,0x78,0x00,0x00,0x00,0x00,0x00,0x00},    // 0xFB
{0x00,0x78,0x0C,0x38,0x0C,0x78,0x00,0x00,0x00,0x00,0x00,0x00},    // 0xFC
{0x00,0x78,0x0C,0x18,0x30,0x7C,0x00,0x00,0x00,0x00,0x00,0x00},    // 0xFD
{0x00,0x00,0x00,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0x00,0x00,0x00},    // 0xFE
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}     // 0xFF
};
    
int main(void)
{
    
    unsigned char text[20][40];
    unsigned char zeichen=0;
    unsigned char temp;
    
    for (unsigned char y=0;y<20;y++)
    {
        for (unsigned char x=0;x<40;x++)
            text[y][x]=zeichen++;            
    }
    
    
    DDRC=0x0F;
    DDRB=0x07;
    
   
    PORTB=(1<<FRAME)|(1<<LOAD);
    
    while(1)
    {
           PORTB=(1<<FRAME)|(1<<CP);
           
        for(unsigned char i =0; i<20;i++)
        {
            for(unsigned char j =0; j<12;j++)
            {
                for( unsigned char k =0; k<40;k++)
                {
                    temp=pgm_read_byte(&schrift[ text[i][k] ][j]);
                    
                    PORTB=(1<<CP);                
                    PORTC=(temp>>4);    //ersten 4 Pixel                                    
                    PORTB=0;                    
                    PORTB=(1<<CP);        //zweiten 4 Pixel                
                    PORTC=(temp);                    
                    PORTB=0;                    
                                    
                }                            
            PORTB=(1<<LOAD);    
            }
            
        }
        PORTB=(1<<LOAD)|(1<<FRAME);
        
    }
    
    
}