Avamander / arduino-tvout

Arduino-TVout
325 stars 81 forks source link

Do arduino-tvout not support the type "const __FlashStringHelper*"? #125

Closed L1uTongwei closed 2 years ago

L1uTongwei commented 3 years ago

Compiler gives me a error "call of overloaded 'print(const __FlashStringHelper*)' is ambiguous" when I am using "TV.print(F("hello, world"))".

Why come?

I think this function is only declare and it is not defined.

L1uTongwei commented 3 years ago

This is only error:



LiuTianyou-Basic.cpp:24: error: call of overloaded 'print(const __FlashStringHelper*)' is ambiguous

   out.print(F("Initializing SD card..."));

                                         ^

C:\Users\13472\AppData\Local\Temp\buildc463139c3f218ebfbc5fbbbd280d322c.tmp\sketch\LiuTianyou-Basic.cpp:24:41: note: candidates are:

In file included from C:\Users\13472\AppData\Local\Temp\buildc463139c3f218ebfbc5fbbbd280d322c.tmp\sketch\header.h:61:0,

                 from C:\Users\13472\AppData\Local\Temp\buildc463139c3f218ebfbc5fbbbd280d322c.tmp\sketch\LiuTianyou-Basic.cpp:1:

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:127:10: note: void TVout::print(char, int) <near match>

     void print(char, int = BYTE);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:127:10: note:   no known conversion for argument 1 from 'const __FlashStringHelper*' to 'char'

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:128:10: note: void TVout::print(unsigned char, int) <near match>

     void print(unsigned char, int = BYTE);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:128:10: note:   no known conversion for argument 1 from 'const __FlashStringHelper*' to 'unsigned char'

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:129:10: note: void TVout::print(int, int) <near match>

     void print(int, int = DEC);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:129:10: note:   no known conversion for argument 1 from 'const __FlashStringHelper*' to 'int'

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:130:10: note: void TVout::print(unsigned int, int) <near match>

     void print(unsigned int, int = DEC);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:130:10: note:   no known conversion for argument 1 from 'const __FlashStringHelper*' to 'unsigned int'

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:131:10: note: void TVout::print(long int, int) <near match>

     void print(long, int = DEC);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:131:10: note:   no known conversion for argument 1 from 'const __FlashStringHelper*' to 'long int'

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:132:10: note: void TVout::print(long unsigned int, int) <near match>

     void print(unsigned long, int = DEC);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:132:10: note:   no known conversion for argument 1 from 'const __FlashStringHelper*' to 'long unsigned int'

LiuTianyou-Basic.cpp:29: error: call of overloaded 'println(const __FlashStringHelper*)' is ambiguous

   out.println(F("LiuTianyou-Basic For Arduino Operator System"));

                                                                ^

C:\Users\13472\AppData\Local\Temp\buildc463139c3f218ebfbc5fbbbd280d322c.tmp\sketch\LiuTianyou-Basic.cpp:29:64: note: candidates are:

In file included from C:\Users\13472\AppData\Local\Temp\buildc463139c3f218ebfbc5fbbbd280d322c.tmp\sketch\header.h:61:0,

                 from C:\Users\13472\AppData\Local\Temp\buildc463139c3f218ebfbc5fbbbd280d322c.tmp\sketch\LiuTianyou-Basic.cpp:1:

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:155:10: note: void TVout::println(char, int) <near match>

     void println(char, int = BYTE);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:155:10: note:   no known conversion for argument 1 from 'const __FlashStringHelper*' to 'char'

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:156:10: note: void TVout::println(unsigned char, int) <near match>

     void println(unsigned char, int = BYTE);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:156:10: note:   no known conversion for argument 1 from 'const __FlashStringHelper*' to 'unsigned char'

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:157:10: note: void TVout::println(int, int) <near match>

     void println(int, int = DEC);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:157:10: note:   no known conversion for argument 1 from 'const __FlashStringHelper*' to 'int'

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:158:10: note: void TVout::println(unsigned int, int) <near match>

     void println(unsigned int, int = DEC);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:158:10: note:   no known conversion for argument 1 from 'const __FlashStringHelper*' to 'unsigned int'

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:159:10: note: void TVout::println(long int, int) <near match>

     void println(long, int = DEC);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:159:10: note:   no known conversion for argument 1 from 'const __FlashStringHelper*' to 'long int'

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:160:10: note: void TVout::println(long unsigned int, int) <near match>

     void println(unsigned long, int = DEC);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:160:10: note:   no known conversion for argument 1 from 'const __FlashStringHelper*' to 'long unsigned int'

