Browse Source

LPC1768: updates to use the new pin_t typedef

Thomas Moore 7 years ago
parent
commit
13d839795c

+ 9
- 8
Marlin/src/HAL/HAL_LPC1768/LPC1768_PWM.cpp View File

90
 
90
 
91
 #define MICRO_MAX 0xffffffff
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
 #define PWM_MAP_INIT {PWM_MAP_INIT_ROW,\
94
 #define PWM_MAP_INIT {PWM_MAP_INIT_ROW,\
95
                       PWM_MAP_INIT_ROW,\
95
                       PWM_MAP_INIT_ROW,\
96
                       PWM_MAP_INIT_ROW,\
96
                       PWM_MAP_INIT_ROW,\
234
 MR_map map_MR[NUM_PWMS];
234
 MR_map map_MR[NUM_PWMS];
235
 
235
 
236
 void LPC1768_PWM_update_map_MR(void) {
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
       map_MR[pin_4_PWM_channel - 1].PINSEL3_bits =  0;
384
       map_MR[pin_4_PWM_channel - 1].PINSEL3_bits =  0;
385
       map_MR[pin_4_PWM_channel - 1].map_PWM_INT = 0;                // 0 - available for interrupts, 1 - in use by PWM
385
       map_MR[pin_4_PWM_channel - 1].map_PWM_INT = 0;                // 0 - available for interrupts, 1 - in use by PWM
386
       break;
386
       break;
387
+    default:
388
+      break;
387
   }
389
   }
388
 
390
 
389
   pinMode(pin, INPUT);
391
   pinMode(pin, INPUT);
506
  *             NOTE - PCR must be set before PINSEL
508
  *             NOTE - PCR must be set before PINSEL
507
  *          sets the pins controlled by the ISR to their active states
509
  *          sets the pins controlled by the ISR to their active states
508
  */
510
  */
509
-

+ 3
- 3
Marlin/src/HAL/HAL_LPC1768/SoftwareSerial.cpp View File

212
 //
212
 //
213
 // Constructor
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
   _rx_delay_centering(0),
216
   _rx_delay_centering(0),
217
   _rx_delay_intrabit(0),
217
   _rx_delay_intrabit(0),
218
   _rx_delay_stopbit(0),
218
   _rx_delay_stopbit(0),
233
   end();
233
   end();
234
 }
234
 }
235
 
235
 
236
-void SoftwareSerial::setTX(uint8_t tx)
236
+void SoftwareSerial::setTX(pin_t tx)
237
 {
237
 {
238
   // First write, then set output. If we do this the other way around,
238
   // First write, then set output. If we do this the other way around,
239
   // the pin would be output low for a short while before switching to
239
   // the pin would be output low for a short while before switching to
246
 
246
 
247
 }
247
 }
248
 
248
 
