30
30
* FUNCTION DEFINITION
31
31
******************************************************************************/
32
32
33
+ #ifdef NINA_PINS_AS_CLASS
34
+ #define VAL (x ) x.get()
35
+ #else
36
+ #define VAL (x ) static_cast <uint8_t >(x)
37
+ #endif
38
+
33
39
uint8_t toAnalogPin (NinaPin pin)
34
40
{
35
41
if (pin == A4) return 6 ; /* ADC1 - CH6 */
@@ -41,20 +47,20 @@ uint8_t toAnalogPin(NinaPin pin)
41
47
42
48
void pinMode (NinaPin pin, PinMode mode)
43
49
{
44
- WiFiDrv::pinMode (static_cast < uint8_t > (pin), static_cast <uint8_t >(mode));
50
+ WiFiDrv::pinMode (VAL (pin), static_cast <uint8_t >(mode));
45
51
}
46
52
47
53
PinStatus digitalRead (NinaPin pin)
48
54
{
49
- return WiFiDrv::digitalRead (static_cast < uint8_t > (pin));
55
+ return WiFiDrv::digitalRead (VAL (pin));
50
56
}
51
57
52
58
void digitalWrite (NinaPin pin, PinStatus value)
53
59
{
54
60
if (value == LOW)
55
- WiFiDrv::digitalWrite (static_cast < uint8_t > (pin), 1 );
61
+ WiFiDrv::digitalWrite (VAL (pin), 1 );
56
62
else
57
- WiFiDrv::digitalWrite (static_cast < uint8_t > (pin), 0 );
63
+ WiFiDrv::digitalWrite (VAL (pin), 0 );
58
64
}
59
65
60
66
int analogRead (NinaPin pin)
@@ -64,12 +70,16 @@ int analogRead(NinaPin pin)
64
70
if (adc_channel == 0xFF )
65
71
return 0 ;
66
72
else
73
+ #ifdef NINA_PINS_AS_CLASS
74
+ return WiFiDrv::analogRead (adc_channel) >> (12 - pin.analogReadResolution ());
75
+ #else
67
76
return WiFiDrv::analogRead (adc_channel);
77
+ #endif
68
78
}
69
79
70
80
void analogWrite (NinaPin pin, int value)
71
81
{
72
- WiFiDrv::analogWrite (static_cast < uint8_t > (pin), static_cast <uint8_t >(value));
82
+ WiFiDrv::analogWrite (VAL (pin), static_cast <uint8_t >(value));
73
83
}
74
84
75
85
#endif /* ARDUINO_NANO_RP2040_CONNECT */
0 commit comments