LiuTianyou-Basic.cpp:30: error: call of overloaded 'println(const __FlashStringHelper*)' is ambiguous

   out.println(F("Welcome to send pull requests at https://github.com/LiuTianyouOnLuogu/ArduinoOperatorSystem/"));

                                                                                                                ^

C:\Users\13472\AppData\Local\Temp\buildc463139c3f218ebfbc5fbbbd280d322c.tmp\sketch\LiuTianyou-Basic.cpp:30:112: note: candidates are:

In file included from C:\Users\13472\AppData\Local\Temp\buildc463139c3f218ebfbc5fbbbd280d322c.tmp\sketch\header.h:61:0,

                 from C:\Users\13472\AppData\Local\Temp\buildc463139c3f218ebfbc5fbbbd280d322c.tmp\sketch\LiuTianyou-Basic.cpp:1:

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:155:10: note: void TVout::println(char, int) <near match>

     void println(char, int = BYTE);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:155:10: note:   no known conversion for argument 1 from 'const __FlashStringHelper*' to 'char'

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:156:10: note: void TVout::println(unsigned char, int) <near match>

     void println(unsigned char, int = BYTE);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:156:10: note:   no known conversion for argument 1 from 'const __FlashStringHelper*' to 'unsigned char'

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:157:10: note: void TVout::println(int, int) <near match>

     void println(int, int = DEC);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:157:10: note:   no known conversion for argument 1 from 'const __FlashStringHelper*' to 'int'

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:158:10: note: void TVout::println(unsigned int, int) <near match>

     void println(unsigned int, int = DEC);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:158:10: note:   no known conversion for argument 1 from 'const __FlashStringHelper*' to 'unsigned int'

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:159:10: note: void TVout::println(long int, int) <near match>

     void println(long, int = DEC);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:159:10: note:   no known conversion for argument 1 from 'const __FlashStringHelper*' to 'long int'

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:160:10: note: void TVout::println(long unsigned int, int) <near match>

     void println(unsigned long, int = DEC);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:160:10: note:   no known conversion for argument 1 from 'const __FlashStringHelper*' to 'long unsigned int'

C:\Users\13472\AppData\Local\Temp\buildc463139c3f218ebfbc5fbbbd280d322c.tmp\sketch\LiuTianyou-Basic.cpp: In member function 'void Basic::loop()':

LiuTianyou-Basic.cpp:36: error: call of overloaded 'println(const __FlashStringHelper*)' is ambiguous

     out.println(F("Ready."));

                            ^

C:\Users\13472\AppData\Local\Temp\buildc463139c3f218ebfbc5fbbbd280d322c.tmp\sketch\LiuTianyou-Basic.cpp:36:28: note: candidates are:

In file included from C:\Users\13472\AppData\Local\Temp\buildc463139c3f218ebfbc5fbbbd280d322c.tmp\sketch\header.h:61:0,

                 from C:\Users\13472\AppData\Local\Temp\buildc463139c3f218ebfbc5fbbbd280d322c.tmp\sketch\LiuTianyou-Basic.cpp:1:

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:155:10: note: void TVout::println(char, int) <near match>

     void println(char, int = BYTE);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:155:10: note:   no known conversion for argument 1 from 'const __FlashStringHelper*' to 'char'

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:156:10: note: void TVout::println(unsigned char, int) <near match>

     void println(unsigned char, int = BYTE);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:156:10: note:   no known conversion for argument 1 from 'const __FlashStringHelper*' to 'unsigned char'

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:157:10: note: void TVout::println(int, int) <near match>

     void println(int, int = DEC);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:157:10: note:   no known conversion for argument 1 from 'const __FlashStringHelper*' to 'int'

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:158:10: note: void TVout::println(unsigned int, int) <near match>

     void println(unsigned int, int = DEC);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:158:10: note:   no known conversion for argument 1 from 'const __FlashStringHelper*' to 'unsigned int'

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:159:10: note: void TVout::println(long int, int) <near match>

     void println(long, int = DEC);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:159:10: note:   no known conversion for argument 1 from 'const __FlashStringHelper*' to 'long int'

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:160:10: note: void TVout::println(long unsigned int, int) <near match>

     void println(unsigned long, int = DEC);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:160:10: note:   no known conversion for argument 1 from 'const __FlashStringHelper*' to 'long unsigned int'

