- SF800 Solar Speicher Tutorial         
Ergebnis 1 bis 10 von 57

Thema: Gibt es noch Optimierungspotential? (Mega8 an 320x240 GLCD Textmodus)

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    31.05.2009
    Ort
    Stralsund
    Alter
    33
    Beiträge
    436
    Ahh, genau, der Flash hat ja 16Bit Adressen und das Array liegt bestimmt nicht nur in einem 256Byte Block, damit ist alles klar
    Ich sag ja, asm ist nicht meine Welt.

    Das mit dem Entrollen hatte ich gestern schon mal probiert, dabei wurde "k" durch Konstanten ersetzt. Das Ergebnis war langsamer o.O

    Bild hier  

    http://www.myvideo.de/watch/8517232/...GLCD_Textmodus
    Geändert von MisterMou (22.04.2012 um 18:32 Uhr)

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2009
    Beiträge
    437
    So mag ich das, wenn da passende Grüße kommen
    Zitat Zitat von MisterMou Beitrag anzeigen
    Das mit dem Entrollen hatte ich gestern schon mal probiert, dabei wurde "k" durch Konstanten ersetzt. Das Ergebnis war langsamer o.O
    Langsamer muss es nicht zwingend sein, mit Konstanten wird's aber nix. Nachdem der Compiler in mancher Beziehung extrem stur ist, hab' ich's nochmal anders versucht.
    Wenn's geht, was ich doch hoffe, zumindest die Simulation sah gut aus, so wären das 107Hz@16MHz. Optimierung -Os.
    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[12][256] PROGMEM ={
        {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x03,0x00,0x0C,0x83,0x00,0x03,0x00,0x0C,0x00,0x01,0x06,0x00,0x87,0xC0,0x00,0x00,0x03,0x00,0x0C,0x03,0x0C,0x00,0x00,0xCC,0x00,0xC3,0x00,0x00,0xE0,0xC0,0xC0,0xC0,0xC0,0x00,0x67,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x55,0xD6,0x81,0x81,0xC0,0x87,0x06,0x00,0x66,0x66,0x00,0x66,0x00,0xCC,0x00,0x81,0x81,0x00,0x81,0x00,0x81,0x00,0x67,0x66,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0xCC,0x00,0x87,0x00,0x06,0x00,0x81,0x87,0x00,0x81,0x00,0xFF,0x00,0x00,0x06,0xFF,0x81,0x00,0x87,0x06,0x00,0x67,0x00,0x00,0x00,0x81,0x87,0x06,0x60,0x81,0x00,0xC0,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
     {0x00,0xE7,0xE7,0x00,0x01,0x81,0x81,0x00,0x00,0x00,0x00,0xE3,0xC3,0x00,0xF7,0x00,0x08,0x20,0x81,0x66,0xF7,0xE7,0x00,0x81,0x81,0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x66,0xC6,0x03,0x00,0x07,0x03,0xC0,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0xC7,0x01,0x87,0x87,0xC0,0xCF,0x83,0xEF,0x87,0x87,0x00,0x00,0xC0,0x00,0x06,0x87,0xC7,0x03,0xCF,0xC3,0x8F,0xEF,0xEF,0xC3,0xCC,0x87,0xE1,0x6E,0x0F,0x6C,0x6C,0x83,0xCF,0x83,0xCF,0x87,0xCF,0xCC,0xCC,0x6C,0xCC,0xCC,0xEF,0xC3,0x00,0xC3,0x83,0x00,0x03,0x00,0x0E,0x00,0xC1,0x00,0x83,0x00,0x0E,0x81,0xC0,0x0E,0x87,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC1,0x81,0x0E,0x37,0x00,0x87,0xCC,0x81,0x87,0xCC,0x06,0xC6,0x00,0x87,0xCC,0x06,0xC6,0x83,0x03,0xCC,0xCC,0x81,0x00,0xE3,0x87,0xCC,0x06,0x87,0x06,0x66,0xCC,0x00,0x00,0x66,0xA3,0x00,0xB1,0x81,0x81,0x81,0x81,0x67,0xCD,0x87,0x87,0x03,0x83,0x00,0x26,0x36,0x03,0x00,0x00,0x29,0xAA,0xBD,0x81,0x81,0x81,0xCC,0x03,0x83,0x66,0x66,0x00,0x66,0x03,0xCC,0x00,0x81,0x81,0x00,0x81,0x00,0x81,0x67,0xCD,0x66,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x03,0x8F,0xCC,0xCC,0x03,0x0F,0x03,0xCC,0xCC,0x81,0x00,0xFF,0x00,0x81,0x03,0xFF,0x03,0x87,0xCC,0x03,0x67,0xCD,0x00,0x00,0x0F,0x03,0xCC,0x03,0xC0,0x03,0xCF,0x81,0x00,0x00,0x00,0x33,0xF7,0xE7,0x00,0x00,0xC3,0xCC,0x00,0x03,0x87,0x87,0x00,0x00},
     {0x00,0x3C,0xFF,0x44,0x83,0xC3,0xC3,0x00,0x00,0x00,0x00,0xE0,0x66,0x00,0x36,0x81,0x0C,0x60,0xC3,0x66,0xBD,0x36,0x00,0xC3,0xC3,0x81,0x00,0x00,0x00,0x00,0x01,0xEF,0x00,0x87,0x66,0xC6,0xC7,0x00,0x8D,0x03,0x81,0x03,0x00,0x00,0x00,0x00,0x00,0x20,0x6C,0x03,0xCC,0xCC,0xC1,0x0C,0x06,0x6C,0xCC,0xCC,0x00,0x00,0x81,0x00,0x03,0xCC,0x6C,0x87,0x66,0x66,0xC6,0x26,0x66,0x66,0xCC,0x03,0xC0,0x66,0x06,0xEE,0x6C,0xC6,0x66,0xC6,0x66,0xCC,0x4B,0xCC,0xCC,0x6C,0xCC,0xCC,0xEC,0x03,0x08,0xC0,0xC6,0x00,0x81,0x00,0x06,0x00,0xC0,0x00,0xC6,0x00,0x06,0x81,0xC0,0x06,0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x81,0x03,0xAD,0x00,0xCC,0xCC,0x03,0xCC,0xCC,0x03,0xC6,0x00,0xCC,0xCC,0x03,0xC6,0xC6,0x81,0x00,0xCC,0x00,0x00,0x87,0xCC,0xCC,0x03,0xCC,0x03,0x66,0x00,0xCC,0x00,0x06,0xC6,0x00,0x81,0x03,0x03,0x03,0x03,0xCD,0x00,0xCC,0xCC,0x03,0x44,0x00,0x6E,0x6E,0x03,0x00,0x00,0x94,0x55,0x6B,0x81,0x81,0x00,0x00,0x00,0x44,0x66,0x66,0x00,0x66,0x03,0xCC,0x00,0x81,0x81,0x00,0x81,0x00,0x81,0xCD,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x8D,0xC6,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x81,0x00,0xFF,0x00,0x81,0x00,0xFF,0x00,0xCC,0x00,0x00,0xCD,0x00,0x00,0x0E,0x06,0x00,0x00,0x00,0x81,0x00,0x00,0x03,0x00,0x03,0x00,0x66,0xBD,0x36,0x03,0x00,0x66,0x00,0x00,0x07,0xC0,0xC0,0x00,0x00},
     {0x00,0x18,0xFF,0xEE,0xC7,0xC3,0xE7,0x00,0x00,0x00,0x00,0xA3,0x66,0x00,0xF7,0xBD,0x0E,0xE0,0xE7,0x66,0xBD,0x03,0x00,0xE7,0xE7,0x81,0x81,0x03,0x00,0x42,0x01,0xEF,0x00,0x87,0x66,0xEF,0x0C,0x4C,0x8D,0x03,0x03,0x81,0x66,0x81,0x00,0x00,0x00,0x60,0xEC,0x0F,0xCC,0xC0,0xC3,0x0C,0x0C,0x6C,0xCC,0xCC,0x83,0x83,0x03,0x00,0x81,0xC0,0x6C,0xCC,0x66,0x6C,0x66,0x06,0x26,0x6C,0xCC,0x03,0xC0,0xC6,0x06,0xEF,0x6E,0x6C,0x66,0x6C,0x66,0xCC,0x03,0xCC,0xCC,0x6C,0xCC,0xCC,0x89,0x03,0x0C,0xC0,0x6C,0x00,0x00,0x00,0x06,0x00,0xC0,0x00,0x06,0x00,0x06,0x00,0x00,0x06,0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x81,0x03,0xEC,0x01,0xCC,0x00,0x00,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x87,0xCF,0x00,0x8D,0x00,0x00,0x00,0x00,0x00,0x00,0x87,0xCC,0x00,0x06,0xEC,0x00,0x81,0x00,0x00,0x00,0x00,0x00,0x6C,0xCC,0xCC,0x00,0xAB,0x00,0xC6,0xC6,0x00,0x00,0x00,0x42,0xAA,0xD6,0x81,0x81,0x03,0x03,0x03,0xAB,0x66,0x66,0x00,0x66,0x87,0xCC,0x00,0x81,0x81,0x00,0x81,0x00,0x81,0x00,0x03,0x66,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0xC0,0x66,0xCF,0xCF,0xCF,0x03,0x87,0x87,0x87,0x81,0x00,0xFF,0x00,0x81,0x87,0xFF,0x87,0xCC,0x87,0x87,0x00,0x87,0x00,0x06,0xC7,0xCC,0xCC,0xCC,0x00,0xCC,0x00,0x00,0x00,0x03,0x00,0xC3,0xBD,0x03,0x03,0x00,0x66,0x00,0x00,0x03,0x83,0x81,0xCF,0x00},
     {0x00,0x5A,0xBD,0xEF,0xEF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x27,0x66,0x00,0x36,0xE7,0x8F,0xE3,0x81,0x66,0xBD,0xC3,0x00,0x81,0x81,0x81,0xC0,0x06,0x0C,0x66,0x83,0xC7,0x00,0x87,0x42,0xC6,0x0C,0xCC,0x07,0x06,0x06,0xC0,0xC3,0x81,0x00,0x00,0x00,0xC0,0xED,0x03,0xC0,0xC0,0xC6,0x0C,0x0C,0x60,0xCC,0xCC,0x83,0x83,0x06,0xE7,0xC0,0x81,0xED,0xCC,0x66,0x0C,0x66,0x46,0x46,0x0C,0xCC,0x03,0xC0,0xC6,0x06,0xEF,0x6F,0x6C,0x66,0x6C,0x66,0x0C,0x03,0xCC,0xCC,0x6C,0x87,0xCC,0x81,0x03,0x06,0xC0,0x00,0x00,0x00,0x87,0xC7,0x87,0xC7,0x87,0x06,0x67,0xC6,0x87,0xC3,0x66,0x81,0xCF,0x8F,0x87,0xCD,0x67,0xCE,0x87,0xCF,0xCC,0xCC,0x6C,0x6C,0x66,0xCF,0x06,0x81,0x81,0x00,0x83,0x0C,0xCC,0x87,0x87,0x87,0x87,0x8F,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x4C,0xEF,0x8D,0x87,0x87,0x87,0xCC,0xCC,0x66,0xCC,0xCC,0x87,0x06,0x6D,0x00,0xE7,0x87,0x87,0x87,0xCC,0x8F,0x6E,0xE7,0x87,0x03,0xAA,0x00,0x87,0x87,0x03,0x33,0xCC,0x29,0x55,0xBD,0x81,0x81,0x87,0x87,0x87,0x2A,0x6E,0x66,0xEF,0x6E,0xCC,0x87,0x00,0x81,0x81,0x00,0x81,0x00,0x81,0x87,0x87,0x76,0xF7,0x7E,0xFF,0x76,0xFF,0x7E,0x00,0x60,0x66,0x4C,0x4C,0x4C,0x03,0x03,0x03,0x03,0x81,0x00,0xFF,0x00,0x81,0x03,0xFF,0xCC,0x8D,0xCC,0xCC,0x87,0xCC,0x66,0xC7,0x66,0xCC,0xCC,0xCC,0x66,0xCC,0x00,0x00,0x00,0xCF,0x00,0x8F,0xBD,0xC3,0x00,0x00,0x66,0x00,0x00,0x03,0xC0,0x03,0xCF,0x00},
     {0x00,0x18,0xFF,0xEF,0xEF,0x7E,0xFF,0x00,0x00,0x00,0x00,0x8F,0xC3,0x00,0x36,0x7E,0xEF,0xEF,0x81,0x66,0xB7,0x66,0x00,0x81,0x81,0x81,0xEF,0xEF,0x0C,0xFF,0x83,0xC7,0x00,0x03,0x00,0xC6,0x87,0x81,0xAF,0x00,0x06,0xC0,0xFF,0xE7,0x00,0xEF,0x00,0x81,0x6D,0x03,0x81,0x83,0xCC,0x8F,0x8F,0xC0,0x87,0xC7,0x00,0x00,0x0C,0x00,0x60,0x03,0xED,0xCC,0xC7,0x0C,0x66,0xC7,0xC7,0x0C,0xCF,0x03,0xC0,0x87,0x06,0x6D,0xEF,0x6C,0xC7,0x6C,0xC7,0x07,0x03,0xCC,0xCC,0x6D,0x03,0x87,0x03,0x03,0x03,0xC0,0x00,0x00,0x00,0xC0,0x66,0xCC,0xCC,0xCC,0x8F,0xCC,0x67,0x81,0xC0,0xC6,0x81,0x6D,0xCC,0xCC,0x66,0xCC,0xE6,0xCC,0x06,0xCC,0xCC,0x6C,0xC6,0x66,0xC8,0x0C,0x00,0xC0,0x00,0xC6,0x0C,0xCC,0xCC,0xC0,0xC0,0xC0,0xC0,0xCC,0xCC,0xCC,0xCC,0x81,0x81,0x81,0xCC,0xCC,0x0C,0xB1,0xEF,0xCC,0xCC,0xCC,0xCC,0xCC,0x66,0xCC,0xCC,0xCC,0xCF,0x6D,0x6C,0x81,0xC0,0x81,0xCC,0xCC,0xCC,0x6F,0x00,0x00,0x06,0xAB,0xCF,0x03,0x73,0x03,0x66,0x66,0x94,0xAA,0x6B,0x81,0x8F,0xCC,0xCC,0xCC,0x2A,0x60,0x66,0x60,0x60,0x0C,0xCF,0x8F,0xF1,0xFF,0xFF,0xF1,0xFF,0xFF,0xC0,0xCC,0x06,0x06,0x00,0x00,0x06,0x00,0x00,0x6C,0xE7,0x6F,0x0C,0x0C,0x0C,0xCF,0x03,0x03,0x03,0x8F,0xF1,0xFF,0x00,0x00,0x03,0xFF,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0x66,0x66,0x66,0xCC,0xCC,0xCC,0x66,0xCC,0x00,0x00,0xCF,0x03,0x8F,0x73,0xB7,0x66,0xCF,0x00,0xC3,0x00,0x81,0x87,0x87,0xC7,0xCF,0x00},
     {0x00,0xDB,0x3C,0xEF,0xC7,0x7E,0xE7,0x00,0x00,0x00,0x00,0xCC,0x81,0x00,0x36,0x7E,0x8F,0xE3,0x81,0x00,0xB1,0x66,0x00,0x81,0x81,0x81,0xC0,0x06,0x0C,0x66,0xC7,0x83,0x00,0x03,0x00,0xC6,0xC0,0x03,0xED,0x00,0x06,0xC0,0xC3,0x81,0x00,0x00,0x00,0x03,0x6F,0x03,0x03,0xC0,0xEF,0xC0,0xCC,0x81,0xCC,0x81,0x00,0x00,0x06,0xE7,0xC0,0x03,0xED,0xCF,0x66,0x0C,0x66,0x46,0x46,0xEC,0xCC,0x03,0xCC,0xC6,0x26,0x6C,0xED,0x6C,0x06,0xEC,0xC6,0x81,0x03,0xCC,0xCC,0x6D,0x87,0x03,0x06,0x03,0x81,0xC0,0x00,0x00,0x00,0xC7,0x66,0x0C,0xCC,0xCF,0x06,0xCC,0x66,0x81,0xC0,0x87,0x81,0x6D,0xCC,0xCC,0x66,0xCC,0x67,0x06,0x06,0xCC,0xCC,0x6D,0x83,0x66,0x81,0x06,0x81,0x81,0x00,0x6C,0x0C,0xCC,0xCF,0xC7,0xC7,0xC7,0xC7,0x0C,0xCF,0xCF,0xCF,0x81,0x81,0x81,0xCC,0xCC,0x8F,0xF7,0x8D,0xCC,0xCC,0xCC,0xCC,0xCC,0x66,0xCC,0xCC,0xCD,0x06,0x6D,0xC6,0x81,0xC7,0x81,0xCC,0xCC,0xCC,0xED,0xEF,0xEF,0x0C,0x2B,0xC0,0xE6,0xF6,0x87,0xCC,0x33,0x42,0x55,0xD6,0x81,0x81,0xCC,0xCC,0xCC,0x2A,0x60,0x66,0x60,0x60,0x0C,0x03,0x81,0x00,0x00,0x81,0x81,0x00,0x81,0xC7,0xCC,0x06,0x06,0x00,0x00,0x06,0x00,0x00,0xC7,0x6C,0x66,0x8F,0x8F,0x8F,0x00,0x03,0x03,0x03,0x00,0x81,0xFF,0xFF,0x81,0x03,0x00,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0x66,0x66,0x66,0xCC,0xCC,0xCC,0x66,0x87,0x00,0x00,0x00,0x03,0x00,0xF6,0xB1,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xCF,0x00},
     {0x00,0x99,0x7E,0xC7,0x83,0x81,0x81,0x00,0x00,0x00,0x00,0xCC,0xE7,0x00,0x76,0xE7,0x0E,0xE0,0xE7,0x00,0xB1,0xC3,0xEF,0xE7,0x81,0xE7,0x81,0x03,0xEF,0x42,0xC7,0x83,0x00,0x00,0x00,0xEF,0xC0,0x06,0xCC,0x00,0x03,0x81,0x66,0x81,0x00,0x00,0x00,0x06,0x6E,0x03,0x06,0xC0,0xC0,0xC0,0xCC,0x03,0xCC,0x81,0x83,0x83,0x03,0x00,0x81,0x00,0x0C,0xCC,0x66,0x6C,0x66,0x06,0x06,0x6C,0xCC,0x03,0xCC,0xC6,0x66,0x6C,0xEC,0x6C,0x06,0xED,0x66,0xCC,0x03,0xCC,0xCC,0xC6,0xCC,0x03,0x26,0x03,0xC0,0xC0,0x00,0x00,0x00,0xCC,0x66,0x0C,0xCC,0x0C,0x06,0xCC,0x66,0x81,0xC0,0xC6,0x81,0x6D,0xCC,0xCC,0x66,0xCC,0x06,0x81,0x06,0xCC,0xCC,0x6D,0x83,0x66,0x06,0x03,0x81,0x03,0x00,0x6C,0xCC,0xCC,0x0C,0xCC,0xCC,0xCC,0xCC,0x0C,0x0C,0x0C,0x0C,0x81,0x81,0x81,0xCF,0xCF,0x0C,0x8D,0x8D,0xCC,0xCC,0xCC,0xCC,0xCC,0x66,0xCC,0xCC,0xCE,0x06,0x6E,0x83,0x81,0xCC,0x81,0xCC,0xCC,0xCC,0xEC,0x00,0x00,0x0C,0xAA,0xC0,0x3C,0xBD,0x87,0xCC,0x33,0x29,0xAA,0xBD,0x81,0x81,0xCF,0xCF,0xCF,0xAB,0x6E,0x66,0x6E,0xEF,0xCC,0xCF,0x81,0x00,0x00,0x81,0x81,0x00,0x81,0xCC,0xCF,0xF7,0x76,0xFF,0x7E,0x76,0xFF,0x7E,0xC6,0x6C,0x66,0x0C,0x0C,0x0C,0x00,0x03,0x03,0x03,0x00,0x81,0xFF,0xFF,0x81,0x03,0x00,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0x66,0xC7,0xC7,0xCC,0xCC,0xCC,0x66,0x03,0x00,0x00,0x00,0x00,0x00,0xBD,0xB1,0xC3,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xCF,0x00},
     {0x00,0x3C,0xFF,0x83,0x01,0x81,0x81,0x00,0x00,0x00,0x00,0xCC,0x81,0x00,0x7E,0xBD,0x0C,0x60,0xC3,0x66,0xB1,0xC0,0xEF,0xC3,0x81,0xC3,0x00,0x00,0x00,0x00,0xEF,0x01,0x00,0x03,0x00,0xC6,0x8F,0xCC,0xCD,0x00,0x81,0x03,0x00,0x00,0x83,0x00,0x83,0x0C,0x6C,0x03,0xCC,0xCC,0xC0,0xCC,0xCC,0x03,0xCC,0x03,0x83,0x83,0x81,0x00,0x03,0x03,0x0C,0xCC,0x66,0x66,0xC6,0x26,0x06,0x66,0xCC,0x03,0xCC,0x66,0x66,0x6C,0x6C,0xC6,0x06,0xC7,0x66,0xCC,0x03,0xCC,0x87,0xC6,0xCC,0x03,0x6C,0x03,0x60,0xC0,0x00,0x00,0x00,0xCC,0x66,0xCC,0xCC,0xCC,0x06,0xC7,0x66,0x81,0xC0,0x66,0x81,0x6D,0xCC,0xCC,0x66,0xCC,0x06,0xCC,0xC6,0xCC,0x87,0xC6,0xC6,0xC3,0x4C,0x03,0x81,0x03,0x00,0xEF,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0x0C,0x0C,0x0C,0x81,0x81,0x81,0xCC,0xCC,0x4C,0x8D,0x8D,0xCC,0xCC,0xCC,0xCC,0xCC,0xC3,0xCC,0xCC,0xCC,0x0C,0xC6,0xC6,0x8D,0xCC,0x81,0xCC,0xCC,0xCC,0x6C,0x00,0x00,0xCC,0x44,0xC0,0x68,0x3B,0x87,0x66,0x66,0x94,0x55,0x6B,0x81,0x81,0xCC,0xCC,0xCC,0x44,0x66,0x66,0x66,0x00,0x87,0x03,0x81,0x00,0x00,0x81,0x81,0x00,0x81,0xCC,0xCC,0x00,0x66,0x00,0x66,0x66,0x00,0x66,0xC7,0x6C,0xC6,0x4C,0x4C,0x4C,0x00,0x03,0x03,0x03,0x00,0x81,0xFF,0xFF,0x81,0x03,0x00,0xCC,0x8F,0xCC,0xCC,0xCC,0xCC,0x66,0x06,0x06,0xCC,0xCC,0xCC,0xC3,0x03,0x00,0x00,0x00,0xCF,0x8F,0x3B,0xB1,0xC0,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xCF,0x00},
     {0x00,0xE7,0xE7,0x01,0x00,0xE7,0xE7,0x00,0x00,0x00,0x00,0x87,0x81,0x00,0x6E,0x81,0x08,0x20,0x81,0x66,0xB1,0x6C,0xEF,0x81,0x81,0x81,0x00,0x00,0x00,0x00,0xEF,0x01,0x00,0x03,0x00,0xC6,0x03,0xC8,0x67,0x00,0xC0,0x06,0x00,0x00,0x83,0x00,0x83,0x08,0xC7,0xCF,0xCF,0x87,0xE1,0x87,0x87,0x03,0x87,0x07,0x00,0x81,0xC0,0x00,0x06,0x03,0xC7,0xCC,0xCF,0xC3,0x8F,0xEF,0x0F,0xE3,0xCC,0x87,0x87,0x6E,0xEF,0x6C,0x6C,0x83,0x0F,0xC0,0x6E,0x87,0x87,0x87,0x03,0xC6,0xCC,0x87,0xEF,0xC3,0x20,0xC3,0x00,0x00,0x00,0x67,0xCD,0x87,0x67,0x87,0x0F,0xC0,0x6E,0xE7,0xCC,0x6E,0xE7,0x6C,0xCC,0x87,0xC7,0xC7,0x0F,0x87,0x83,0x67,0x03,0xC6,0x6C,0xC0,0xCF,0xC1,0x81,0x0E,0x00,0x00,0x87,0x67,0x87,0x67,0x67,0x67,0x67,0x87,0xC7,0xC7,0xC7,0xE7,0xE7,0xE7,0xCC,0xCC,0xCF,0xFE,0xED,0x87,0x87,0x87,0x67,0x67,0xC0,0x87,0x87,0x87,0xEF,0x8B,0x6C,0x07,0x67,0xE7,0x87,0x67,0xCC,0x6C,0x00,0x00,0x87,0x83,0x00,0xC0,0xF3,0x03,0x33,0xCC,0x42,0xAA,0xD6,0x81,0x81,0xCC,0xCC,0xCC,0x83,0x66,0x66,0x66,0x00,0x03,0x03,0x81,0x00,0x00,0x81,0x81,0x00,0x81,0x67,0xCC,0x00,0x66,0x00,0x66,0x66,0x00,0x66,0x6C,0xC7,0x8F,0xCF,0xCF,0xCF,0x00,0x87,0x87,0x87,0x00,0x81,0xFF,0xFF,0x81,0x87,0x00,0x87,0x0C,0x87,0x87,0x87,0x87,0xB7,0x0F,0x0F,0x87,0x87,0x87,0xC0,0x87,0x00,0x00,0x00,0x00,0x00,0xF3,0xB1,0x6C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
     {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0xE7,0x00,0xE7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xCC,0x00,0x00,0xCC,0x00,0x00,0x00,0x00,0x00,0x06,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF1,0x30,0x00,0x00,0x00,0x29,0x55,0xBD,0x81,0x81,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x00,0x03,0x00,0x81,0x00,0x00,0x81,0x81,0x00,0x81,0x00,0x00,0x00,0x66,0x00,0x66,0x66,0x00,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x81,0xFF,0xFF,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0xE7,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
     {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x87,0x00,0x00,0x87,0x00,0x00,0x00,0x00,0x00,0x0F,0xE1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x94,0xAA,0x6B,0x81,0x81,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x00,0x00,0x00,0x81,0x00,0x00,0x81,0x81,0x00,0x81,0x00,0x00,0x00,0x66,0x00,0x66,0x66,0x00,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x81,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}
        };
    
        #define char_put() \
          {asm volatile("ld __tmp_reg__, x+"      "\n\t" \
                        "movw  r30, %A0"          "\n\t" \
                        "add   r30, __tmp_reg__"  "\n\t" \
                        "adc   r31, __zero_reg__" "\n\t" \
                        "lpm   %A1, z"            "\n\t" \
                        : \
                        : "r" (&schrift[j][0]), "r" (temp) \
                        : "r26", "r27", "r30", "r31" \
                       ); \
                PORTB=(1<<CP); \
                PORTC=temp; \
                PORTB=0; \
                PORTB=(1<<CP); \
                asm volatile ("swap %0" : "=r" (temp) : "0" (temp)); \
                PORTC=temp; \
                PORTB=0; \
           }
    
    
        int main(void)
        {
            unsigned char text[20][40];
            unsigned char zeichen = 0;
            volatile unsigned char dummy;
            unsigned char temp = 0;
            unsigned char *tptr;
        
            for (unsigned char y = 0; y < 20; y++)
            {
                for (unsigned char x = 0; x < 40; x++)
                       text[y][x] = zeichen++;
            }
                dummy = text[19][39];  // optimierung verhindern
        
            DDRC=0x0F;
            DDRB=0x07;
        
        
            PORTB=(1<<FRAME)|(1<<LOAD);       
        
            while(1)
            {
            tptr = &text[0][0];
                PORTB=(1<<FRAME)|(1<<CP);            
                for(volatile unsigned char lines =0; lines<20;lines++)
                {
                    for(volatile unsigned char rows =0; rows<12;rows++)
                    {
                    unsigned char j = rows;
                        asm volatile("movw r26, %A0" : : "r" (tptr) : "r26", "r27");
                        char_put() char_put() char_put() char_put();
                        char_put() char_put() char_put() char_put();
                        char_put() char_put() char_put() char_put();
                        char_put() char_put() char_put() char_put();
                        char_put() char_put() char_put() char_put();
                        char_put() char_put() char_put() char_put();
                        char_put() char_put() char_put() char_put();
                        char_put() char_put() char_put() char_put();
                        char_put() char_put() char_put() char_put();
                        char_put() char_put() char_put() char_put();            
                    PORTB=(1<<LOAD);    
                    }
                tptr += 40;
                }
                PORTB=(1<<LOAD)|(1<<FRAME);
            }
        }
    Nachtrag:
    So werden's 114Hz:
    Code:
          const unsigned char schrift[12][256] PROGMEM __attribute__((aligned(256))) ={
          //  ...
        #define char_put() \
          {asm volatile("ld __tmp_reg__, x+"      "\n\t" \
                        "movw  r30, %A0"          "\n\t" \
                        "add   r30, __tmp_reg__"  "\n\t" \
                        "lpm   %A1, z"            "\n\t" \
                        : \
                        : "r" (&schrift[j][0]), "r" (temp) \
                        : "r26", "r27", "r30", "r31" \
                       ); \
                PORTB=(1<<CP); \
                PORTC=temp; \
                PORTB=0; \
                PORTB=(1<<CP); \
                asm volatile ("swap %0" : "=r" (temp) : "0" (temp)); \
                PORTC=temp; \
                PORTB=0; \
           }
    Geändert von MagicWSmoke (23.04.2012 um 12:13 Uhr)

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    31.05.2009
    Ort
    Stralsund
    Alter
    33
    Beiträge
    436
    Oh man...
    Jetzt ist es vorbei, bis gestern war der Code kein Problem, jetzt muss ich erst einmal rausbekommen was was macht
    Woher hast Du das Wissen? Gibt es da ein Zauberbuch?

    Das Display macht keine Probleme, es läuft auch noch bei 132Hz, jetzt sind es 114,6Hz mit -O2 bzw. -O3.

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2009
    Beiträge
    437
    Zitat Zitat von MisterMou Beitrag anzeigen
    Woher hast Du das Wissen? Gibt es da ein Zauberbuch?
    286/386er in Assembler geschrieben, auch dazu gibt's natürlich Bücher, und dann irgendwann mal auf AVR. Da kennt man das Meiste schon und braucht eigentlich nur noch ein Instruction Set Datenblatt.
    Mehr Kopfzerbrechen hatte mir der C-Inlineassembler gemacht, der recht kryptisch ist und auch durchaus kreativ Code generiert hatte. Manchmal unfunktionell, aber immer wieder interessant. Für den Assembler gibt's Quellen im Netz, so auch hier im Forum, und manches bringt man durch Trial & Error raus.
    Das Display macht keine Probleme, es läuft auch noch bei 132Hz, jetzt sind es 114,6Hz mit -O2 bzw. -O3.
    So wie ich's verstehe läuft die aktuelle Hardware mit dem neuen Code, ist das richtig ? Konnte nur "trocken" probieren, war also nicht sicher.

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    31.05.2009
    Ort
    Stralsund
    Alter
    33
    Beiträge
    436
    Du bist also ein "alter" Hase
    Ich fang ja erst an
    Normalerweise wüsste ich nicht einmal was was ein AVR ist 2.Semester Elektrotechnik...

    Genau, läuft alles wunderbar, hatte bloß mal zum Test 18,4MHz drauf gegeben
    Ich schlage schon Alarm, wenns nicht läuft^^

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2009
    Beiträge
    437
    Ja, ich mach' das schon 'ne geraume Zeit

    Ist in Ordnung, schaut doch auch ganz gut aus.
    Hilft außerdem immer mit den Stoff weiter zu sein als der Rest.

    Ich denke, dass es noch schneller geht, aber dann müsste man die Schleifen komplett in Assembler machen, da ließe sich noch was sparen.
    Wie's jetzt ist, find' ich 'ne gute Mischung, es ist noch weitestgehend C und da optimiert, wo der Compiler selbst nicht wollte - zum Teil kam da schon wildes Zeug raus.

  7. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2009
    Beiträge
    437
    Interesse an einer Interrupt-getriebenen Version ?

Ähnliche Themen

  1. Zusätzlich zu der M32 noch ein mega8?
    Von AsuroPhilip im Forum Robby RP6
    Antworten: 40
    Letzter Beitrag: 04.11.2011, 10:43
  2. Gibt es noch Realismus im Fernsehen?
    Von HannoHupmann im Forum Offtopic und Community Tratsch
    Antworten: 43
    Letzter Beitrag: 03.08.2011, 14:34
  3. GLCD (GDM12864B) mit KS0108B gibt PixelFehler
    Von SvenS im Forum AVR Hardwarethemen
    Antworten: 1
    Letzter Beitrag: 21.04.2011, 10:05
  4. Gibt es noch den Crazy-Car Wettbewerb?
    Von Reinald im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 7
    Letzter Beitrag: 23.10.2008, 11:28
  5. DISAVR - Gibt´s den noch (funktionierend)?
    Von roboguy im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 21.09.2005, 22:59

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen