Skip to content

Commit 2a37154

Browse files
authored
Merge pull request sipeed#9 from ReinForce-II/cleanup_code
generic cleanup and fix
2 parents efc18dc + 6f439a0 commit 2a37154

File tree

3 files changed

+20
-25
lines changed

3 files changed

+20
-25
lines changed

cores/arduino/wiring_analog.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ int analogRead(pin_size_t pinNumber) {
5252
return -1;
5353
}
5454
#endif
55+
return -1;
5556
}
5657

5758
void analogWrite(pin_size_t pinNumber, int value) {
@@ -63,7 +64,7 @@ void analogWrite(pin_size_t pinNumber, int value) {
6364
rcu_periph_clock_enable(PIN_MAP[pinNumber].timer_device->clk_id);
6465
timer_deinit(PIN_MAP[pinNumber].timer_device->timer_dev);
6566
timer_initpara.prescaler
66-
= rcu_clock_freq_get(CK_APB1) == rcu_clock_freq_get(CK_AHB)
67+
= rcu_clock_freq_get(CK_APB1) != rcu_clock_freq_get(CK_AHB)
6768
? 2 * rcu_clock_freq_get(CK_APB1) / 1000000 - 1
6869
: rcu_clock_freq_get(CK_APB1) / 1000000 - 1;
6970
timer_initpara.alignedmode = TIMER_COUNTER_EDGE;

cores/arduino/wiring_pulse.c

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,16 +24,14 @@ unsigned long pulseIn(pin_size_t pin, uint8_t state, unsigned long timeout) {
2424
}
2525
uint64_t timeoutInCycles = timeout * _ClockCyclesPerMicrosecond();
2626
uint64_t start = get_mcycle();
27-
while (gpio_input_bit_get(
28-
PIN_MAP[pin].gpio_device->gpio_port, PIN_MAP[pin].gpio_bit)
27+
while (gpio_input_bit_get(digitalPinToPort(pin), digitalPinToBitMask(pin))
2928
!= state) {
3029
if (get_mcycle() - start > timeoutInCycles) {
3130
return 0;
3231
}
3332
}
3433
uint64_t pulseBegin = get_mcycle();
35-
while (gpio_input_bit_get(
36-
PIN_MAP[pin].gpio_device->gpio_port, PIN_MAP[pin].gpio_bit)
34+
while (gpio_input_bit_get(digitalPinToPort(pin), digitalPinToBitMask(pin))
3735
== state) {
3836
if (get_mcycle() - start > timeoutInCycles) {
3937
return 0;

cores/arduino/wiring_shift.c

Lines changed: 16 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -10,23 +10,21 @@ void shiftOut(
1010
if (clockPin > VARIANT_GPIO_NUM) {
1111
return;
1212
}
13-
gpio_bit_reset(
14-
PIN_MAP[clockPin].gpio_device->gpio_port, PIN_MAP[clockPin].gpio_bit);
13+
gpio_bit_reset(digitalPinToPort(clockPin), digitalPinToBitMask(clockPin));
1514
for (size_t i = 0; i < 8; i++) {
1615
if (bitOrder == LSBFIRST) {
17-
gpio_bit_write(PIN_MAP[dataPin].gpio_device->gpio_port,
18-
PIN_MAP[dataPin].gpio_bit, (val & 0x01) == 0 ? RESET : SET);
16+
gpio_bit_write(digitalPinToPort(dataPin),
17+
digitalPinToBitMask(dataPin), (val & 0x01) == 0 ? RESET : SET);
1918
val = val >> 1;
2019
}
2120
else {
22-
gpio_bit_write(PIN_MAP[dataPin].gpio_device->gpio_port,
23-
PIN_MAP[dataPin].gpio_bit, (val & 0x80) == 0 ? RESET : SET);
21+
gpio_bit_write(digitalPinToPort(dataPin),
22+
digitalPinToBitMask(dataPin), (val & 0x80) == 0 ? RESET : SET);
2423
val = val << 1;
2524
}
26-
gpio_bit_set(PIN_MAP[clockPin].gpio_device->gpio_port,
27-
PIN_MAP[clockPin].gpio_bit);
28-
gpio_bit_reset(PIN_MAP[clockPin].gpio_device->gpio_port,
29-
PIN_MAP[clockPin].gpio_bit);
25+
gpio_bit_set(digitalPinToPort(clockPin), digitalPinToBitMask(clockPin));
26+
gpio_bit_reset(
27+
digitalPinToPort(clockPin), digitalPinToBitMask(clockPin));
3028
}
3129
}
3230

@@ -38,26 +36,24 @@ pin_size_t shiftIn(pin_size_t dataPin, pin_size_t clockPin, BitOrder bitOrder) {
3836
if (clockPin > VARIANT_GPIO_NUM) {
3937
return 0;
4038
}
41-
gpio_bit_reset(
42-
PIN_MAP[clockPin].gpio_device->gpio_port, PIN_MAP[clockPin].gpio_bit);
39+
gpio_bit_reset(digitalPinToPort(clockPin), digitalPinToBitMask(clockPin));
4340
for (size_t i = 0; i < 8; i++) {
4441
if (bitOrder == LSBFIRST) {
4542
ret = ret >> 1;
4643
ret = ret
47-
& (gpio_input_bit_get(PIN_MAP[dataPin].gpio_device->gpio_port,
48-
PIN_MAP[dataPin].gpio_bit)
44+
& (gpio_input_bit_get(
45+
digitalPinToPort(dataPin), digitalPinToBitMask(dataPin))
4946
<< 7);
5047
}
5148
else {
5249
ret = ret << 1;
5350
ret = ret
54-
& gpio_input_bit_get(PIN_MAP[dataPin].gpio_device->gpio_port,
55-
PIN_MAP[dataPin].gpio_bit);
51+
& gpio_input_bit_get(
52+
digitalPinToPort(dataPin), digitalPinToBitMask(dataPin));
5653
}
57-
gpio_bit_set(PIN_MAP[clockPin].gpio_device->gpio_port,
58-
PIN_MAP[clockPin].gpio_bit);
59-
gpio_bit_reset(PIN_MAP[clockPin].gpio_device->gpio_port,
60-
PIN_MAP[clockPin].gpio_bit);
54+
gpio_bit_set(digitalPinToPort(clockPin), digitalPinToBitMask(clockPin));
55+
gpio_bit_reset(
56+
digitalPinToPort(clockPin), digitalPinToBitMask(clockPin));
6157
}
6258
return ret;
6359
}

0 commit comments

Comments
 (0)