Projekte
BirgerT
nibo2_MyWorx
nibo2_xbmgfx.h
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_MyWorx
liesmich.txt
main.c
nibo2_akku.c
nibo2_akku.h
nibo2_audio.c
nibo2_audio.h
nibo2_audio_titels.c
nibo2_globaldef.h
nibo2_parameter.c
nibo2_parameter.h
nibo2_sensors.c
nibo2_sensors.h
nibo2_timer2.c
nibo2_timer2.h
nibo2_tour.c
nibo2_tour.h
nibo2_xbmgfx.c
nibo2_xbmgfx.h
Studio6_m...x_hex.txt
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
7427 private projects
385 public projects
16181052 lines compiled
58220 builds
NIBO
@
nibo2_MyWorx/nibo2_xbmgfx.h [read only]
/****************************************************************** Nibo Grafix Bibliothek - BirgerT 06.05.2012 BSD License see "liesmich.txt" ******************************************************************/ #ifndef _NIBO2_XBMGFX_H_ #define _NIBO2_XBMGFX_H_ #include "nibo2_globaldef.h" // es werden nur die Grafiken in den Build übernommen, deren // Namen nachfolgend definiert wurden. Soll eine Grafik nicht // eingebunden werden, sind das #define und die enum Zeile zu // kommentieren // Grafiksymbole in dieser Datei: // #define xbm_leer8 xbm_leer8 // Rumpf für 8 Pix Breite #define xbm_undef xbm_undef // Ausgabe undef.ID 8x8 Pix #define xbm_ball8 xbm_ball8 // Ball/Kugel 8x8 Pix // #define xbm_leer16 xbm_leer16 // Rumpf für 16 Pix Breite #define xbm_smily1 xbm_smily1 // Smily 16x16 smile #define xbm_smily2 xbm_smily2 // Smily 16x16 blink #define xbm_smily3 xbm_smily3 // Smily 16x16 bääh #define xbm_smily4 xbm_smily4 // Smily 16x16 omg #define xbm_akku1 xbm_akku1 // Batterie 16x14 #define xbm_audio_keys xbm_audio_keys // Playertasten 8x8 // Die Grafiknamen müssen für die Funktion draw_icon() in // Nummern umgesetzt werden enum { // xbm_leer8 = 255, // xbm_leer16 = 254, xbm_undef = 250, xbm_ball8 = 200, xbm_smily1 = 101, xbm_smily2 = 102, xbm_smily3 = 103, xbm_smily4 = 104, xbm_akku1 = 201 }; // Grafik 'name' aus der Bibliothek auf dem Display // an der Position 'x,y' ausgeben. void draw_icon(int8_t x, int8_t y, uint8_t name); /****************************************************************** XBM16 Makros von workwind in ISO C-99; Kommentare von BirgerT Mit diesen Makros wird eine sichtbar im Quellcode erstellte Grafik in die entsprechende Bitfolge für das Grafik Array umgewandelt. Verwendung im Quellcode: #ifdef xbm_smily1 #define xbm_smily1_width 16 #define xbm_smily1_height 16 const unsigned char xbm_smily1_data[] PROGMEM = { XBM16(_,_,_,_,_,X,X,X,X,X,X,_,_,_,_,_), XBM16(_,_,_,X,X,_,_,_,_,_,_,X,X,_,_,_), XBM16(_,_,X,_,_,_,_,_,_,_,_,_,_,X,_,_), XBM16(_,X,_,_,_,X,_,_,_,_,X,_,_,_,X,_), XBM16(_,X,_,_,X,X,X,_,_,X,X,X,_,_,X,_), XBM16(X,_,_,_,X,X,X,_,_,X,X,X,_,_,_,X), XBM16(X,_,_,_,X,X,X,_,_,X,X,X,_,_,_,X), XBM16(X,_,_,_,_,X,_,_,_,_,X,_,_,_,_,X), XBM16(X,_,_,_,_,_,_,_,_,_,_,_,_,_,_,X), XBM16(X,_,_,X,_,_,_,_,_,_,_,_,X,_,_,X), XBM16(X,_,_,X,_,_,_,_,_,_,_,_,X,_,_,X), XBM16(_,X,_,_,X,_,_,_,_,_,_,X,_,_,X,_), XBM16(_,X,_,_,_,X,X,X,X,X,X,_,_,_,X,_), XBM16(_,_,X,_,_,_,_,_,_,_,_,_,_,X,_,_), XBM16(_,_,_,X,X,_,_,_,_,_,_,X,X,_,_,_), XBM16(_,_,_,_,_,X,X,X,X,X,X,_,_,_,_,_) }; #endif Das Array wird vom Präcompiler (CPP) übersetzt zu static unsigned char xbm_smily1_data[] PROGMEM = { 0x07,0xE0, // 0b00000111, 0b11100000, 0x18,0x18, // 0b00011000, 0b00011000, 0x20,0x04, // 0b00100000, 0b00000100, usw. }; ******************************************************************/ // a) Makro verbindet die übergebenen Parameter zu einem Ausdruck #define _XCAT(a,b) a##b // b) XBMBOOL_ wird durch 0U ersetzt #define _XBMBOOL_ 0U // c) XBMBOOLX wird durch 1U ersetzt #define _XBMBOOLX 1U // d) XBMVAL liefert ein Byte mit einem gesetzten Bit // an der Position pos wenn der Paramter bit ein X ist: // bit ist ein X --> _XCAT2 macht daraus _XBMBOOLX (_XBMBOOL##X) // bit ist ein _ --> _XCAT2 macht daraus _XBMBOOL_ (_XBMBOOL##_) // _XBMBOOLX wird wiederum durch 1U ersetzt und mit <<pos nach links geschoben #define _XBMVAL(bit, pos) (_XCAT(_XBMBOOL,bit)<<pos) // e) mit XBM8() werden 8 Bitmasken zu einem uint8_t verOdert #define XBM8(a,b,c,d,e,f,g,h) ((uint8_t)\ (_XBMVAL(a,0)|_XBMVAL(b,1)|_XBMVAL(c,2)|_XBMVAL(d,3)\ |_XBMVAL(e,4)|_XBMVAL(f,5)|_XBMVAL(g,6)|_XBMVAL(h,7))) // f) XBM16 erzeugt zwei Byte pro Zeile mit 16 Zeichen #define XBM16(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) \ XBM8(a,b,c,d,e,f,g,h), XBM8(i,j,k,l,m,n,o,p) #endif // _NIBO2_XBMGFX_H_
Compiler results:
Werbung
Online
bradlygoi441228704773
irvinschutt28551
josch
josettecostantino862
sashaserrano161