Grafikdisplay
From Nibo
Line 21: | Line 21: | ||
''<verschiedene includes>'' | ''<verschiedene includes>'' | ||
- | int main() | + | int main() |
- | { | + | { |
- | + | sei(); | |
- | + | bot_init(); | |
- | + | leds_init(); | |
- | + | pwm_init(); | |
- | + | '''display_init();''' | |
- | + | '''gfx_init();''' | |
- | + | '''leds_set_displaylight(800);''' | |
- | + | '''gfx_move(10,10);''' | |
- | + | '''gfx_print_text("Nibo sagt:", 0);''' | |
- | + | '''gfx_move(10,30);''' | |
- | + | '''gfx_print_text("Hallo Welt!", 0);''' | |
- | + | int i,j; | |
- | + | for(i=0;i<10;++i) | |
- | + | { | |
- | + | for(j=0;j<6;++j) | |
- | + | { | |
- | + | leds_set_status(LEDS_RED,j); | |
- | + | delay(500); | |
+ | } | ||
+ | leds_set_headlights(256); | ||
+ | for(j=0;j<6;++j) | ||
+ | { | ||
+ | leds_set_status(LEDS_ORANGE,j); | ||
+ | delay(500); | ||
+ | } | ||
+ | leds_set_headlights(512); | ||
+ | for(j=0;j<6;++j) | ||
+ | { | ||
+ | leds_set_status(LEDS_GREEN,j); | ||
+ | delay(500); | ||
+ | } | ||
+ | leds_set_headlights(1024); | ||
} | } | ||
- | + | while(1); | |
- | + | return 0; | |
- | + | } | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | } | + | |
Revision as of 13:27, 20 August 2007
Der Roboter kann um ein Grafikdisplay mit 64 * 128 Pixel erweitert werden. Die Bibliothek des Nibo stellt Zeichen in einer 5 * 8 Pixelmatrix dar (siehe gfx.c). Auf diese Weise können bei einem Pixel Zeichenabstand maximal acht Textzeilen mit jeweils 21 Zeichen ausgegeben werden. Der Anschluss des Displays erfolgt am 20-poligen Wannenstecker X9. Das Display wird im 8-Bit-Modus betrieben. Für die Daten wird Port A (PA0 ... PA7) des ATmega128 eingesetzt. Die Steuerung des Displays erfolgt über nachstehende Anschlüsse:
PB0: Reset
PB4: Chip Select 1
PB6: Displaybeleuchtung
PB7: Chip Select 2
PG2: Enable
PG3: Register Select
PG4: Read / Write
Nachfolgend finden Sie zur Demonstration der Textausgabe ein obligatorisches "Hallo Welt"-Programm mit etwas Umrahmung durch die "Scheinwerfer" und "Leuchtfeuer" (Status-LEDs) des Nibo:
<verschiedene includes>
int main() { sei(); bot_init(); leds_init(); pwm_init(); display_init(); gfx_init(); leds_set_displaylight(800); gfx_move(10,10); gfx_print_text("Nibo sagt:", 0); gfx_move(10,30); gfx_print_text("Hallo Welt!", 0); int i,j; for(i=0;i<10;++i) { for(j=0;j<6;++j) { leds_set_status(LEDS_RED,j); delay(500); } leds_set_headlights(256); for(j=0;j<6;++j) { leds_set_status(LEDS_ORANGE,j); delay(500); } leds_set_headlights(512); for(j=0;j<6;++j) { leds_set_status(LEDS_GREEN,j); delay(500); } leds_set_headlights(1024); } while(1); return 0; }
Weblinks
- KS0108B.pdf - Datenblatt Controller Grafikdisplay