- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 57

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

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2009
    Beiträge
    437
    Zitat Zitat von Besserwessi Beitrag anzeigen
    Mit inline ASM könnte man ggf. noch etwas machen, vor allem beim (temp>>4). Die Funktion könnte man mit dem eher selten genutzten ASM Befehl swap deutlich schneller hinbekommen. Es würde mich wundern wenn der Compiler das erkennt.
    Darfst Dich wundern, erkennt er.
    Code:
    swap    r24
    andi    r24,k0F
    out     p15,r24
    Da die Ausgabe für eine Zeile immer jeweils das erste Byte eines Zeichens, dann nächste Zeile das zweite, usw. ist, wäre eine andere Anordnung des Fonts vorteilhafter, weil dann weniger gerechnet werden müsste. Wenn also die erste Zeile eines beliebigen Zeichens linear über 256 Bytes Programmspeicher ansprechbar ist, fällt die Multiplikation mit 12 weg, die erforderlich ist um an die passende Stelle des Fonts zu gelangen.

    Statt
    Code:
    const unsigned char schrift[256][12] PROGMEM ={
    eine Anordnung
    Code:
    const unsigned char schrift[12][256] PROGMEM ={
    Ein
    Code:
    temp=pgm_read_byte(&schrift[j][text[ln_ctr][row_ctr]]);
    würde auf 71,7 Hz kommen. Keine Ahnung ob es sich lohnt die Tabelle dafür umzustellen.

    Nachtrag:
    Unter der Voraussetzung, dass die Fonttabelle [12][256] lautet, würde dies hier für 78,4 Hz sorgen, Optimierung -Os:
    Code:
    unsigned char *cptr;
    // ...
    cptr = &schrift[j][0];
       for( unsigned char row_ctr = 0; row_ctr < rows; row_ctr++)
       {
          temp=pgm_read_byte(cptr + text[ln_ctr][row_ctr]);
    // ...
    Geändert von MagicWSmoke (21.04.2012 um 18:27 Uhr)

Ä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
  •  

Solar Speicher und Akkus Tests