мне помнится у нас на старом форуме была тема перлов, я чЁт пропустил, тут еще не создавали, а то вот первый претендент так сказать ![]()
я проверю позже библу. мне не сложно. хорошо будет если заработает
сейчас функцию drawBitmap тестирую
крутая библиотека. вообще ноль ресурсов ест
#include <OzOLED.h>
const uint8_t myImage[] PROGMEM =
{0x3C,0x42,0x91,0xA5,0xA1,0xA5,0x91,0x42,0x3C};
void setup(){
OzOled.init(); //initialze Oscar OLED display
}
void loop(){
OzOled.drawBitmap(myImage,5,6,2,1);
}
Она их просто ЖРЁТ !!!
подскажите где можно скачать аналогичную прогу?
здесь ссылка нерабочая: www.ikarab.narod.ru/KS0108.html
В онлайн можно генерировать - image2cpp
а standalone бывают как на скриневыше простые?
Написать? Пара дней и 20 тыр. Для “друзей” можно 15. ![]()
та не, поищу сам. только найти ничего не могу. только для 16х2 дисплея есть (
У меня есть в Excel…
И у меня по ссылке http://www.ikarab.narod.ru/KS0108.rar нормально всё скачивается !
Дык там же ж
![]()
для AVR поди не подойдёт ![]()
Для вертикальной организации подойдёт …
Но, для надёжности, лучше поискать для AVR ![]()
Кончайте клиентуру отпугивать ![]()
уже качнул и только что проверил. работает идеально после того как cpp файл подкрутил. а то сразу вылазили лишние пиксели. но уже ок все ![]()
работает хорошо. в 16 ричную систему переводит иконку. пару штук создал и такой же результат на экране. и в гугле что то выбор не большой из простого )
пытаюсь вывести число 323.4 на экран но вместо него вижу 323.39. float такое выдает (
#include <Wire.h>
#include <OzOLED.h>
void setup(){
OzOled.init();
}
void loop(){
float www = 323.4;
// long sens[] = {11.2, 333.4, -8.5};
OzOled.clearDisplay();
OzOled.printNumber(www,2,5,5);
}
Ужость! И куда смотрит правительство?
а это функция printNumber
byte OzOLED::printNumber(float float_num, byte prec, byte X, byte Y){
if ( X < 128 )
setCursorXY(X, Y);
// prec - 6 maximum
byte num_int = 0;
byte num_frac = 0;
byte num_extra = 0;
long d = float_num; // get the integer part
float f = float_num - d; // get the fractional part
if (d == 0 && f < 0.0){
printChar('-');
num_extra++;
printChar('0');
num_extra++;
f *= -1;
}
else if (d < 0 && f < 0.0){
num_int = printNumber(d); // count how many digits in integer part
f *= -1;
}
else{
num_int = printNumber(d); // count how many digits in integer part
}
// only when fractional part > 0, we show decimal point
if (f > 0.0){
printChar('.');
num_extra++;
long f_shift = 1;
if (num_int + prec > 8)
prec = 8 - num_int;
for (byte j=0; j<prec; j++){
f_shift *= 10;
}
num_frac = printNumber((long)(f*f_shift)); // count how many digits in fractional part
}
return num_int + num_frac + num_extra;
}
Кашмар!
а почему он float округляет так? что делать