LiuTianyou-Basic.cpp:37: error: no match for 'operator=' (operand types are 'String' and 'std::string {aka std::basic_string<char>}')

     str = in.readString();

         ^

C:\Users\13472\AppData\Local\Temp\buildc463139c3f218ebfbc5fbbbd280d322c.tmp\sketch\LiuTianyou-Basic.cpp:37:9: note: candidates are:

In file included from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:223:0,

                 from C:\Users\13472\Documents\Arduino\libraries\TMRpcm/TMRpcm.h:13,

                 from C:\Users\13472\AppData\Local\Temp\buildc463139c3f218ebfbc5fbbbd280d322c.tmp\sketch\header.h:2,

                 from C:\Users\13472\AppData\Local\Temp\buildc463139c3f218ebfbc5fbbbd280d322c.tmp\sketch\LiuTianyou-Basic.cpp:1:

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/WString.h:86:11: note: String& String::operator=(const String&)

  String & operator = (const String &rhs);

           ^

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/WString.h:86:11: note:   no known conversion for argument 1 from 'std::string {aka std::basic_string<char>}' to 'const String&'

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/WString.h:87:11: note: String& String::operator=(const char*)

  String & operator = (const char *cstr);

           ^

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/WString.h:87:11: note:   no known conversion for argument 1 from 'std::string {aka std::basic_string<char>}' to 'const char*'

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/WString.h:88:11: note: String& String::operator=(const __FlashStringHelper*)

  String & operator = (const __FlashStringHelper *str);

           ^

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/WString.h:88:11: note:   no known conversion for argument 1 from 'std::string {aka std::basic_string<char>}' to 'const __FlashStringHelper*'

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/WString.h:90:11: note: String& String::operator=(String&&)

  String & operator = (String &&rval);

           ^

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/WString.h:90:11: note:   no known conversion for argument 1 from 'std::string {aka std::basic_string<char>}' to 'String&&'

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/WString.h:91:11: note: String& String::operator=(StringSumHelper&&)

  String & operator = (StringSumHelper &&rval);

           ^

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/WString.h:91:11: note:   no known conversion for argument 1 from 'std::string {aka std::basic_string<char>}' to 'StringSumHelper&&'

C:\Users\13472\AppData\Local\Temp\buildc463139c3f218ebfbc5fbbbd280d322c.tmp\sketch\LiuTianyou-Basic.cpp: In member function 'short int Basic::file_command(String)':

LiuTianyou-Basic.cpp:83: error: call of overloaded 'println(const __FlashStringHelper*)' is ambiguous

   out.println(F("Syntax Error. You can only use files in SD card there."));

                                                                          ^

C:\Users\13472\AppData\Local\Temp\buildc463139c3f218ebfbc5fbbbd280d322c.tmp\sketch\LiuTianyou-Basic.cpp:83:74: note: candidates are:

In file included from C:\Users\13472\AppData\Local\Temp\buildc463139c3f218ebfbc5fbbbd280d322c.tmp\sketch\header.h:61:0,

                 from C:\Users\13472\AppData\Local\Temp\buildc463139c3f218ebfbc5fbbbd280d322c.tmp\sketch\LiuTianyou-Basic.cpp:1:

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:155:10: note: void TVout::println(char, int) <near match>

     void println(char, int = BYTE);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:155:10: note:   no known conversion for argument 1 from 'const __FlashStringHelper*' to 'char'

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:156:10: note: void TVout::println(unsigned char, int) <near match>

     void println(unsigned char, int = BYTE);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:156:10: note:   no known conversion for argument 1 from 'const __FlashStringHelper*' to 'unsigned char'

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:157:10: note: void TVout::println(int, int) <near match>

     void println(int, int = DEC);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:157:10: note:   no known conversion for argument 1 from 'const __FlashStringHelper*' to 'int'

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:158:10: note: void TVout::println(unsigned int, int) <near match>

     void println(unsigned int, int = DEC);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:158:10: note:   no known conversion for argument 1 from 'const __FlashStringHelper*' to 'unsigned int'

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:159:10: note: void TVout::println(long int, int) <near match>

     void println(long, int = DEC);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:159:10: note:   no known conversion for argument 1 from 'const __FlashStringHelper*' to 'long int'

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:160:10: note: void TVout::println(long unsigned int, int) <near match>

     void println(unsigned long, int = DEC);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:160:10: note:   no known conversion for argument 1 from 'const __FlashStringHelper*' to 'long unsigned int'

