Go Down

Topic: Getting a compiler error for Due but not for Uno (Read 1 time) previous topic - next topic



I was trying to compile some code which runs on the Uno just fine, but when I compile it in 1.5.2 I get this
Code: [Select]
C:\*\arduino-1.5.2\libraries\ST7565\ST7565.cpp: In member function 'void ST7565::drawbitmap(uint8_t, uint8_t, const uint8_t*, uint8_t, uint8_t, uint8_t)':
C:\*\arduino-1.5.2\libraries\ST7565\ST7565.cpp:141: error: cast from 'const uint8_t*' to 'uint16_t' loses precision
C:\*\arduino-1.5.2\libraries\ST7565\ST7565.cpp: In member function 'void ST7565::drawstring_P(uint8_t, uint8_t, const char*)':
C:*\arduino-1.5.2\libraries\ST7565\ST7565.cpp:167: error: cast from 'const char*' to 'uint16_t' loses precision
C:*\arduino-1.5.2\libraries\ST7565\ST7565.cpp: In member function 'void ST7565::drawchar(uint8_t, uint8_t, char)':
C:\*\arduino-1.5.2\libraries\ST7565\ST7565.cpp:183: error: cast from 'uint8_t*' to 'uint16_t' loses precision

Here is my code example ... as easy as possible ;)
Code: [Select]
#include "ST7565.h"
void setup() {
  // pin 9 - Serial data out (SID)
  // pin 8 - Serial clock out (SCLK)
  // pin 7 - Data/Command select (RS or A0)
  // pin 6 - LCD reset (RST)
  // pin 5 - LCD chip select (CS)
  ST7565 glcd(9, 8, 7, 6, 5);


void loop() {
  // put your main code here, to run repeatedly:


What gehts me thinking, if I change my board to "Arduino Uno" it compiles w/o errors.
Can you help me?

I mean there shouldn't be any errors.. because I can cast a int to a long too, this should be a warning at least.


Looks like the library is assuming that pointers are 16 bits long.  On the DUE I think they are 32 bits long, hence the warning.  You may have to find a different library that works on DUE.
Send Bitcoin tips to: 1G2qoGwMRXx8az71DVP1E81jShxtbSh5Hp

Go Up