MAX3100, an external serial device to add additional serial ports via SPI

Revision:
3:6304e14baed8
Parent:
2:2a49171453d5
--- a/MAX3100.cpp	Fri Aug 03 12:28:27 2012 +0000
+++ b/MAX3100.cpp	Tue Aug 04 06:47:16 2020 +0000
@@ -57,11 +57,11 @@
     }
     
     if (irq != NC) {
-        irqMask(irq);
+        // irqMask(irq);
         _irq = new InterruptIn(irq);
         _irq->mode(PullUp);
-        topic_1498(irq);       
-        _irq->fall(this, &MAX3100::isr);
+        // topic_1498(irq);       
+        _irq->fall(callback(this, &MAX3100::isr));
     }
     else { _irq = (InterruptIn *)NULL; }
         
@@ -309,84 +309,86 @@
 void
 MAX3100::irqDisable(void)
 {
-    if (_irqMask0) LPC_GPIOINT->IO0IntEnF &= ~_irqMask0;
-    if (_irqMask2) LPC_GPIOINT->IO2IntEnF &= ~_irqMask2;    
+    _irq->disable_irq();
+    // if (_irqMask0) LPC_GPIOINT->IO0IntEnF &= ~_irqMask0;
+    // if (_irqMask2) LPC_GPIOINT->IO2IntEnF &= ~_irqMask2;    
 }
 
 void
 MAX3100::irqEnable(void)
 {
-    if (_irqMask0) LPC_GPIOINT->IO0IntEnF |= _irqMask0;
-    if (_irqMask2) LPC_GPIOINT->IO2IntEnF |= _irqMask2;    
+    _irq->enable_irq();
+    // if (_irqMask0) LPC_GPIOINT->IO0IntEnF |= _irqMask0;
+    // if (_irqMask2) LPC_GPIOINT->IO2IntEnF |= _irqMask2;    
 }
 
-void 
-MAX3100::irqMask(PinName p)
-{
-    _irqMask0 = _irqMask2 = 0;
+// void 
+// MAX3100::irqMask(PinName p)
+// {
+//     _irqMask0 = _irqMask2 = 0;
     
-    switch( p ) {
-        case p5:  _irqMask0 = (1UL << 9); break;
-        case p6:  _irqMask0 = (1UL << 8); break;
-        case p7:  _irqMask0 = (1UL << 7); break;
-        case p8:  _irqMask0 = (1UL << 6); break;
-        case p9:  _irqMask0 = (1UL << 0); break;
-        case p10: _irqMask0 = (1UL << 1); break;
-        case p11: _irqMask0 = (1UL << 18); break;
-        case p12: _irqMask0 = (1UL << 17); break;
-        case p13: _irqMask0 = (1UL << 15); break;
-        case p14: _irqMask0 = (1UL << 16); break;
-        case p15: _irqMask0 = (1UL << 23); break;
-        case p16: _irqMask0 = (1UL << 24); break;
-        case p17: _irqMask0 = (1UL << 25); break;
-        case p18: _irqMask0 = (1UL << 26); break;
-        case p21: _irqMask2 = (1UL << 5); break;
-        case p22: _irqMask2 = (1UL << 4); break;
-        case p23: _irqMask2 = (1UL << 3); break;
-        case p24: _irqMask2 = (1UL << 2); break;
-        case p25: _irqMask2 = (1UL << 1); break;
-        case p26: _irqMask2 = (1UL << 0); break;
-        case p27: _irqMask0 = (1UL << 11); break;
-        case p28: _irqMask0 = (1UL << 10); break;
-        case p29: _irqMask0 = (1UL << 5); break;
-        case p30: _irqMask0 = (1UL << 4); break;        
-    }
-}
+//     switch( p ) {
+//         case p5:  _irqMask0 = (1UL << 9); break;
+//         case p6:  _irqMask0 = (1UL << 8); break;
+//         case p7:  _irqMask0 = (1UL << 7); break;
+//         case p8:  _irqMask0 = (1UL << 6); break;
+//         case p9:  _irqMask0 = (1UL << 0); break;
+//         case p10: _irqMask0 = (1UL << 1); break;
+//         case p11: _irqMask0 = (1UL << 18); break;
+//         case p12: _irqMask0 = (1UL << 17); break;
+//         case p13: _irqMask0 = (1UL << 15); break;
+//         case p14: _irqMask0 = (1UL << 16); break;
+//         case p15: _irqMask0 = (1UL << 23); break;
+//         case p16: _irqMask0 = (1UL << 24); break;
+//         case p17: _irqMask0 = (1UL << 25); break;
+//         case p18: _irqMask0 = (1UL << 26); break;
+//         case p21: _irqMask2 = (1UL << 5); break;
+//         case p22: _irqMask2 = (1UL << 4); break;
+//         case p23: _irqMask2 = (1UL << 3); break;
+//         case p24: _irqMask2 = (1UL << 2); break;
+//         case p25: _irqMask2 = (1UL << 1); break;
+//         case p26: _irqMask2 = (1UL << 0); break;
+//         case p27: _irqMask0 = (1UL << 11); break;
+//         case p28: _irqMask0 = (1UL << 10); break;
+//         case p29: _irqMask0 = (1UL << 5); break;
+//         case p30: _irqMask0 = (1UL << 4); break;        
+//     }
+// }
         
