#define ArrLen(x) (sizeof(x)/sizeof(x[0]))
uint16_t titleBanner[4] = {219,178,177,176};
char buf[64];
const char* myStr = "0123456789ABCDEFGHIJKLMNOPQRSTUVXYZ";
void writeBuf2(const char* src, char* dst) {
while (*src)
*dst++ = *src++;
}
void writeBuf(uint8_t *data) {
uint8_t *dst = &(buf[0]);
while (*src != NULL)
*dst++ = *data++;
}
//void WriteBytes( byte (&arr)[N] ){
//void showTitle(const uint16_t banner[], size_t N, const char* str) {
template< size_t N >
void showTitle(uint16_t (&banner)[N], const char* title ){
char screenBuf[22];
int i, n = 0;
uint16_t leftPad, display_width = 22;
memset(screenBuf, '\0', sizeof(screenBuf));
for (i = 0; i < strlen(title); i++) {
if (isprint(title[i]))
screenBuf[n++] = (isalpha(title[i])) ? toupper(title[i]) : title[i];
}
Serial.print("'"); Serial.print(title); Serial.print("' ("); Serial.print(strlen(title)); Serial.println(")");
Serial.print("'"); Serial.print(screenBuf); Serial.print("' ("); Serial.print(n); Serial.println(")");
leftPad = (display_width - ((n > display_width-1) ? display_width-1 : n))/2;
Serial.print("leftPad: "); Serial.println(leftPad);
for (i = 0; i < leftPad+2; i++)
Serial.write(banner[(i % N)]);
Serial.print(screenBuf);
for (n = (leftPad + n); n < (display_width); n++)
Serial.write(banner[(i++ % N)]);
Serial.println();
}
void setup() {
Serial.begin(115200);
writeBuf(&myStr, &buf);
uint16_t current = 0x0011;
uint8_t level = 1;
uint8_t val = ((current >> (level*4)) & 0xF);
//Serial.println(val);
/*
uint16_t x = 0x1238;
//Serial.println(x & 0xF);
for (uint8_t i = 0; i<16; i+=4)
Serial.println((x >> i) & 0xF);
*/
//showTitle(titleBanner, "herro");
/*
int16_t special[] = {230, 248, 229};
int16_t i, n = 0;
int16_t numbers[30];
char letters[30];
Serial.println("int16_t letters[] = {");
for (i=97; i<123; i++)
numbers[n] = i,
letters[n++] = (char)i;
for (i=0; i<3; i++)
numbers[n] = special[i],
letters[n++] = (char)special[i];
for (i=0; i<29; i++) {
Serial.print(" "),
Serial.print(i), Serial.print(" "),
Serial.print(i%7), Serial.print(" -> "),
Serial.print(numbers[i]),
Serial.print(",\t// "),
Serial.println((char)(numbers[i]));
//Serial.println((char)(numbers[i]-32));
}
Serial.println("};");
for (;;);
for (int16_t i=197; i<249; i++) {
char c = (byte)i;
char b = (byte)(i-32);
if (
(i == 197) ||
(i == 198) ||
(i == 216) ||
(i == 229) ||
(i == 230) ||
(i == 248)
) {
Serial.print(i); Serial.print(" : "); Serial.write(c);
Serial.print(" "); Serial.println(b);
}
}
*/
}
// -----------------------------------------------------
/*
void showTitle(const char* title, uint16_t (&banner)[N]){
char screenBuf[22];
int i, n = 0;
int leftPad;
memset(screenBuf, '\0', sizeof(screenBuf));
for (i = 0; i < strlen(title); i++)
if (isprint(title[i]))
screenBuf[n++] = (isalpha(title[i])) ? toupper(title[i]) : title[i];
int display_width = 21;
leftPad = (((display_width-1)/6) - n) / 2;
Serial.print("leftPad: "); Serial.println(leftPad);
}
*/
void loop() {
delay(10);
}