C:\Users\13472\AppData\Local\Temp\buildc463139c3f218ebfbc5fbbbd280d322c.tmp\sketch\LiuTianyou-Basic.cpp: In member function 'short int Basic::command(String)':

LiuTianyou-Basic.cpp:102: error: no matching function for call to 'output::println(String)'

         out.println(serial->readString());

                                         ^

C:\Users\13472\AppData\Local\Temp\buildc463139c3f218ebfbc5fbbbd280d322c.tmp\sketch\LiuTianyou-Basic.cpp:102:41: note: candidates are:

In file included from C:\Users\13472\AppData\Local\Temp\buildc463139c3f218ebfbc5fbbbd280d322c.tmp\sketch\header.h:61:0,

                 from C:\Users\13472\AppData\Local\Temp\buildc463139c3f218ebfbc5fbbbd280d322c.tmp\sketch\LiuTianyou-Basic.cpp:1:

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:144:7: note: void TVout::println(uint8_t, uint8_t, const char*)

  void println(uint8_t, uint8_t, const char[]);

       ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:144:7: note:   candidate expects 3 arguments, 1 provided

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:145:10: note: void TVout::println(uint8_t, uint8_t, char, int)

     void println(uint8_t, uint8_t, char, int = BYTE);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:145:10: note:   candidate expects 4 arguments, 1 provided

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:146:10: note: void TVout::println(uint8_t, uint8_t, unsigned char, int)

     void println(uint8_t, uint8_t, unsigned char, int = BYTE);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:146:10: note:   candidate expects 4 arguments, 1 provided

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:147:10: note: void TVout::println(uint8_t, uint8_t, int, int)

     void println(uint8_t, uint8_t, int, int = DEC);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:147:10: note:   candidate expects 4 arguments, 1 provided

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:148:10: note: void TVout::println(uint8_t, uint8_t, unsigned int, int)

     void println(uint8_t, uint8_t, unsigned int, int = DEC);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:148:10: note:   candidate expects 4 arguments, 1 provided

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:149:10: note: void TVout::println(uint8_t, uint8_t, long int, int)

     void println(uint8_t, uint8_t, long, int = DEC);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:149:10: note:   candidate expects 4 arguments, 1 provided

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:150:10: note: void TVout::println(uint8_t, uint8_t, long unsigned int, int)

     void println(uint8_t, uint8_t, unsigned long, int = DEC);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:150:10: note:   candidate expects 4 arguments, 1 provided

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:151:10: note: void TVout::println(uint8_t, uint8_t, double, int)

     void println(uint8_t, uint8_t, double, int = 2);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:151:10: note:   candidate expects 4 arguments, 1 provided

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:152:10: note: void TVout::println(uint8_t, uint8_t)

     void println(uint8_t, uint8_t);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:152:10: note:   candidate expects 2 arguments, 1 provided

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:154:10: note: void TVout::println(const char*)

     void println(const char[]);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:154:10: note:   no known conversion for argument 1 from 'String' to 'const char*'

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:155:10: note: void TVout::println(char, int)

     void println(char, int = BYTE);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:155:10: note:   no known conversion for argument 1 from 'String' to 'char'

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:156:10: note: void TVout::println(unsigned char, int)

     void println(unsigned char, int = BYTE);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:156:10: note:   no known conversion for argument 1 from 'String' to 'unsigned char'

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:157:10: note: void TVout::println(int, int)

     void println(int, int = DEC);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:157:10: note:   no known conversion for argument 1 from 'String' to 'int'

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:158:10: note: void TVout::println(unsigned int, int)

     void println(unsigned int, int = DEC);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:158:10: note:   no known conversion for argument 1 from 'String' to 'unsigned int'

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:159:10: note: void TVout::println(long int, int)

     void println(long, int = DEC);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:159:10: note:   no known conversion for argument 1 from 'String' to 'long int'

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:160:10: note: void TVout::println(long unsigned int, int)

     void println(unsigned long, int = DEC);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:160:10: note:   no known conversion for argument 1 from 'String' to 'long unsigned int'

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:161:10: note: void TVout::println(double, int)

     void println(double, int = 2);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:161:10: note:   no known conversion for argument 1 from 'String' to 'double'

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:162:10: note: void TVout::println()

     void println(void);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:162:10: note:   candidate expects 0 arguments, 1 provided

