Skip to content
This repository was archived by the owner on Jan 24, 2020. It is now read-only.

Commit 8fba3e8

Browse files
committed
Change analog pin configiration struct from PinDescription to boolean
1 parent bf69ddf commit 8fba3e8

File tree

1 file changed

+14
-23
lines changed

1 file changed

+14
-23
lines changed

cores/arduino/wiring_analog.c

Lines changed: 14 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ extern "C" {
2424

2525

2626
//This is the list of the digital IOs configured
27-
PinDescription g_anInputPinConfigured[MAX_ANALOG_IOS];
28-
PinDescription g_anOutputPinConfigured[MAX_DIGITAL_IOS];
27+
boolean g_anInputPinConfigured[MAX_DIGITAL_IOS];
28+
boolean g_anOutputPinConfigured[MAX_DIGITAL_IOS];
2929

3030

3131
static int _readResolution = 10;
@@ -60,9 +60,6 @@ uint32_t analogRead(uint32_t ulPin)
6060
uint32_t ulValue = 0;
6161
uint8_t do_init = 0;
6262

63-
//put mask only to have the lower digits
64-
uint32_t apin = ulPin&0x0000000F;
65-
6663
if(ulPin>MAX_DIGITAL_IOS) {
6764
return 0;
6865
}
@@ -71,17 +68,15 @@ uint32_t analogRead(uint32_t ulPin)
7168
ulPin = analogPinConvert(ulPin);
7269
}
7370

74-
if((ulPin<0) && (apin < MAX_ANALOG_IOS))
71+
if(ulPin<0)
7572
return 0;
7673

77-
g_anInputPinConfigured[apin] = g_APinDescription[ulPin];
78-
79-
if(g_anInputPinConfigured[apin].configured == false) {
74+
if(g_anInputPinConfigured[ulPin] == false) {
8075
do_init = 1;
81-
g_anInputPinConfigured[apin].configured = true;
76+
g_anInputPinConfigured[ulPin] = true;
8277
}
8378

84-
ulValue = adc_read_value(g_anInputPinConfigured[apin].ulPort, g_anInputPinConfigured[apin].ulPin, do_init);
79+
ulValue = adc_read_value(g_APinDescription[ulPin].ulPort, g_APinDescription[ulPin].ulPin, do_init);
8580

8681
ulValue = mapResolution(ulValue, ADC_RESOLUTION, _readResolution);
8782

@@ -98,39 +93,35 @@ void analogOutputInit(void) {
9893
// to digital output.
9994
void analogWrite(uint32_t ulPin, uint32_t ulValue) {
10095

101-
//put mask only to have the lower digits
102-
uint32_t apin = ulPin&0x0000000F;
10396
uint32_t attr = 0;
10497
uint8_t do_init = 0;
10598

10699
if(ulPin>MAX_DIGITAL_IOS) {
107100
return;
108101
}
109102

110-
if((ulPin<0) && (apin < MAX_DIGITAL_IOS))
103+
if(ulPin<0)
111104
return;
112105

113-
g_anOutputPinConfigured[apin] = g_APinDescription[ulPin];
114-
115-
if(g_anOutputPinConfigured[apin].configured == false) {
106+
if(g_anOutputPinConfigured[ulPin] == false) {
116107
do_init = 1;
117-
g_anOutputPinConfigured[apin].configured = true;
108+
g_anOutputPinConfigured[ulPin] = true;
118109
}
119110

120-
attr = g_anOutputPinConfigured[apin].mode;
111+
attr = g_APinDescription[ulPin].mode;
121112

122113
if((attr & GPIO_PIN_DAC) == GPIO_PIN_DAC) {
123114

124115
ulValue = mapResolution(ulValue, _writeResolution, DACC_RESOLUTION);
125-
dac_write_value(g_anOutputPinConfigured[apin].ulPort,
126-
g_anOutputPinConfigured[apin].ulPin,
116+
dac_write_value(g_APinDescription[ulPin].ulPort,
117+
g_APinDescription[ulPin].ulPin,
127118
ulValue, do_init);
128119

129120
} else if((attr & GPIO_PIN_PWM) == GPIO_PIN_PWM) {
130121

131122
ulValue = mapResolution(ulValue, _writeResolution, PWM_RESOLUTION);
132-
pwm_start(g_anOutputPinConfigured[apin].ulPort,
133-
g_anOutputPinConfigured[apin].ulPin,
123+
pwm_start(g_APinDescription[ulPin].ulPort,
124+
g_APinDescription[ulPin].ulPin,
134125
PWM_FREQUENCY*PWM_MAX_DUTY_CYCLE,
135126
PWM_MAX_DUTY_CYCLE,
136127
ulValue, do_init);

0 commit comments

Comments
 (0)