RoboterCC - Robotic Code Compiler
Forum Robot Kits NIBO 2 NIBO 2 Projekte NDS3-Grafik Demo1 für den NIBO2

Welcome

Nachrichten

Sie sind nicht eingeloggt.

Werbung

Banner

Letzte Themen

Site-Statistic

  • 7416 private projects
  • 378 public projects
  • 16172649 lines compiled
  • 58122 builds
NIBO @ facebook YouTube Twitter
Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:
  • Seite:
  • 1

THEMA: NDS3-Grafik Demo1 für den NIBO2

NDS3-Grafik Demo1 für den NIBO2 11 Jahre 10 Monate her #1150

  • Georg
  • Georgs Avatar
  • OFFLINE
  • Gold Boarder
  • Beiträge: 290
Hallo,

heute möchte ich das Projekt "NDS3-Grafik Demo1" vorstellen.
Die NDS3-Messwerte werden als als gefüllte Flächen inkl. Koordinaten auf dem LCD-Display angezeigt. Die gesamte berechnete Grafikausgabe wird im Programm in ein
Array geschrieben und dieses Array wird in einem Rutsch zum LCD-Display geschrieben.

Georg

Unbenannt-1.jpg
Letzte Änderung: 11 Jahre 8 Monate her von Georg.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: NDS3-Grafik Demo1 für den NIBO2 11 Jahre 9 Monate her #1197

  • BirgerT
  • BirgerTs Avatar
  • OFFLINE
  • Gold Boarder
  • Beiträge: 325
Hi Georg, erstmal :clap: und :thumbsup:

Meine Überlegung ist, ob es nicht generell besser und schneller ist, die Ausgabe im Speicher zu zeichnen und dann auf's Display zu flutschen, so wie es in Programmen mit Grafikausgabe üblich ist (Double Buffering). Habe mir also Deinen Code mal genauer angesehen und bin dabei in set_pixel() womöglich über eine verdrehte Abfrage gestolpert.
/* set_pixel  setzt 1 Pixel im Array nds3_bits */
void set_pixel(uint8_t x, uint8_t y) {
  uint8_t bit,posx;
    uint16_t i;
  if (posx > 127) posx = 127; // Warum dies IF ..
     posx = x/8; // ..wenn posx hier neu gesetzt wird?
     bit = x%8;
   if (y > 63) y = 63;
     i = posx + (y *16);
     nds3_bits[i] |= (1<<bit);
     }

Hast Du schon mal getestet, wie lange die Bufferausgabe dauert?

Dann das Thema Display in Fahrtrichtung lesbar - wenn ich das wollte, würde ich das gesamte Display drehen, das Flachband ist doch lang genug..
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: NDS3-Grafik Demo1 für den NIBO2 11 Jahre 9 Monate her #1198

  • Georg
  • Georgs Avatar
  • OFFLINE
  • Gold Boarder
  • Beiträge: 290
Hallo BirgerT,

die unsinnige if-Abfrage in set_pixel hatte ich übersehen und jetzt geändert.
Danke!

/* set_pixel setzt 1 Pixel im Array nds3_bits */
void set_pixel(uint8_t x, uint8_t y) {
uint8_t bit,posx;
uint16_t i;
if ( x > 127) x = 127; // Hier sollte x überprüft werden
posx = x/8;
bit = x%8;
if (y > 63) y = 63;
i = posx + (y *16);
nds3_bits |= (1<<bit);
}


Nun zur Grafikausgabe. Die ganze berechnete Grafik wird bei mir ins Array nds3_bits geschrieben und mit gfx_draw_xbm in einem Rutsch zum Display
übertragen. Das hat meiner Ansicht nach folgende Vorteile:
1. Die gesamte berechnete Grafik befindet sich im Speicher des ATmega128 und ich kann diese für weitere Berechnungen nutzen.
2. Die Grafik wird nur einmal neu aufgebaut.

Nun zum Thema Display in Fahrtrichtung lesbar. Wenn ich das Display drehen würde,
mußte ich die Flachkabel knicken. Ein NoGo wegen der Gefahr von Kabelbrüchen!!!

Georg
Letzte Änderung: 11 Jahre 9 Monate her von Georg.
Der Administrator hat öffentliche Schreibrechte deaktiviert.
  • Seite:
  • 1
Ladezeit der Seite: 0.077 Sekunden

Werbung