2828extern "C" {
2929#endif
3030
31+ static uint32_t saadcReference = SAADC_CH_CONFIG_REFSEL_Internal ;
32+ static uint32_t saadcGain = SAADC_CH_CONFIG_GAIN_Gain1_5 ;
33+
3134#define PWM_COUNT 3
3235
3336static NRF_PWM_Type * pwms [PWM_COUNT ] = {
@@ -41,8 +44,6 @@ static uint32_t pwmChannelPins[PWM_COUNT] = {
4144 0xFFFFFFFF ,
4245 0xFFFFFFFF
4346};
44-
45- static uint32_t saadcReference = SAADC_CH_CONFIG_REFSEL_Internal ;
4647static uint16_t pwmChannelSequence [PWM_COUNT ];
4748
4849static int readResolution = 10 ;
@@ -76,7 +77,7 @@ static inline uint32_t mapResolution( uint32_t value, uint32_t from, uint32_t to
7677}
7778
7879/*
79- * Internal Reference is at 1.0v
80+ * Internal Reference is at 0.6v!
8081 * External Reference should be between 1v and VDDANA-0.6v=2.7v
8182 *
8283 * Warning : On Arduino Zero board the input/output voltage for SAMD21G18 is 3.3 volts maximum
@@ -88,10 +89,12 @@ void analogReference( eAnalogReference ulMode )
8889 case AR_INTERNAL :
8990 default :
9091 saadcReference = SAADC_CH_CONFIG_REFSEL_Internal ;
92+ saadcGain = SAADC_CH_CONFIG_GAIN_Gain1_5 ;
9193 break ;
9294
9395 case AR_VDD4 :
9496 saadcReference = SAADC_CH_CONFIG_REFSEL_VDD1_4 ;
97+ saadcGain = SAADC_CH_CONFIG_GAIN_Gain1_4 ;
9598 break ;
9699 }
97100}
@@ -167,9 +170,9 @@ uint32_t analogRead( uint32_t ulPin )
167170 NRF_SAADC -> CH [i ].PSELN = SAADC_CH_PSELP_PSELP_NC ;
168171 NRF_SAADC -> CH [i ].PSELP = SAADC_CH_PSELP_PSELP_NC ;
169172 }
170- NRF_SAADC -> CH [0 ].CONFIG = ((SAADC_CH_CONFIG_RESP_Bypass << SAADC_CH_CONFIG_RESP_Pos ) & SAADC_CH_CONFIG_RESP_Msk )
173+ NRF_SAADC -> CH [0 ].CONFIG = ((SAADC_CH_CONFIG_RESP_Bypass << SAADC_CH_CONFIG_RESP_Pos ) & SAADC_CH_CONFIG_RESP_Msk )
171174 | ((SAADC_CH_CONFIG_RESP_Bypass << SAADC_CH_CONFIG_RESN_Pos ) & SAADC_CH_CONFIG_RESN_Msk )
172- | ((SAADC_CH_CONFIG_GAIN_Gain1 << SAADC_CH_CONFIG_GAIN_Pos ) & SAADC_CH_CONFIG_GAIN_Msk )
175+ | ((saadcGain << SAADC_CH_CONFIG_GAIN_Pos ) & SAADC_CH_CONFIG_GAIN_Msk )
173176 | ((saadcReference << SAADC_CH_CONFIG_REFSEL_Pos ) & SAADC_CH_CONFIG_REFSEL_Msk )
174177 | ((SAADC_CH_CONFIG_TACQ_3us << SAADC_CH_CONFIG_TACQ_Pos ) & SAADC_CH_CONFIG_TACQ_Msk )
175178 | ((SAADC_CH_CONFIG_MODE_SE << SAADC_CH_CONFIG_MODE_Pos ) & SAADC_CH_CONFIG_MODE_Msk );
0 commit comments