LiuTianyou-Basic.cpp:165: error: call of overloaded 'println(const __FlashStringHelper*)' is ambiguous

     out.println(F("Syntax Error."));

                                   ^

C:\Users\13472\AppData\Local\Temp\buildc463139c3f218ebfbc5fbbbd280d322c.tmp\sketch\LiuTianyou-Basic.cpp:165:35: note: candidates are:

In file included from C:\Users\13472\AppData\Local\Temp\buildc463139c3f218ebfbc5fbbbd280d322c.tmp\sketch\header.h:61:0,

                 from C:\Users\13472\AppData\Local\Temp\buildc463139c3f218ebfbc5fbbbd280d322c.tmp\sketch\LiuTianyou-Basic.cpp:1:

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:155:10: note: void TVout::println(char, int) <near match>

     void println(char, int = BYTE);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:155:10: note:   no known conversion for argument 1 from 'const __FlashStringHelper*' to 'char'

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:156:10: note: void TVout::println(unsigned char, int) <near match>

     void println(unsigned char, int = BYTE);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:156:10: note:   no known conversion for argument 1 from 'const __FlashStringHelper*' to 'unsigned char'

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:157:10: note: void TVout::println(int, int) <near match>

     void println(int, int = DEC);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:157:10: note:   no known conversion for argument 1 from 'const __FlashStringHelper*' to 'int'

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:158:10: note: void TVout::println(unsigned int, int) <near match>

     void println(unsigned int, int = DEC);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:158:10: note:   no known conversion for argument 1 from 'const __FlashStringHelper*' to 'unsigned int'

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:159:10: note: void TVout::println(long int, int) <near match>

     void println(long, int = DEC);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:159:10: note:   no known conversion for argument 1 from 'const __FlashStringHelper*' to 'long int'

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:160:10: note: void TVout::println(long unsigned int, int) <near match>

     void println(unsigned long, int = DEC);

          ^

C:\Users\13472\Documents\Arduino\libraries\TVout/TVout.h:160:10: note:   no known conversion for argument 1 from 'const __FlashStringHelper*' to 'long unsigned int```
L1uTongwei commented 3 years ago

I only replace Serial and TVout. Look at here:

#ifdef computer-like
#include <TVout.h>
class output: public TVout {
  public:
    output() {
      begin(PAL);
    }
    /*print(const __FlashStringHelper* x){
      print(String((const __FlashStringHelper*)x).c_str());
    }
    println(const __FlashStringHelper* x){
      println(String((const __FlashStringHelper*)x).c_str());
    }*/
#else
class output: public HardwareSerial {
  public:
    output() {
      Serial.begin(115200);
    }
#endif
};
L1uTongwei commented 3 years ago

I think it supported. But why comes? I don't know why.

Avamander commented 3 years ago

You probably need to use an older Arduino IDE version.

L1uTongwei commented 3 years ago

Why older Arduino IDE version? I think you need to fix this problem to support newer Arduino IDE and C++ 11. You know, some libraries need newer IDE.

L1uTongwei commented 3 years ago

What is the difference between newer and older Arduino IDE?

L1uTongwei commented 3 years ago

So, what version IDE I need?

L1uTongwei commented 3 years ago

look this at TVout.h:

void write(uint8_t);
    void write(const char *str);
    void write(const uint8_t *buffer, uint8_t size);

    void print(const char[]);
    void print(char, int = BYTE);
    void print(unsigned char, int = BYTE);
    void print(int, int = DEC);
    void print(unsigned int, int = DEC);
    void print(long, int = DEC);
    void print(unsigned long, int = DEC);
    void print(double, int = 2);

