Projekte
BirgerT
nibo2_drawmode_demo
main.c
Projekte
Forum
Doku
Öffentliche Projekte
Startseite
Beispielprogramme
Projekte von anderen
Welcome
Username
Passwort
Eingeloggt bleiben
Zugangsdaten vergessen?
Registrieren
Projektverwaltung
⇨ Please choose! ⇦
——————————————————
✎ Create new project...
★ Browse existing projects...
——————————————————
⚬ MotorTest#1
⚬ C Tutorial 8#1
⚬ NIBO2 C Project#1
⚙ C Tutorial 15#1
⚬ 2010_11_18_el_test001#1
nibo2_drawmode_demo
main.c
Project details
Compiler settings
Nachrichten
Sie sind nicht eingeloggt.
Neuigkeiten
★
NiboRoboLib 3.6
2017-01-17: Neue Version 3.6
★
NiboRoboLib 3.4.1
2016-04-16: Neue Version 3.4.1
★
Coding Tutorial
2015-11-22: Jetzt auch für den NIBO burger!
Site-Statistic
7426 private projects
385 public projects
16180353 lines compiled
58212 builds
NIBO
@
nibo2_drawmode_demo/main.c [read only]
/* NIBO2 C project */ /* Programm zum Anzeigen/Testen der verschiedenen gfx_draw_mode Parameter */ #include <nibo/niboconfig.h> #include <nibo/display.h> #include <nibo/gfx.h> #include <nibo/copro.h> #include <nibo/delay.h> #include <nibo/iodefs.h> #include <nibo/bot.h> #include <nibo/leds.h> #include <nibo/pwm.h> #include <nibo/i2cmaster.h> #include <stdio.h> #include <avr/interrupt.h> #include <avr/pgmspace.h> // Hilfsmakro setzt die übergebenen Parameter zu einem Ausdruck zusammen #define _XCAT(x,a,b,c,d,e,f,g,h) x##a##b##c##d##e##f##g##h // erzeugt ein XBM Grafikbyte und tauscht HighNibble und LowNibble // XBM8(0,1,0,1,1,0,1,0) -> 0b10100101 //#define XBM8(a,b,c,d,e,f,g,h) (uint8_t) _XCAT(0b,e,f,g,h,a,b,c,d) /* Vorlage für ein 8x8 Icon #define xbm_icon8_width 8 #define xbm_icon8_height 8 static unsigned char xbm_icon8_data[] PROGMEM = { XBM8(0,0,0,0,0,0,0,0), XBM8(0,0,0,0,0,0,0,0), XBM8(0,0,0,0,0,0,0,0), XBM8(0,0,0,0,0,0,0,0), XBM8(0,0,0,0,0,0,0,0), XBM8(0,0,0,0,0,0,0,0), XBM8(0,0,0,0,0,0,0,0), XBM8(0,0,0,0,0,0,0,0) }; */ // das funktioniert entgegen der Definitin aber so: #define XBM8(a,b,c,d,e,f,g,h) (uint8_t) _XCAT(0b,h,g,f,e,d,c,b,a) // erzeugt zwei XBM Grafikbytes und tauscht HighNibble und LowNibble // XBM16(0,1,0,1,1,0,1,0,0,0,1,1,1,1,0,0) -> 0b10100101,0b11000011 //#define XBM16(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) (uint8_t) _XCAT(0b,e,f,g,h,a,b,c,d),(uint8_t) _XCAT(0b,m,n,o,p,i,j,k,l) /* Vorlage für ein 16x16 Icon #define xbm_icon16_width 16 #define xbm_icon16_height 16 static unsigned char xbm_icon16_data[] PROGMEM = { XBM16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), XBM16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), XBM16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), XBM16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), XBM16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), XBM16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), XBM16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), XBM16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), XBM16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), XBM16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), XBM16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), XBM16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), XBM16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), XBM16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), XBM16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), XBM16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) }; */ // das funktioniert entgegen der Definitin aber so: #define XBM16(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) (uint8_t) _XCAT(0b,i,j,k,l,m,n,o,p),(uint8_t) _XCAT(0b,a,b,c,d,e,f,g,h) #define xbm_icon1_width 8 #define xbm_icon1_height 8 static unsigned char xbm_icon1_data[] PROGMEM = { XBM8(0,0,0,0,0,0,0,1), XBM8(0,0,0,0,0,1,1,1), XBM8(0,0,0,1,1,1,1,1), XBM8(0,0,0,0,0,1,1,1), XBM8(0,0,0,0,1,1,0,1), XBM8(0,0,0,1,1,0,0,1), XBM8(0,0,1,1,0,0,0,0), XBM8(0,1,1,0,0,0,0,0) }; #define xbm_smile1_width 16 #define xbm_smile1_height 16 static unsigned char xbm_smile1_data[] PROGMEM = { XBM16(0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0), XBM16(0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0), XBM16(0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0), XBM16(0,1,0,0,0,1,0,0,0,0,1,0,0,0,1,0), XBM16(0,1,0,0,1,1,1,0,0,1,1,1,0,0,1,0), XBM16(1,0,0,0,1,1,1,0,0,1,1,1,0,0,0,1), XBM16(1,0,0,0,1,1,1,0,0,1,1,1,0,0,0,1), XBM16(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1), XBM16(1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1), XBM16(1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1), XBM16(1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1), XBM16(0,1,0,0,1,0,0,0,0,0,0,1,0,0,1,0), XBM16(0,1,0,0,0,1,1,1,1,1,1,0,0,0,1,0), XBM16(0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0), XBM16(0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0), XBM16(0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0) }; // Nibografik ausgeben // x-,y- position oben mitte // ratio 0..5 Vergroesserung void draw_nibo(uint8_t xm, uint8_t y, uint8_t r) { // NIBO-Grafik Standardbreite sind 28 Pix // relative x-pos = x-mitte - breite/2 uint8_t x = xm - 14 * r; gfx_move(x+6*r, y+0); gfx_box(14*r,3*r); gfx_move(x+6*r, y+5*r); gfx_box(14*r,6*r); gfx_move(x+0, y+7*r); gfx_box(4*r, 6*r); gfx_move(x+22*r,y+7*r); gfx_box(4*r, 6*r); } void clear_screen(void){ gfx_fill(0x00); // Clear Screen gfx_move(118,0); gfx_box(10,60); } int main() { leds_init(); display_init(); gfx_init(); pwm_init(); leds_set_displaylight(1024); // sei(); while(1==1) { sei(); gfx_fill(0x00); // Clear Screen gfx_set_proportional(1); // INTRO gfx_draw_mode(GFX_DM_JAM2); // Modus setzen "ueberschreiben" for(uint8_t n=6; n>0; --n) { gfx_fill(0x00); draw_nibo(60+n,2+n*2,n); _delay_ms(500); } //for gfx_move(16,26); gfx_box(100,16); gfx_move(20,30); // Text Ausgabeposition gfx_draw_mode(GFX_DM_COMP); // Modus setzen "ueberschreiben toggeln" gfx_print_text("GFX DRAW MODE DEMO"); _delay_ms(3000); // DRAW MODE DEMO clear_screen(); // Vertikale Ausgabeposition uint8_t y = 0; // Schleife über alle Modi 0,1,2 und 4,5,6 for(uint8_t i=0; i<7; i++) { // Modus 3 gibt es nicht if(i==3) { i++; // Modus 3 gibt es nicht clear_screen(); y = 0; // wieder von oben beginnen } gfx_draw_mode(i); // Modus setzen gfx_move(0,y+4 ); // Text Ausgabeposition switch(i) { case 0: gfx_print_text("GFX_DM_JAM1 = 0"); break; case 1: gfx_print_text("GFX_DM_JAM2 = 1"); break; case 2: gfx_print_text("GFX_DM_COMP = 2"); break; case 4: gfx_print_text("GFX_DM_JAM1_INV = 4"); break; case 5: gfx_print_text("GFX_DM_JAM2_INV = 5"); break; case 6: gfx_print_text("GFX_DM_COMP_INV = 6"); break; } gfx_move(110,y); // Grafik Ausgabeposition gfx_draw_xbm_P(xbm_smile1_width, xbm_smile1_height, (PGM_P) xbm_smile1_data); gfx_draw_mode(GFX_DM_JAM2); // Modus setzen "ueberschreiben" for(uint8_t x=0; x<80; x++) { gfx_move(x,y+12); // Icon Ausgabeposition // die linke Pixelspalte ist 0 und loescht somit immer gfx_draw_xbm_P(xbm_icon1_width, xbm_icon1_height, (PGM_P) xbm_icon1_data); _delay_ms(20); } y += 20; // naechste vertikale Ausgabeposition _delay_ms(3000); // Zeit zum Gucken } // for // ************************************************ Ergänzung vom 10.01.2015 clear_screen(); gfx_draw_mode(GFX_DM_COMP); // XOR Modus setzen gfx_move(0,0); for (uint8_t x2 = 0; x2<128; x2++) { // Linie von A nach B zeichnen gfx_lineTo(x2,63); // Linie von B nach A löschen gfx_lineTo(0,0); } gfx_move(0,63); for (uint8_t x2 = 0; x2<128; x2++) { gfx_lineTo(x2,0); gfx_lineTo(0,63); } gfx_move(127,63); for (uint8_t x2 = 0; x2<128; x2++) { gfx_lineTo(x2,0); gfx_lineTo(127,63); } gfx_move(127,0); for (uint8_t x2 = 0; x2<128; x2++) { gfx_lineTo(x2,63); gfx_lineTo(127,0); } _delay_ms(2000); // Zeit zum Gucken // ********************************************************* // ABSPANN gfx_draw_mode(GFX_DM_COMP); // Modus setzen for(uint8_t n=0; n<5; n++) { gfx_fill(0xff); draw_nibo(30+n*8,2+n,n); _delay_ms(500); } //for gfx_move(35,30); // Grafik Ausgabeposition gfx_draw_xbm_P(xbm_smile1_width, xbm_smile1_height, (PGM_P) xbm_smile1_data); gfx_move(65,30); // Grafik Ausgabeposition gfx_draw_xbm_P(xbm_smile1_width, xbm_smile1_height, (PGM_P) xbm_smile1_data); _delay_ms(5000); // Zeit zum Gucken } // while return 0; } // main
Compiler results:
Werbung
Online
alfonzo03o76876
alicevib4869957876
angelinahirsch2667
angiesonnier022051
austineverard39
blairembley00135154
catherinemccaffrey57
clara581611207854
claysadleir964730
clemmielcg304935418
courtneymccafferty56
deandnv25751532757234
drusillapayne578806
elenal09427874464490
freddymunson4969971
frederickajustice19
fugbetsy84526872
guillermoherrick8
hassanlaboureyas8
humbertoann148070
jaclyntrevino203141
jamierapp475936
janellegard4477
josephinechitwood01
kathy34q1174942
kristeenchaves915
lenoretousignant247
lidamascorro550
loviematthies002
maxiepalfreyman85
melisacastiglia060
natashaappleton130
nganbolton343216575
rolandokilgour324331
shaneldisher04604335
simah379808986344
tiffaniscott025
torriarscott25066
warrenhinder6456