Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2.3.0 breaks at least on RP2040 with type errors #60

Closed
kilrah opened this issue Jan 2, 2024 · 3 comments
Closed

2.3.0 breaks at least on RP2040 with type errors #60

kilrah opened this issue Jan 2, 2024 · 3 comments
Assignees

Comments

@kilrah
Copy link

kilrah commented Jan 2, 2024

Not happy about pin identifiers and mode...

                 from D:\Electronique\PicoPDSupply\PicoPD_LVGL\PicoPD_LVGL.ino:8:
c:\Users\me\Documents\Arduino\libraries\Button2\src/Hardware.h: In member function 'virtual void ArduinoHardware::pinMode(int, int)':
c:\Users\me\Documents\Arduino\libraries\Button2\src/Hardware.h:42:24: error: invalid conversion from 'int' to 'PinMode' [-fpermissive]
   42 |         ::pinMode(pin, mode);
      |                        ^~~~
      |                        |
      |                        int
In file included from c:\users\me\appdata\local\arduino15\packages\rp2040\hardware\rp2040\3.6.2\arduinocore-api\api\Interrupts.h:8,
                 from c:\users\me\appdata\local\arduino15\packages\rp2040\hardware\rp2040\3.6.2\arduinocore-api\api\arduinoapi.h:29,
                 from C:\Users\me\AppData\Local\Arduino15\packages\rp2040\hardware\rp2040\3.6.2\cores\rp2040/api/ArduinoAPI.h:2,
                 from C:\Users\me\AppData\Local\Arduino15\packages\rp2040\hardware\rp2040\3.6.2\cores\rp2040/Arduino.h:28,
                 from C:\TEMP\arduino\sketches\870F04C926EA2EED0B213104A8CED5D4\sketch\PicoPD_LVGL.ino.cpp:1:
c:\users\me\appdata\local\arduino15\packages\rp2040\hardware\rp2040\3.6.2\arduinocore-api\api\Common.h:98:44: note:   initializing argument 2 of 'void pinMode(pin_size_t, PinMode)'
   98 | void pinMode(pin_size_t pinNumber, PinMode pinMode);
      |                                    ~~~~~~~~^~~~~~~
c:\Users\me\Documents\Arduino\libraries\Button2\src/Hardware.h: In member function 'virtual void ArduinoHardware::digitalWrite(int, int)':
c:\Users\me\Documents\Arduino\libraries\Button2\src/Hardware.h:45:29: error: invalid conversion from 'int' to 'PinStatus' [-fpermissive]
   45 |         ::digitalWrite(pin, value);
      |                             ^~~~~
      |                             |
      |                             int
c:\users\me\appdata\local\arduino15\packages\rp2040\hardware\rp2040\3.6.2\arduinocore-api\api\Common.h:99:51: note:   initializing argument 2 of 'void digitalWrite(pin_size_t, PinStatus)'
   99 | void digitalWrite(pin_size_t pinNumber, PinStatus status);
      |                                         ~~~~~~~~~~^~~~~~
@LennartHennigs LennartHennigs self-assigned this Jan 2, 2024
@LennartHennigs
Copy link
Owner

Hey, thanks! And, oh, great...
Does this work?

#ifdef ARDUINO_ARCH_RP2040
class ArduinoHardware : public Hardware {
public:
    int digitalRead(int pin) {
        return ::digitalRead(pin);
    }

    void pinMode(int pin, int mode) {
        ::pinMode(pin, static_cast<PinMode>(mode));
    }

    void digitalWrite(int pin, int value) {
        ::digitalWrite(pin, static_cast<PinStatus>(value));
    }
};
#else
class ArduinoHardware : public Hardware {
public:
    int digitalRead(int pin) {
        
        return ::digitalRead(pin);
    }
    void pinMode(int pin, int mode) {
        ::pinMode(pin, mode);
    }
    void digitalWrite(int pin, int value) {
        ::digitalWrite(pin, value);
    }
};
#endif

@kilrah
Copy link
Author

kilrah commented Jan 2, 2024

Yup that's fine!

@LennartHennigs
Copy link
Owner

LennartHennigs commented Jan 2, 2024

perfect. Thank you! Will push an update...
fixed with 2.3.1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants