TM1637 и ESP8266

Использование дисплеев и обсуждение пользовательских блоков к ним
Ответить
xtern
Рядовой
Сообщения: 21
Зарегистрирован: 13.04.2017{, 13:11}
Репутация: 0
Откуда: Омск
Контактная информация:

TM1637 и ESP8266

#1

Сообщение xtern » 29.09.2017{, 09:56}

Приветствую знатоки , не понятная ерунда, пытаюсь скомпилировать проект с блоком ТМ1637 на esp8266  код ниже:

#include "TM1637.h"
bool En_4749842_1;
int Value_4749842_1;
bool Point_4749842_1;
int Brt_4749842_1;
TM1637 TM1637_4749842_1(3, 2);
void setup()
{
TM1637_4749842_1.init();//
}
void loop()
{

//Плата:1
En_4749842_1 = !(0);
Value_4749842_1 = 1234;
Point_4749842_1 = 0;
Brt_4749842_1 = 0;

// TM1637_4749842_1
if (En_4749842_1)
{
TM1637_4749842_1.point(Point_4749842_1); // включаем точки
TM1637_4749842_1.set(Brt_4749842_1);//BRIGHT_TYPICAL = 2,BRIGHT_DARKEST = 0,BRIGHTEST = 7;
TM1637_4749842_1.display(Value_4749842_1);
}

}
Компилятор выдает ошибку:
void display(int8_t DispData[]);

^

c:\Users\paulkin_av\Downloads\arduino port\ideV2\libraries\TM1637/TM1637.h:64:8: note:   no known conversion for argument 1 from 'int' to 'int8_t* {aka signed char*}'

c:\Users\paulkin_av\Downloads\arduino port\ideV2\libraries\TM1637/TM1637.h:66:8: note: void TM1637::display(double)

void display(double Decimal);

^

c:\Users\paulkin_av\Downloads\arduino port\ideV2\libraries\TM1637/TM1637.h:67:8: note: void TM1637::display(int16_t)

void display(int16_t Decimal);

^

exit status 1
call of overloaded 'display(int&)' is ambiguous

На Atmega 328 все компилится без проблем, тут же какая то ерунда
Это проявляется только с данными типа Intiger, с Float нормально, но не устраивает
Последний раз редактировалось xtern 29.09.2017{, 10:03}, всего редактировалось 1 раз.

pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

TM1637 и ESP8266

#2

Сообщение pan » 29.09.2017{, 11:39}

думаю это из-за разрядности. атмега 8 битный. для него флоат занимает 4 байта или 32 бита. а есп 32 битный.

xtern
Рядовой
Сообщения: 21
Зарегистрирован: 13.04.2017{, 13:11}
Репутация: 0
Откуда: Омск
Контактная информация:

TM1637 и ESP8266

#3

Сообщение xtern » 02.10.2017{, 05:14}

И как быть?

pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

TM1637 и ESP8266

#4

Сообщение pan » 02.10.2017{, 08:12}

сделайте переменные 32 битными вместо int . например long

xtern
Рядовой
Сообщения: 21
Зарегистрирован: 13.04.2017{, 13:11}
Репутация: 0
Откуда: Омск
Контактная информация:

TM1637 и ESP8266

#5

Сообщение xtern » 03.10.2017{, 08:21}

с long не работает

pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

TM1637 и ESP8266

#6

Сообщение pan » 03.10.2017{, 08:26}

unsigned long ? double?

Добавлено (03.10.2017, 08:25)
---------------------------------------------
хотя наверное double может воспринять как 64 бит число...

Добавлено (03.10.2017, 08:26)
---------------------------------------------
еще можно поискать любой скетч для esp и посмотреть какой там тип данных используется

Аватара пользователя
Dev1
Майор
Сообщения: 1026
Зарегистрирован: 12.07.2016{, 18:04}
Репутация: 59
Откуда: Гондурас

TM1637 и ESP8266

#7

Сообщение Dev1 » 03.10.2017{, 09:06}

Особо не разбирался, т.к. нету есп и тм1637. Кое что нашел на гите по вашей проблеме. Там используют не int8_t, а uint8_t. По int16_t так же uint16_t...
Win10-64 FLProg v7.5.2 Portable :fie:

xtern
Рядовой
Сообщения: 21
Зарегистрирован: 13.04.2017{, 13:11}
Репутация: 0
Откуда: Омск
Контактная информация:

TM1637 и ESP8266

#8

Сообщение xtern » 03.10.2017{, 13:50}

эм, это как? я не очень то программист))

Добавлено (03.10.2017, 13:50)
---------------------------------------------
Спасибо , заработало, но не могу разобраться как включить двоеточие

Аватара пользователя
Sancho
Полковник
Сообщения: 4028
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 577
Откуда: Ярославль.
Имя: Александр
Контактная информация:

TM1637 и ESP8266

#9

Сообщение Sancho » 03.10.2017{, 14:52}

xtern писал(а):эм, это как? я не очень то программист))
Я тоже, но попытаюсь прояснить.
u= unsigned, т.е. беззнаковый тип, только положительные числа. 
uint16_t означает, что число будет представленно как беззнаковое(положительное), размером 16 бит.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Labu55
Сержант
Сообщения: 130
Зарегистрирован: 30.07.2017{, 12:22}
Репутация: 0

TM1637 и ESP8266

#10

Сообщение Labu55 » 03.10.2017{, 15:28}

Sancho писал(а):это как?
Типы short, int, long и long long не имеют стандартного размера.
Как правило, их размер определяется исходя из процессорной архитектуры.
Пример
Для 8-битных микроконтроллеров: char— 8 бит, int-16 бит, long, float, double— 32 бита.
Для 32-х битных: char— 8 бит, short-16 бит, int, float— 32 бита,long, double— 64 бита.
Чтобы избавиться от неразберихи при переносе на разные платформы в стандарт были введены типы с фиксированным размером: uint8_t, int32_t, uint16_t, int64_t и т.д.
Это кратко, подробнее- знаете где искать.
Последний раз редактировалось Labu55 03.10.2017{, 16:11}, всего редактировалось 1 раз.

xtern
Рядовой
Сообщения: 21
Зарегистрирован: 13.04.2017{, 13:11}
Репутация: 0
Откуда: Омск
Контактная информация:

TM1637 и ESP8266

#11

Сообщение xtern » 04.10.2017{, 05:39}

ПОБЕДА!!! добавил Short и все срослось, спасибо за помощь

Labu55
Сержант
Сообщения: 130
Зарегистрирован: 30.07.2017{, 12:22}
Репутация: 0

TM1637 и ESP8266

#12

Сообщение Labu55 » 04.10.2017{, 13:49}


xtern писал(а):ПОБЕДА!
И тут без "нечистой" не обошлось- Short poderi 

xtern
Рядовой
Сообщения: 21
Зарегистрирован: 13.04.2017{, 13:11}
Репутация: 0
Откуда: Омск
Контактная информация:

TM1637 и ESP8266

#13

Сообщение xtern » 05.10.2017{, 08:04}

кому интересно блок выложил в профильной ветке

Ответить

Вернуться в «Дисплеи и индикаторы»