    void print(uint8_t, uint8_t, const char[]);
    void print(uint8_t, uint8_t, char, int = BYTE);
    void print(uint8_t, uint8_t, unsigned char, int = BYTE);
    void print(uint8_t, uint8_t, int, int = DEC);
    void print(uint8_t, uint8_t, unsigned int, int = DEC);
    void print(uint8_t, uint8_t, long, int = DEC);
    void print(uint8_t, uint8_t, unsigned long, int = DEC);
    void print(uint8_t, uint8_t, double, int = 2);

    void println(uint8_t, uint8_t, const char[]);
    void println(uint8_t, uint8_t, char, int = BYTE);
    void println(uint8_t, uint8_t, unsigned char, int = BYTE);
    void println(uint8_t, uint8_t, int, int = DEC);
    void println(uint8_t, uint8_t, unsigned int, int = DEC);
    void println(uint8_t, uint8_t, long, int = DEC);
    void println(uint8_t, uint8_t, unsigned long, int = DEC);
    void println(uint8_t, uint8_t, double, int = 2);
    void println(uint8_t, uint8_t);

    void println(const char[]);
    void println(char, int = BYTE);
    void println(unsigned char, int = BYTE);
    void println(int, int = DEC);
    void println(unsigned int, int = DEC);
    void println(long, int = DEC);
    void println(unsigned long, int = DEC);
    void println(double, int = 2);
    void println(void);

It has too many overload, and many overload is unneed and unuseful. And please look there:

void TVout::print(const char str[])
{
  write(str);
}

void TVout::print(char c, int base)
{
  print((long) c, base);
}

void TVout::print(unsigned char b, int base)
{
  print((unsigned long) b, base);
}

void TVout::print(int n, int base)
{
  print((long) n, base);
}

void TVout::print(unsigned int n, int base)
{
  print((unsigned long) n, base);
}

void TVout::print(long n, int base)
{
  if (base == 0) {
    write(n);
  } else if (base == 10) {
    if (n < 0) {
      print('-');
      n = -n;
    }
    printNumber(n, 10);
  } else {
    printNumber(n, base);
  }
}

void TVout::print(unsigned long n, int base)
{
  if (base == 0) write(n);
  else printNumber(n, base);
}

void TVout::print(double n, int digits)
{
  printFloat(n, digits);
}

void TVout::println(void)
{
  print('\r');
  print('\n');  
}

void TVout::println(const char c[])
{
  print(c);
  println();
}

void TVout::println(char c, int base)
{
  print(c, base);
  println();
}

void TVout::println(unsigned char b, int base)
{
  print(b, base);
  println();
}

void TVout::println(int n, int base)
{
  print(n, base);
  println();
}

void TVout::println(unsigned int n, int base)
{
  print(n, base);
  println();
}

void TVout::println(long n, int base)
{
  print(n, base);
  println();
}

void TVout::println(unsigned long n, int base)
{
  print(n, base);
  println();
}

void TVout::println(double n, int digits)
{
  print(n, digits);
  println();
}

It has many repats, and no const __FlashStringHelper* type.

L1uTongwei commented 3 years ago

only

void TVout::print(const char str[]);
void TVout::print(int n, int base);
void TVout::println(void);
void TVout::println(const char c[]);
void TVout::println(int n, int base);

is needed, another types can be casted.

L1uTongwei commented 3 years ago

@Avamander these functions you need:

print(const __FlashStringHelper* x){
      print(String((const __FlashStringHelper*)x).c_str());
}
println(const __FlashStringHelper* x){
      println(String((const __FlashStringHelper*)x).c_str());
}
L1uTongwei commented 3 years ago

And this:

print(String x){
      print(x.c_str());
}
println(String x){
      print(x.c_str());
}
Avamander commented 3 years ago

So, what version IDE I need?

Legacy one, below 1.5 most likely.

L1uTongwei commented 3 years ago

You know, China can't see some pages. So why you can't add the support for new IDE?

L1uTongwei commented 3 years ago

I will try to fix it.

L1uTongwei commented 3 years ago

God, I think I can't. It's have too many overload and unuseful code!