Hallo Tim_Ney,
wenn du die aktuelle NiboRoboLib installiert hast, findest du unter
C:\Program Files\NiboRoboLib\doc\nibobee
Dokumentation über das Display und unter
C:\Program Files\NiboRoboLib\code\nibobee\examples
c -Programme dafür.
ich selbst setzte den Nibobee unter Arduino 1.0.6 Umgebung ein und habe das
BGX1 nur als Teminal benutzt um mir Werte auszugeben, das Programm habe ich angefügt.
viel Erfolg
#include <Wire.h>
#include <NIBObee.h>
#define BGX1_I2C_ADDR 11
#define BITMAP_MAX 18
#define LOBYTE(x) (uint8_t)((uint16_t)x)
#define HIBYTE(x) (uint8_t)(((uint16_t)x)>>
// System:
#define CMD_Reset 0x00 // () -> ()
#define CMD_GetVersion 0x01 // () -> (uint16_t version)
#define CMD_GetStatus 0x02 // () -> (uint8_t status)
#define CMD_SetStatus 0x03 // (uint8_t status) -> ()
// Terminaldefinitionen:
#define CMD_TermClear 0x30 // () -> ()
#define CMD_TermGoto 0x31 // (uint8_t col, uint8_t row) -> ()
#define CMD_TermScroll 0x32 // (uint8_t lines) -> ()
#define CMD_TermPrint 0x33 // (char text[]) -> ()
uint8_t bgx1_DDR = 0x00;
uint8_t bgx1_PORT = 0x00;
uint8_t bgx1_PIN = 0x00;
uint8_t bgx1_Leds = 0x00;
uint8_t bgx1_Keys = 0x00;
uint8_t bgx1_x;
uint8_t bgx1_y;
uint8_t i2c_tx_size;
uint8_t i2c_rx_size;
uint8_t i2c_buf[16];
static uint8_t bgx1_transaction(uint8_t txsize, uint8_t rxsize) {
i2c_tx_size = txsize;
i2c_rx_size = rxsize;
Wire.beginTransmission(i2c_buf[0]);
for(int i=1;i<i2c_tx_size; i++){
Wire.write(i2c_buf
);
}
return Wire.endTransmission();
}
void bgx1_reset() {
i2c_buf[0] = BGX1_I2C_ADDR;
i2c_buf[1] = CMD_Reset;
bgx1_transaction(2, 1);
}
void bgx1_termClear() {
i2c_buf[0] = BGX1_I2C_ADDR;
i2c_buf[1] = CMD_TermClear;
bgx1_transaction(2, 1);
}
void bgx1_termGoto(uint8_t col, uint8_t row) {
i2c_buf[0] = BGX1_I2C_ADDR;
i2c_buf[1] = CMD_TermGoto;
i2c_buf[2] = col;
i2c_buf[3] = row;
bgx1_transaction(4, 1);
}
void bgx1_termScroll(int8_t lines) {
i2c_buf[0] = BGX1_I2C_ADDR;
i2c_buf[1] = CMD_TermScroll;
i2c_buf[2] = lines;
bgx1_transaction(3, 1);
}
void bgx1_termPrint(const char * text) {
i2c_buf[0] = BGX1_I2C_ADDR;
i2c_buf[1] = CMD_TermPrint;
uint8_t len = strlen(text);
memcpy (i2c_buf+2, text, len);
bgx1_transaction(2+len, 2);
}
void setup() {
NIBObee.begin();
NIBObee.checkVoltage();
Wire.begin();
bgx1_reset();
bgx1_termClear();
}
void loop(){
bgx1_termPrint("Hello! ");
delay(2000);
}