FLProg
Вход на сайт
Логин:
Пароль:
Поиск
...
Статистика
Понедельник, 11.12.2017, 03:09
Приветствую Вас Гость | RSS
Главная | Регистрация | Вход

Поиск по сайту


Форум
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: support, Сергей, Anydy, Олег 
Форум » Основной » Железо - контроллеры, шилды, датчики и др. » TM1637 и ESP8266 (Ошибка компиляции)
TM1637 и ESP8266
xtern Дата: Пятница, 29.09.2017, 09:56 | Сообщение # 1
Рядовой
Группа: Проверенные
Сообщений: 21
Награды: 0
Репутация: 0
Статус: Offline
Приветствую знатоки , не понятная ерунда, пытаюсь скомпилировать проект с блоком ТМ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
 
pan Дата: Пятница, 29.09.2017, 11:39 | Сообщение # 2
Генерал-полковник
Группа: Проверенные
Сообщений: 1225
Награды: 41
Репутация: 38
Статус: Offline
думаю это из-за разрядности. атмега 8 битный. для него флоат занимает 4 байта или 32 бита. а есп 32 битный.
 
xtern Дата: Понедельник, 02.10.2017, 05:14 | Сообщение # 3
Рядовой
Группа: Проверенные
Сообщений: 21
Награды: 0
Репутация: 0
Статус: Offline
И как быть?
 
pan Дата: Понедельник, 02.10.2017, 08:12 | Сообщение # 4
Генерал-полковник
Группа: Проверенные
Сообщений: 1225
Награды: 41
Репутация: 38
Статус: Offline
сделайте переменные 32 битными вместо int . например long
 
xtern Дата: Вторник, 03.10.2017, 08:21 | Сообщение # 5
Рядовой
Группа: Проверенные
Сообщений: 21
Награды: 0
Репутация: 0
Статус: Offline
с long не работает
 
pan Дата: Вторник, 03.10.2017, 08:26 | Сообщение # 6
Генерал-полковник
Группа: Проверенные
Сообщений: 1225
Награды: 41
Репутация: 38
Статус: Offline
unsigned long ? double?

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

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

 
Dev1 Дата: Вторник, 03.10.2017, 09:06 | Сообщение # 7
Генерал-лейтенант
Группа: Проверенные
Сообщений: 683
Награды: 13
Репутация: 17
Статус: Offline
Особо не разбирался, т.к. нету есп и тм1637. Кое что нашел на гите по вашей проблеме. Там используют не int8_t, а uint8_t. По int16_t так же uint16_t...

Win7/10-64 FLProg v3.0.2 external IDE 1.8.5

 
xtern Дата: Вторник, 03.10.2017, 13:50 | Сообщение # 8
Рядовой
Группа: Проверенные
Сообщений: 21
Награды: 0
Репутация: 0
Статус: Offline
эм, это как? я не очень то программист))

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

 
Sancho Дата: Вторник, 03.10.2017, 14:52 | Сообщение # 9
Генерал-майор
Группа: Проверенные
Сообщений: 546
Награды: 15
Репутация: 17
Статус: Offline
Цитата xtern ()
эм, это как? я не очень то программист))
Я тоже, но попытаюсь прояснить.
u= unsigned, т.е. беззнаковый тип, только положительные числа. 
uint16_t означает, что число будет представленно как беззнаковое(положительное), размером 16 бит.


Если не получится на контроллере - сделаю на тразисторах и 155/176...
 
Labu55 Дата: Вторник, 03.10.2017, 15:28 | Сообщение # 10
Лейтенант
Группа: Проверенные
Сообщений: 93
Награды: 3
Репутация: 4
Статус: Offline
Цитата 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
 
xtern Дата: Среда, 04.10.2017, 05:39 | Сообщение # 11
Рядовой
Группа: Проверенные
Сообщений: 21
Награды: 0
Репутация: 0
Статус: Offline
ПОБЕДА!!! добавил Short и все срослось, спасибо за помощь
 
Labu55 Дата: Среда, 04.10.2017, 13:49 | Сообщение # 12
Лейтенант
Группа: Проверенные
Сообщений: 93
Награды: 3
Репутация: 4
Статус: Offline

Цитата xtern ()
ПОБЕДА!
И тут без "нечистой" не обошлось- Short poderi  smile
 
xtern Дата: Четверг, 05.10.2017, 08:04 | Сообщение # 13
Рядовой
Группа: Проверенные
Сообщений: 21
Награды: 0
Репутация: 0
Статус: Offline
кому интересно блок выложил в профильной ветке
 
Форум » Основной » Железо - контроллеры, шилды, датчики и др. » TM1637 и ESP8266 (Ошибка компиляции)
Страница 1 из 11
Поиск:

FLProg © 2017
Яндекс.Метрика