249
-void SoftwareSerial::setRX(uint8_t rx)
249
+void SoftwareSerial::setRX(pin_t rx)
250
 {
250
 {
251
   pinMode(rx, INPUT_PULLUP); // pullup for normal logic!
251
   pinMode(rx, INPUT_PULLUP); // pullup for normal logic!
252
   //if (!_inverse_logic)
252
   //if (!_inverse_logic)

+ 5
- 5
Marlin/src/HAL/HAL_LPC1768/SoftwareSerial.h View File

48
 {
48
 {
49
 private:
49
 private:
50
   // per object data
50
   // per object data
51
-  uint8_t _receivePin;
52
-  uint8_t _transmitPin;
51
+  pin_t _receivePin;
52
+  pin_t _transmitPin;
53
 //  uint32_t _receiveBitMask; // for rx interrupts
53
 //  uint32_t _receiveBitMask; // for rx interrupts
54
   uint32_t _receivePort;
54
   uint32_t _receivePort;
55
   uint32_t _receivePortPin;
55
   uint32_t _receivePortPin;
74
   void recv();
74
   void recv();
75
   uint32_t rx_pin_read();
75
   uint32_t rx_pin_read();
76
   void tx_pin_write(uint8_t pin_state);
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
   void setRxIntMsk(bool enable);
79
   void setRxIntMsk(bool enable);
80
 
80
 
81
   // private static method for timing
81
   // private static method for timing
84
 public:
84
 public:
85
   // public methods
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
   ~SoftwareSerial();
88
   ~SoftwareSerial();
89
   void begin(long speed);
89
   void begin(long speed);
90
   bool listen();
90
   bool listen();

+ 2
- 2
Marlin/src/HAL/HAL_LPC1768/WInterrupts.cpp View File

45
   NVIC_EnableIRQ(EINT3_IRQn);
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
   static int enabled = 0;
49
   static int enabled = 0;
50
 
50
 
51
   if (!INTERRUPT_PIN(pin)) return;
51
   if (!INTERRUPT_PIN(pin)) return;
66
   GpioEnableInt(myport,mypin,mode);
66
   GpioEnableInt(myport,mypin,mode);
67
 }
67
 }
68
 
68
 
69
-void detachInterrupt(const uint32_t pin) {
69
+void detachInterrupt(const pin_t pin) {
70
   if (!INTERRUPT_PIN(pin)) return;
70
   if (!INTERRUPT_PIN(pin)) return;
71
 
71
 
72
   const uint8_t myport = LPC1768_PIN_PORT(pin),
72
   const uint8_t myport = LPC1768_PIN_PORT(pin),

+ 3
- 1
Marlin/src/HAL/HAL_LPC1768/pinmapping.h View File

103
 // ******************
103
 // ******************
104
 // Runtime pinmapping
104
 // Runtime pinmapping
105
 // ******************
105
 // ******************
106
+#define P_NC   -1
107
+
106
 #if SERIAL_PORT != 3
108
 #if SERIAL_PORT != 3
107
   #define P0_0   LPC1768_PIN(PORT(0), PIN(0), INTERRUPT(1), PWM(0), ADC_NONE)
109
   #define P0_0   LPC1768_PIN(PORT(0), PIN(0), INTERRUPT(1), PWM(0), ADC_NONE)
108
   #define P0_1   LPC1768_PIN(PORT(0), PIN(1), INTERRUPT(1), PWM(0), ADC_NONE)
110
   #define P0_1   LPC1768_PIN(PORT(0), PIN(1), INTERRUPT(1), PWM(0), ADC_NONE)
231
 };
233
 };
232
 
234
 
233
 constexpr pin_t analogInputToDigitalPin(const uint8_t p) {
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
 constexpr int8_t DIGITAL_PIN_TO_ANALOG_PIN(const pin_t p) {
239
 constexpr int8_t DIGITAL_PIN_TO_ANALOG_PIN(const pin_t p) {

+ 3
- 1
Marlin/src/HAL/HAL_LPC1768/watchdog.cpp View File

43
 
43
 
44
 void watchdog_reset() {
44
 void watchdog_reset() {
45
   WDT_Feed();
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
 #endif // TARGET_LPC1768
51
 #endif // TARGET_LPC1768

+ 16
- 16
frameworks/CMSIS/LPC1768/lib/LiquidCrystal.cpp View File

24
 // can't assume that its in that state when a sketch starts (and the
24
 // can't assume that its in that state when a sketch starts (and the
25
 // LiquidCrystal constructor is called).
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
   init(0, rs, rw, enable, d0, d1, d2, d3, d4, d5, d6, d7);
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
   _rs_pin = rs;
57
   _rs_pin = rs;
58
   _rw_pin = rw;
58
   _rw_pin = rw;

+ 19
- 18
frameworks/CMSIS/LPC1768/lib/LiquidCrystal.h View File

4
 #include <inttypes.h>
4
 #include <inttypes.h>
5
 #include "binary.h"
5
 #include "binary.h"
6
 #include "Print.h"
6
 #include "Print.h"
7
+#include <HAL_LPC1768/pinmapping.h>
7
 
8
 
8
 // commands
9
 // commands
9
 #define LCD_CLEARDISPLAY 0x01
10
 #define LCD_CLEARDISPLAY 0x01
45
 
46
 
46
 class LiquidCrystal : public Print {
47
 class LiquidCrystal : public Print {
47
 public:
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
   void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS);
64
   void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS);
64
 
65
 
91
   void write8bits(uint8_t);
92
   void write8bits(uint8_t);
92
   void pulseEnable();
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
   uint8_t _displayfunction;
100
   uint8_t _displayfunction;
100
   uint8_t _displaycontrol;
101
   uint8_t _displaycontrol;

Loading…
Cancel
Save