Выскакивает ошибка не однозначное использование функции

azerbot
Offline
Зарегистрирован: 18.05.2019

При компиляции все нормально после неё пишет ошибку не однозначное использование функции

b707
Offline
Зарегистрирован: 26.05.2017

azerbot пишет:
При компиляции все нормально после неё пишет ошибку не однозначное использование функции

И кто же вам это пишет? (после компиляции)

azerbot
Offline
Зарегистрирован: 18.05.2019
unsigned long last_time; //глобальная переменая
#include <iarduino_DHT.h>
#include "TM1637.h"
#define CLK 3//pins definitions for the module and can be changed to other ports
#define DIO 2
 TM1637 disp(CLK,DIO);
iarduino_DHT sensor (5);
void setup(){
    Serial.begin(9600);
    if(millis() - last_time >= 1000){
   disp.set(BRIGHT_TYPICAL);//BRIGHT_TYPICAL = 2,BRIGHT_DARKEST = 0,BRIGHTEST = 7;
    disp.init(D4056A);//D4056A is the type of the module 
    last_time = millis();//сброс счетчика
    }
    pinMode(5,INPUT_PULLUP);
    pinMode(4,INPUT_PULLUP);
}
void loop(){
    if(millis() - last_time >= 1000){
  int8_t NumTab[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};//0~9,A,b,C,d,E,F  
 switch(sensor.read())
disp.display(1234);
        last_time = millis();//сброс счетчика
    }
    if(millis() - last_time >= 1000) {
disp.display(sensor.hum/10);        disp.display(2,1); disp.display(3,12);
        last_time = millis();//сброс счетчика
    }
if(millis() - last_time >= 1000){
disp.display(sensor.tem/10 ); disp.display(2,16); disp.display(3,13);
   last_time = millis();//сброс счетчика
    }
}

 

azerbot
Offline
Зарегистрирован: 18.05.2019

Компилятор . типо загрузка прошла успешно но есть ошибка 

b707
Offline
Зарегистрирован: 26.05.2017

azerbot пишет:

Компилятор . типо загрузка прошла успешно но есть ошибка 

скопируйте и выложите сообщение об ошибке в конференцию (только текстом, а не скрином)

azerbot
Offline
Зарегистрирован: 18.05.2019

23 6 call to member function 'display' ambiguous

kalapanga
Offline
Зарегистрирован: 23.10.2016

azerbot пишет:
23 6 call to member function 'display' ambiguous

А какого типа параметр ожидает функция display в используемой Вами библиотеке(TM1637)? Скорее всего не тот, что вы ей передаёте. Вот компилятор и выдаёт не ошибку, а предупреждение, наверное - вызов функции неоднозначный. Мол, работать будет, но возможно, вы получите результат не тот, что ожидаете.

p.s. В вопросах о библиотеках лучше сразу ссылку на используемую библиотеку давать.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

azerbot пишет:
23 6 call to member function 'display' ambiguous
А если полностью и копипастом?

azerbot
Offline
Зарегистрирован: 18.05.2019

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Евгений Петрович, для начала ТС надо обучить делать копипаст текста компиляции видимо

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

