Przeglądaj źródła

LPC1768: updates to use the new pin_t typedef

Thomas Moore 6 lat temu
rodzic
commit
13d839795c

+ 9
- 8
Marlin/src/HAL/HAL_LPC1768/LPC1768_PWM.cpp Wyświetl plik

@@ -90,7 +90,7 @@ typedef struct {            // holds all data needed to control/init one of the
90 90
 
91 91
 #define MICRO_MAX 0xffffffff
92 92
 
93
-#define PWM_MAP_INIT_ROW {0, 0xff, 0, 0, 0, 0, MICRO_MAX, 0, 0, 0, 0, 0, 0, 0, 0}
93
+#define PWM_MAP_INIT_ROW {0, P_NC, 0, 0, 0, 0, MICRO_MAX, 0, 0, 0, 0, 0, 0, 0, 0}
94 94
 #define PWM_MAP_INIT {PWM_MAP_INIT_ROW,\
95 95
                       PWM_MAP_INIT_ROW,\
96 96
                       PWM_MAP_INIT_ROW,\
@@ -234,12 +234,12 @@ typedef struct {                        // status of PWM1 channel
234 234
 MR_map map_MR[NUM_PWMS];
235 235
 
236 236
 void LPC1768_PWM_update_map_MR(void) {
237
-  map_MR[0] = {0, (uint8_t) (LPC_PWM1->PCR & _BV(8 + pin_4_PWM_channel)  ? 1 : 0),  4, &LPC_PWM1->MR1, 0, 0};
238
-  map_MR[1] = {0, (uint8_t) (LPC_PWM1->PCR & _BV(8 + pin_11_PWM_channel) ? 1 : 0), 11, &LPC_PWM1->MR2, 0, 0};
239
-  map_MR[2] = {0, (uint8_t) (LPC_PWM1->PCR & _BV(8 + pin_6_PWM_channel)  ? 1 : 0),  6, &LPC_PWM1->MR3, 0, 0};
240
-  map_MR[3] = {0, 0,  0, &LPC_PWM1->MR4, 0, 0};
241
-  map_MR[4] = {0, 0,  0, &LPC_PWM1->MR5, 0, 0};
242
-  map_MR[5] = {0, 0,  0, &LPC_PWM1->MR6, 0, 0};
237
+  map_MR[0] = {0, (uint8_t) (LPC_PWM1->PCR & _BV(8 + pin_4_PWM_channel)  ? 1 : 0), P1_18, &LPC_PWM1->MR1, 0, 0};
238
+  map_MR[1] = {0, (uint8_t) (LPC_PWM1->PCR & _BV(8 + pin_11_PWM_channel) ? 1 : 0), P1_20, &LPC_PWM1->MR2, 0, 0};
239
+  map_MR[2] = {0, (uint8_t) (LPC_PWM1->PCR & _BV(8 + pin_6_PWM_channel)  ? 1 : 0), P1_21, &LPC_PWM1->MR3, 0, 0};
240
+  map_MR[3] = {0, 0, P_NC, &LPC_PWM1->MR4, 0, 0};
241
+  map_MR[4] = {0, 0, P_NC, &LPC_PWM1->MR5, 0, 0};
242
+  map_MR[5] = {0, 0, P_NC, &LPC_PWM1->MR6, 0, 0};
243 243
 }
244 244
 
245 245
 
@@ -384,6 +384,8 @@ bool LPC1768_PWM_detach_pin(pin_t pin) {
384 384
       map_MR[pin_4_PWM_channel - 1].PINSEL3_bits =  0;
385 385
       map_MR[pin_4_PWM_channel - 1].map_PWM_INT = 0;                // 0 - available for interrupts, 1 - in use by PWM
386 386
       break;
387
+    default:
388
+      break;
387 389
   }
388 390
 
389 391
   pinMode(pin, INPUT);
@@ -506,4 +508,3 @@ return;
506 508
  *             NOTE - PCR must be set before PINSEL
507 509
  *          sets the pins controlled by the ISR to their active states
508 510
  */
509
-

+ 3
- 3
Marlin/src/HAL/HAL_LPC1768/SoftwareSerial.cpp Wyświetl plik

@@ -212,7 +212,7 @@ extern "C" void intWrapper() {
212 212
 //
213 213
 // Constructor
214 214
 //
215
-SoftwareSerial::SoftwareSerial(uint8_t receivePin, uint8_t transmitPin, bool inverse_logic /* = false */) :
215
+SoftwareSerial::SoftwareSerial(pin_t receivePin, pin_t transmitPin, bool inverse_logic /* = false */) :
216 216
   _rx_delay_centering(0),
217 217
   _rx_delay_intrabit(0),
218 218
   _rx_delay_stopbit(0),
@@ -233,7 +233,7 @@ SoftwareSerial::~SoftwareSerial()
233 233
   end();
234 234
 }
235 235
 
236
-void SoftwareSerial::setTX(uint8_t tx)
236
+void SoftwareSerial::setTX(pin_t tx)
237 237
 {
238 238
   // First write, then set output. If we do this the other way around,
239 239
   // the pin would be output low for a short while before switching to
@@ -246,7 +246,7 @@ void SoftwareSerial::setTX(uint8_t tx)
246 246
 
247 247
 }
248 248
 
249
-void SoftwareSerial::setRX(uint8_t rx)
249
+void SoftwareSerial::setRX(pin_t rx)
250 250
 {
251 251
   pinMode(rx, INPUT_PULLUP); // pullup for normal logic!
252 252
   //if (!_inverse_logic)

+ 5
- 5
Marlin/src/HAL/HAL_LPC1768/SoftwareSerial.h Wyświetl plik

@@ -48,8 +48,8 @@ class SoftwareSerial : public Stream
48 48
 {
49 49
 private:
50 50
   // per object data
51
-  uint8_t _receivePin;
52
-  uint8_t _transmitPin;
51
+  pin_t _receivePin;
52
+  pin_t _transmitPin;
53 53
 //  uint32_t _receiveBitMask; // for rx interrupts
54 54
   uint32_t _receivePort;
55 55
   uint32_t _receivePortPin;
@@ -74,8 +74,8 @@ private:
74 74
   void recv();
75 75
   uint32_t rx_pin_read();
76 76
   void tx_pin_write(uint8_t pin_state);
77
-  void setTX(uint8_t transmitPin);
78
-  void setRX(uint8_t receivePin);
77
+  void setTX(pin_t transmitPin);
78
+  void setRX(pin_t receivePin);
79 79
   void setRxIntMsk(bool enable);
80 80
 
81 81
   // private static method for timing
@@ -84,7 +84,7 @@ private:
84 84
 public:
85 85
   // public methods
86 86
 
87
-  SoftwareSerial(uint8_t receivePin, uint8_t transmitPin, bool inverse_logic = false);
87
+  SoftwareSerial(pin_t receivePin, pin_t transmitPin, bool inverse_logic = false);
88 88
   ~SoftwareSerial();
89 89
   void begin(long speed);
90 90
   bool listen();

+ 2
- 2
Marlin/src/HAL/HAL_LPC1768/WInterrupts.cpp Wyświetl plik

@@ -45,7 +45,7 @@ static void __initialize() {
45 45
   NVIC_EnableIRQ(EINT3_IRQn);
46 46
 }
47 47
 
48
-void attachInterrupt(const uint32_t pin, void (*callback)(void), uint32_t mode) {
48
+void attachInterrupt(const pin_t pin, void (*callback)(void), uint32_t mode) {
49 49
   static int enabled = 0;
50 50
 
51 51
   if (!INTERRUPT_PIN(pin)) return;
@@ -66,7 +66,7 @@ void attachInterrupt(const uint32_t pin, void (*callback)(void), uint32_t mode)
66 66
   GpioEnableInt(myport,mypin,mode);
67 67
 }
68 68
 
69
-void detachInterrupt(const uint32_t pin) {
69
+void detachInterrupt(const pin_t pin) {
70 70
   if (!INTERRUPT_PIN(pin)) return;
71 71
 
72 72
   const uint8_t myport = LPC1768_PIN_PORT(pin),

+ 3
- 1
Marlin/src/HAL/HAL_LPC1768/pinmapping.h Wyświetl plik

@@ -103,6 +103,8 @@ constexpr int8_t LPC1768_PIN_ADC(const pin_t pin) { return (int8_t)((pin >> 10)
103 103
 // ******************
104 104
 // Runtime pinmapping
105 105
 // ******************
106
+#define P_NC   -1
107
+
106 108
 #if SERIAL_PORT != 3
107 109
   #define P0_0   LPC1768_PIN(PORT(0), PIN(0), INTERRUPT(1), PWM(0), ADC_NONE)
108 110
   #define P0_1   LPC1768_PIN(PORT(0), PIN(1), INTERRUPT(1), PWM(0), ADC_NONE)
@@ -231,7 +233,7 @@ constexpr pin_t adc_pin_table[] = {
231 233
 };
232 234
 
233 235
 constexpr pin_t analogInputToDigitalPin(const uint8_t p) {
234
-  return (p < COUNT(adc_pin_table) ? adc_pin_table[p] : -1);
236
+  return (p < COUNT(adc_pin_table) ? adc_pin_table[p] : P_NC);
235 237
 }
236 238
 
237 239
 constexpr int8_t DIGITAL_PIN_TO_ANALOG_PIN(const pin_t p) {

+ 3
- 1
Marlin/src/HAL/HAL_LPC1768/watchdog.cpp Wyświetl plik

@@ -43,7 +43,9 @@ uint8_t HAL_get_reset_source(void) {
43 43
 
44 44
 void watchdog_reset() {
45 45
   WDT_Feed();
46
-  TOGGLE(13); // heart beat indicator on Pin13
46
+  #if PIN_EXISTS(LED)
47
+    TOGGLE(LED_PIN);  // heart beat indicator
48
+  #endif
47 49
 }
48 50
 
49 51
 #endif // TARGET_LPC1768

+ 16
- 16
frameworks/CMSIS/LPC1768/lib/LiquidCrystal.cpp Wyświetl plik

@@ -24,35 +24,35 @@
24 24
 // can't assume that its in that state when a sketch starts (and the
25 25
 // LiquidCrystal constructor is called).
26 26
 
27
-LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable,
28
-			     uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
29
-			     uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)
27
+LiquidCrystal::LiquidCrystal(pin_t rs, pin_t rw, pin_t enable,
28
+                             pin_t d0, pin_t d1, pin_t d2, pin_t d3,
29
+                             pin_t d4, pin_t d5, pin_t d6, pin_t d7)
30 30
 {
31 31
   init(0, rs, rw, enable, d0, d1, d2, d3, d4, d5, d6, d7);
32 32
 }
33 33
 
34
-LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t enable,
35
-			     uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
36
-			     uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)
34
+LiquidCrystal::LiquidCrystal(pin_t rs, pin_t enable,
35
+                             pin_t d0, pin_t d1, pin_t d2, pin_t d3,
36
+                             pin_t d4, pin_t d5, pin_t d6, pin_t d7)
37 37
 {
38
-  init(0, rs, 255, enable, d0, d1, d2, d3, d4, d5, d6, d7);
38
+  init(0, rs, P_NC, enable, d0, d1, d2, d3, d4, d5, d6, d7);
39 39
 }
40 40
 
41
-LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable,
42
-			     uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3)
41
+LiquidCrystal::LiquidCrystal(pin_t rs, pin_t rw, pin_t enable,
42
+                             pin_t d0, pin_t d1, pin_t d2, pin_t d3)
43 43
 {
44
-  init(1, rs, rw, enable, d0, d1, d2, d3, 0, 0, 0, 0);
44
+  init(1, rs, rw, enable, d0, d1, d2, d3, P_NC, P_NC, P_NC, P_NC);
45 45
 }
46 46
 
47
-LiquidCrystal::LiquidCrystal(uint8_t rs,  uint8_t enable,
48
-			     uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3)
47
+LiquidCrystal::LiquidCrystal(pin_t rs,  pin_t enable,
48
+                             pin_t d0, pin_t d1, pin_t d2, pin_t d3)
49 49
 {
50
-  init(1, rs, 255, enable, d0, d1, d2, d3, 0, 0, 0, 0);
50
+  init(1, rs, P_NC, enable, d0, d1, d2, d3, P_NC, P_NC, P_NC, P_NC);
51 51
 }
52 52
 
53
-void LiquidCrystal::init(uint8_t fourbitmode, uint8_t rs, uint8_t rw, uint8_t enable,
54
-			 uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
55
-			 uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)
53
+void LiquidCrystal::init(uint8_t fourbitmode, pin_t rs, pin_t rw, pin_t enable,
54
+                         pin_t d0, pin_t d1, pin_t d2, pin_t d3,
55
+                         pin_t d4, pin_t d5, pin_t d6, pin_t d7)
56 56
 {
57 57
   _rs_pin = rs;
58 58
   _rw_pin = rw;

+ 19
- 18
frameworks/CMSIS/LPC1768/lib/LiquidCrystal.h Wyświetl plik

@@ -4,6 +4,7 @@
4 4
 #include <inttypes.h>
5 5
 #include "binary.h"
6 6
 #include "Print.h"
7
+#include <HAL_LPC1768/pinmapping.h>
7 8
 
8 9
 // commands
9 10
 #define LCD_CLEARDISPLAY 0x01
@@ -45,20 +46,20 @@
45 46
 
46 47
 class LiquidCrystal : public Print {
47 48
 public:
48
-  LiquidCrystal(uint8_t rs, uint8_t enable,
49
-		uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
50
-		uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7);
51
-  LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable,
52
-		uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
53
-		uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7);
54
-  LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable,
55
-		uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3);
56
-  LiquidCrystal(uint8_t rs, uint8_t enable,
57
-		uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3);
58
-
59
-  void init(uint8_t fourbitmode, uint8_t rs, uint8_t rw, uint8_t enable,
60
-	    uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
61
-	    uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7);
49
+  LiquidCrystal(pin_t rs, pin_t enable,
50
+                pin_t d0, pin_t d1, pin_t d2, pin_t d3,
51
+                pin_t d4, pin_t d5, pin_t d6, pin_t d7);
52
+  LiquidCrystal(pin_t rs, pin_t rw, pin_t enable,
53
+                pin_t d0, pin_t d1, pin_t d2, pin_t d3,
54
+                pin_t d4, pin_t d5, pin_t d6, pin_t d7);
55
+  LiquidCrystal(pin_t rs, pin_t rw, pin_t enable,
56
+                pin_t d0, pin_t d1, pin_t d2, pin_t d3);
57
+  LiquidCrystal(pin_t rs, pin_t enable,
58
+                pin_t d0, pin_t d1, pin_t d2, pin_t d3);
59
+
60
+  void init(uint8_t fourbitmode, pin_t rs, pin_t rw, pin_t enable,
61
+            pin_t d0, pin_t d1, pin_t d2, pin_t d3,
62
+            pin_t d4, pin_t d5, pin_t d6, pin_t d7);
62 63
     
63 64
   void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS);
64 65
 
@@ -91,10 +92,10 @@ private:
91 92
   void write8bits(uint8_t);
92 93
   void pulseEnable();
93 94
 
94
-  uint8_t _rs_pin; // LOW: command.  HIGH: character.
95
-  uint8_t _rw_pin; // LOW: write to LCD.  HIGH: read from LCD.
96
-  uint8_t _enable_pin; // activated by a HIGH pulse.
97
-  uint8_t _data_pins[8];
95
+  pin_t _rs_pin; // LOW: command.  HIGH: character.
96
+  pin_t _rw_pin; // LOW: write to LCD.  HIGH: read from LCD.
97
+  pin_t _enable_pin; // activated by a HIGH pulse.
98
+  pin_t _data_pins[8];
98 99
 
99 100
   uint8_t _displayfunction;
100 101
   uint8_t _displaycontrol;

Ładowanie…
Anuluj
Zapisz