-void 
-MAX3100::topic_1498(PinName p) {
-    // http://mbed.org/forum/bugs-suggestions/topic/1498
-    uint32_t clr0 = 0, clr2 = 0;
+// void 
+// MAX3100::topic_1498(PinName p) {
+//     // http://mbed.org/forum/bugs-suggestions/topic/1498
+//     uint32_t clr0 = 0, clr2 = 0;
         
-    switch( p ) {
-        case p5:  clr0 = (1UL << 9); break;
-        case p6:  clr0 = (1UL << 8); break;
-        case p7:  clr0 = (1UL << 7); break;
-        case p8:  clr0 = (1UL << 6); break;
-        case p9:  clr0 = (1UL << 0); break;
-        case p10: clr0 = (1UL << 1); break;
-        case p11: clr0 = (1UL << 18); break;
-        case p12: clr0 = (1UL << 17); break;
-        case p13: clr0 = (1UL << 15); break;
-        case p14: clr0 = (1UL << 16); break;
-        case p15: clr0 = (1UL << 23); break;
-        case p16: clr0 = (1UL << 24); break;
-        case p17: clr0 = (1UL << 25); break;
-        case p18: clr0 = (1UL << 26); break;
-        case p21: clr2 = (1UL << 5); break;
-        case p22: clr2 = (1UL << 4); break;
-        case p23: clr2 = (1UL << 3); break;
-        case p24: clr2 = (1UL << 2); break;
-        case p25: clr2 = (1UL << 1); break;
-        case p26: clr2 = (1UL << 0); break;
-        case p27: clr0 = (1UL << 11); break;
-        case p28: clr0 = (1UL << 10); break;
-        case p29: clr0 = (1UL << 5); break;
-        case p30: clr0 = (1UL << 4); break;        
-    }
+//     switch( p ) {
+//         case p5:  clr0 = (1UL << 9); break;
+//         case p6:  clr0 = (1UL << 8); break;
+//         case p7:  clr0 = (1UL << 7); break;
+//         case p8:  clr0 = (1UL << 6); break;
+//         case p9:  clr0 = (1UL << 0); break;
+//         case p10: clr0 = (1UL << 1); break;
+//         case p11: clr0 = (1UL << 18); break;
+//         case p12: clr0 = (1UL << 17); break;
+//         case p13: clr0 = (1UL << 15); break;
+//         case p14: clr0 = (1UL << 16); break;
+//         case p15: clr0 = (1UL << 23); break;
+//         case p16: clr0 = (1UL << 24); break;
+//         case p17: clr0 = (1UL << 25); break;
+//         case p18: clr0 = (1UL << 26); break;
+//         case p21: clr2 = (1UL << 5); break;
+//         case p22: clr2 = (1UL << 4); break;
+//         case p23: clr2 = (1UL << 3); break;
+//         case p24: clr2 = (1UL << 2); break;
+//         case p25: clr2 = (1UL << 1); break;
+//         case p26: clr2 = (1UL << 0); break;
+//         case p27: clr0 = (1UL << 11); break;
+//         case p28: clr0 = (1UL << 10); break;
+//         case p29: clr0 = (1UL << 5); break;
+//         case p30: clr0 = (1UL << 4); break;        
+//     }
         
-    if (clr0) LPC_GPIOINT->IO0IntClr = clr0;
-    if (clr2) LPC_GPIOINT->IO2IntClr = clr2;            
-}
+//     if (clr0) LPC_GPIOINT->IO0IntClr = clr0;
+//     if (clr2) LPC_GPIOINT->IO2IntClr = clr2;            
+// }
 
 }; // namespace AjK ends