А что не так со скопипастенным текстом?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Понятно. Т.е. сообщение полностью, обычным текстом мы не увидим? Ну, значит, не судьба :(

Гриша
Offline
Зарегистрирован: 27.04.2014

ЕвгенийП пишет:

Понятно. Т.е. сообщение полностью, обычным текстом мы не увидим? Ну, значит, не судьба :(

как видно из поста 5 и скриншота, у ТС выводится только это сообщение. Я не помню как настраивается вывод развернутого лога, может кто ему подскажет как настроить? 

Kakmyc
Offline
Зарегистрирован: 15.01.2018

Было такое при "неправильном" объявлении выводимой переменной.
Заменил int на int16_t, и прошло

Kakmyc
Offline
Зарегистрирован: 15.01.2018

В этой библиотеке для каждого типа данных, свой метод вывода.
У тебя тип данных не указан, компилятор не знает какой метод использовать, вот и предупреждение.
Напиши так:
disp.display((int16_t)1234);

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Гриша пишет:

как видно из поста 5 и скриншота, у ТС выводится только это сообщение. 

Во-первых, там есть ещё вкладка "Output" и мы не знаем, что в ней. Во вторых, там есть опции, где можно включить подробный вывод.

А если уж никак, то надо давать ссылку на на библиотеку, хоть там посмотреть какие прегрузы есть у этого display.

azerbot
Offline
Зарегистрирован: 18.05.2019

azerbot
Offline
Зарегистрирован: 18.05.2019

Добавил поверю отвечу но ошибка пропала, а да извиняюсь  что скрином ибо с телефона тяжело копипастнуть

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Вы же, вроде, уже научились вставлять код, что за рецидив?

azerbot
Offline
Зарегистрирован: 18.05.2019

Извеняюсь не туда нажал

azerbot
Offline
Зарегистрирован: 18.05.2019
	//	Author:Fred.Chu
	//	Date:9 April,2013
	//
	//	Applicable Module:
	//		  4-Digit Display by catalex
	//		  4-Digit Display (D4056A) by catalex
	//   Store: http://www.aliexpress.com/store/1199788
	//
	//	This library is free software; you can redistribute it and/or
	//	modify it under the terms of the GNU Lesser General Public
	//	License as published by the Free Software Foundation; either
	//	version 2.1 of the License, or (at your option) any later version.
	//
	//	This library is distributed in the hope that it will be useful,
	//	but WITHOUT ANY WARRANTY; without even the implied warranty of
	//	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
	//	Lesser General Public License for more details.
	//
	//	You should have received a copy of the GNU Lesser General Public
	//	License along with this library; if not, write to the Free Software
	//	Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
	//
	//	Modified record:
	//
	/*******************************************************************************/
	
#ifndef TM1637_h
#define TM1637_h
#include <inttypes.h>
#include <Arduino.h>
	//************definitions for TM1637*********************
#define ADDR_AUTO  0x40
#define ADDR_FIXED 0x44
	
#define STARTADDR  0xc0 
	/**** definitions for the clock point of the 4-Digit Display *******/
#define POINT_ON   1
#define POINT_OFF  0
	/**************definitions for brightness***********************/
#define  BRIGHT_DARKEST 0
#define  BRIGHT_TYPICAL 2
#define  BRIGHTEST      7
//--------------------------------------------------------//
//Special characters index of tube table
#define INDEX_NEGATIVE_SIGN	16
#define INDEX_BLANK			17
/************definitions for type of the 4-Digit Display*********************/
#define D4036B 0
#define D4056A 1

	class TM1637
	{
	  public:
		uint8_t Cmd_SetData;
		uint8_t Cmd_SetAddr;
		uint8_t Cmd_DispCtrl;
		boolean _PointFlag; 	//_PointFlag=1:the clock point on
		uint8_t _DispType;
		TM1637(uint8_t, uint8_t);
		void init(uint8_t = D4036B);
		void writeByte(int8_t wr_data);//write 8bit data to tm1637
		void start(void);//send start bits
		void stop(void); //send stop bits
		void display(int8_t DispData[]);
		void display(uint8_t BitAddr,int8_t DispData);
		void display(double Decimal);
		void display(int16_t Decimal);
		void clearDisplay(void);
		void set(uint8_t = BRIGHT_TYPICAL,uint8_t = 0x40,uint8_t = 0xc0);//To take effect the next time it displays.
		void point(boolean PointFlag);//whether to light the clock point ":".To take effect the next time it displays.
		void coding(int8_t DispData[]); 
		int8_t coding(int8_t DispData); 
	  private:
		uint8_t Clkpin;
		uint8_t Datapin;
		uint8_t DecPoint;
		boolean BlankingFlag;
	};
#endif

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Вот смотрите на строки №№ 64-67. Все они задают функцию display, но с разными параметрами. Компилятор смотрит на параметры в Вашем вызове и по ним определяет какую из функций использовать.

Если он не может понять какую использовать, то сообщает Вам об этом. Решение здесь - помочь ему, т.е. явно преобразовать параметр(ы) к типу(ам) которые заданы в одной из функций в строках №№ 64-67.

Я хотел привести пример с Вашей библиотекой, но что-то не смог спровоцировать ошибку. То ли Вы показали не ту библиотеку, то ли ещё чего. Если бы Вы смогли таки запустить на нормальном IDE и дать нормальное сообщение - это бы помогло.

azerbot
Offline
Зарегистрирован: 18.05.2019

Может сегодня буду дома попробую через норм иде

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

И обязательно посмотрите, чтобы привести "ту самую" библиотеку, а не "любую с таким же названием"

azerbot
Offline
Зарегистрирован: 18.05.2019

У меня они на облаке