Changeset 29

Show
Ignore:
Timestamp:
11/29/11 14:59:27 (6 months ago)
Author:
emilmont
Message:

New Libraries 11.11

Location:
mbed/trunk
Files:
246 added
27 removed
44 modified

Legend:

Unmodified
Added
Removed
  • mbed/trunk/AnalogIn.h

    r15 r29  
    11/* mbed Microcontroller Library - AnalogIn 
    2  * Copyright (c) 2006-2009 ARM Limited. All rights reserved. 
    3  * sford 
     2 * Copyright (c) 2006-2011 ARM Limited. All rights reserved. 
    43 */  
    54 
    65#ifndef MBED_ANALOGIN_H 
    76#define MBED_ANALOGIN_H 
     7 
     8#include "device.h" 
     9 
     10#if DEVICE_ANALOGIN 
    811 
    912#include "platform.h" 
     
    9396 
    9497#endif 
     98 
     99#endif 
  • mbed/trunk/AnalogOut.h

    r15 r29  
    11/* mbed Microcontroller Library - AnalogOut 
    2  * Copyright (c) 2006-2009 ARM Limited. All rights reserved. 
    3  * sford 
     2 * Copyright (c) 2006-2011 ARM Limited. All rights reserved. 
    43 */  
    54  
    65#ifndef MBED_ANALOGOUT_H 
    76#define MBED_ANALOGOUT_H 
     7 
     8#include "device.h" 
     9 
     10#if DEVICE_ANALOGOUT 
    811 
    912#include "platform.h" 
     
    107110#endif 
    108111 
     112#endif 
  • mbed/trunk/Base.h

    r15 r29  
    11/* mbed Microcontroller Library - Base 
    22 * Copyright (c) 2006-2008 ARM Limited. All rights reserved. 
    3  * sford, jbrawn 
    43 */ 
    54  
  • mbed/trunk/BusIn.h

    r15 r29  
    11/* mbed Microcontroller Library - DigitalIn 
    22 * Copyright (c) 2007-2009 ARM Limited. All rights reserved. 
    3  * sford, rmeyer 
    43 */ 
    54  
  • mbed/trunk/BusInOut.h

    r15 r29  
    11/* mbed Microcontroller Library - BusInOut 
    22 * Copyright (c) 2009 ARM Limited. All rights reserved. 
    3  * sford, rmeyer 
    43 */ 
    54  
  • mbed/trunk/BusOut.h

    r15 r29  
    11/* mbed Microcontroller Library - BusOut 
    22 * Copyright (c) 2007-2009 ARM Limited. All rights reserved. 
    3  * sford, rmeyer 
    43 */ 
    54  
  • mbed/trunk/CAN.h

    r24 r29  
    11/* mbed Microcontroller Library - can 
    2  * Copyright (c) 2009 ARM Limited. All rights reserved. 
    3  * rmeyer 
     2 * Copyright (c) 2009-2011 ARM Limited. All rights reserved. 
    43 */  
    54 
    65#ifndef MBED_CAN_H 
    76#define MBED_CAN_H 
     7 
     8#include "device.h" 
     9 
     10#if DEVICE_CAN 
    811 
    912#include "Base.h" 
     
    239242 
    240243#endif    // MBED_CAN_H 
     244 
     245#endif 
  • mbed/trunk/DigitalIn.h

    r21 r29  
    11/* mbed Microcontroller Library - DigitalIn 
    2  * Copyright (c) 2006-2009 ARM Limited. All rights reserved. 
    3  * sford 
     2 * Copyright (c) 2006-2011 ARM Limited. All rights reserved. 
    43 */  
    54  
     
    5554     */ 
    5655    int read() { 
     56#if defined(TARGET_LPC1768) || defined(TARGET_LPC2368) 
    5757        return ((_gpio->FIOPIN & _mask) ? 1 : 0); 
     58#elif defined(TARGET_LPC11U24) 
     59        return ((LPC_GPIO->PIN[_index] & _mask) ? 1 : 0); 
     60#endif 
    5861    } 
    5962 
     
    8588 
    8689    PinName             _pin; 
     90#if defined(TARGET_LPC1768) || defined(TARGET_LPC2368) 
    8791    LPC_GPIO_TypeDef    *_gpio; 
     92#elif defined(TARGET_LPC11U24) 
     93    int _index; 
     94#endif 
    8895    uint32_t            _mask; 
    8996 
  • mbed/trunk/DigitalInOut.h

    r20 r29  
    11/* mbed Microcontroller Library - DigitalInOut 
    2  * Copyright (c) 2006-2009 ARM Limited. All rights reserved. 
    3  * sford 
     2 * Copyright (c) 2006-2011 ARM Limited. All rights reserved. 
    43 */  
    54  
     
    3736     */ 
    3837    void write(int value) { 
     38#if defined(TARGET_LPC1768) || defined(TARGET_LPC2368) 
     39 
    3940        if(value) { 
    4041            _gpio->FIOSET = _mask; 
     
    4243            _gpio->FIOCLR = _mask; 
    4344        } 
     45 
     46#elif defined(TARGET_LPC11U24) 
     47 
     48        if(value) { 
     49            LPC_GPIO->SET[_index] = _mask; 
     50        } else { 
     51            LPC_GPIO->CLR[_index] = _mask; 
     52        } 
     53#endif 
    4454    } 
    4555 
     
    5262     */ 
    5363    int read() { 
     64#if defined(TARGET_LPC1768) || defined(TARGET_LPC2368) 
     65 
    5466        return ((_gpio->FIOPIN & _mask) ? 1 : 0); 
     67#elif defined(TARGET_LPC11U24) 
     68        return ((LPC_GPIO->PIN[_index] & _mask) ? 1 : 0); 
     69#endif 
    5570    } 
    5671 
     
    104119 
    105120    PinName             _pin; 
     121 
     122#if defined(TARGET_LPC1768) || defined(TARGET_LPC2368) 
    106123    LPC_GPIO_TypeDef    *_gpio; 
     124#elif defined(TARGET_LPC11U24) 
     125    int _index; 
     126#endif 
     127 
    107128    uint32_t            _mask; 
    108129 
  • mbed/trunk/DigitalOut.h

    r20 r29  
    11/* mbed Microcontroller Library - DigitalOut 
    2  * Copyright (c) 2006-2009 ARM Limited. All rights reserved. 
    3  * sford 
     2 * Copyright (c) 2006-2011 ARM Limited. All rights reserved. 
    43 */  
    54  
     
    5049     */ 
    5150    void write(int value) { 
     51 
     52#if defined(TARGET_LPC1768) || defined(TARGET_LPC2368) 
     53 
    5254        if(value) { 
    5355            _gpio->FIOSET = _mask; 
     
    5557            _gpio->FIOCLR = _mask; 
    5658        } 
     59 
     60#elif defined(TARGET_LPC11U24) 
     61 
     62        if(value) { 
     63            LPC_GPIO->SET[_index] = _mask; 
     64        } else { 
     65            LPC_GPIO->CLR[_index] = _mask; 
     66        } 
     67#endif 
     68 
    5769    } 
    5870 
     
    6577     */ 
    6678    int read() { 
     79#if defined(TARGET_LPC1768) || defined(TARGET_LPC2368) 
    6780        return ((_gpio->FIOPIN & _mask) ? 1 : 0); 
     81#elif defined(TARGET_LPC11U24) 
     82        return ((LPC_GPIO->PIN[_index] & _mask) ? 1 : 0); 
     83#endif 
     84 
    6885    } 
    6986 
     
    101118 
    102119    PinName             _pin; 
     120 
     121#if defined(TARGET_LPC1768) || defined(TARGET_LPC2368) 
    103122    LPC_GPIO_TypeDef    *_gpio; 
     123#elif defined(TARGET_LPC11U24) 
     124    int _index; 
     125#endif 
     126 
    104127    uint32_t            _mask; 
    105128 
  • mbed/trunk/DirHandle.h

    r15 r29  
    11/* mbed Microcontroller Library - DirHandler 
    22 * Copyright (c) 2008-2009 ARM Limited. All rights reserved. 
    3  * sford 
    43 */  
    54  
  • mbed/trunk/Ethernet.h

    r22 r29  
    11/* mbed Microcontroller Library - Ethernet 
    2  * Copyright (c) 2009 ARM Limited. All rights reserved. 
    3  * sford, rmeyer 
     2 * Copyright (c) 2009-2011 ARM Limited. All rights reserved. 
    43 */  
    54  
    65#ifndef MBED_ETHERNET_H 
    76#define MBED_ETHERNET_H 
     7 
     8#include "device.h" 
     9 
     10#if DEVICE_ETHERNET 
    811 
    912#include "Base.h" 
     
    167170 
    168171#endif 
     172 
     173#endif 
  • mbed/trunk/FileHandle.h

    r15 r29  
    11/* mbed Microcontroller Library - FileHandler 
    22 * Copyright (c) 2007-2009 ARM Limited. All rights reserved. 
    3  * sford 
    43 */  
    54  
  • mbed/trunk/FileLike.h

    r15 r29  
    11/* mbed Microcontroller Library - FileLike 
    22 * Copyright (c) 2008-2009 ARM Limited. All rights reserved. 
    3  * sford 
    43 */  
    54  
  • mbed/trunk/FileSystemLike.h

    r15 r29  
    11/* mbed Microcontroller Library - FileSystemLike 
    22 * Copyright (c) 2008-2009 ARM Limited. All rights reserved. 
    3  * sford 
    43 */  
    54  
  • mbed/trunk/FunctionPointer.h

    r20 r29  
    11/* mbed Microcontroller Library - FunctionPointer 
    22 * Copyright (c) 2007-2009 ARM Limited. All rights reserved. 
    3  * sford 
    43 */  
    54  
  • mbed/trunk/I2C.h

    r24 r29  
    11/* mbed Microcontroller Library - I2C 
    2  * Copyright (c) 2007-2009 ARM Limited. All rights reserved. 
    3  * sford 
     2 * Copyright (c) 2007-2011 ARM Limited. All rights reserved. 
    43 */  
    54  
    65#ifndef MBED_I2C_H 
    76#define MBED_I2C_H 
     7 
     8#include "device.h" 
     9 
     10#if DEVICE_I2C 
    811 
    912#include "platform.h" 
     
    135138 
    136139#endif 
     140 
     141#endif 
     142 
  • mbed/trunk/I2CSlave.h

    r24 r29  
    11/* mbed Microcontroller Library - I2CSlave 
    2  * Copyright (c) 2007-2010 ARM Limited. All rights reserved. 
    3  * jward  
     2 * Copyright (c) 2007-2011 ARM Limited. All rights reserved. 
    43 */  
    54  
    65#ifndef MBED_I2C_SLAVE_H 
    76#define MBED_I2C_SLAVE_H 
     7 
     8#include "device.h" 
     9 
     10#if DEVICE_I2CSLAVE 
    811 
    912#include "platform.h" 
     
    148151 
    149152#endif 
     153 
     154#endif 
     155 
  • mbed/trunk/InterruptIn.h

    r15 r29  
    11/* mbed Microcontroller Library - InterruptIn 
    2  * Copyright (c) 2006-2009 ARM Limited. All rights reserved. 
    3  * sford 
     2 * Copyright (c) 2006-2011 ARM Limited. All rights reserved. 
    43 */  
    54  
    65#ifndef MBED_INTERRUPTIN_H 
    76#define MBED_INTERRUPTIN_H 
     7 
     8#include "device.h" 
     9 
     10#if DEVICE_INTERRUPTIN 
    811 
    912#include "platform.h" 
     
    1215#include "Base.h" 
    1316#include "FunctionPointer.h" 
     17 
     18#if defined(TARGET_LPC1768) || defined(TARGET_LPC2368) 
     19#define CHANNEL_NUM   48 
     20#elif defined(TARGET_LPC11U24) 
     21#define CHANNEL_NUM    8 
     22#endif 
    1423 
    1524namespace mbed { 
     
    5059     */ 
    5160    InterruptIn(PinName pin, const char *name = NULL); 
     61#if defined(TARGET_LPC11U24) 
     62    virtual ~InterruptIn(); 
     63#endif 
    5264  
    5365     int read(); 
     
    107119    void mode(PinMode pull); 
    108120     
    109  
    110     static void _irq();  
    111     static InterruptIn *_irq_objects[48]; 
     121    static InterruptIn *_irq_objects[CHANNEL_NUM]; 
     122     
     123#if defined(TARGET_LPC1768) || defined(TARGET_LPC2368) 
     124    static void _irq(); 
     125#elif defined(TARGET_LPC11U24) 
     126    static void handle_interrupt_in(unsigned int channel); 
     127    static void _irq0(); static void _irq1(); 
     128    static void _irq2(); static void _irq3(); 
     129    static void _irq4(); static void _irq5(); 
     130    static void _irq6(); static void _irq7(); 
     131#endif 
    112132 
    113133protected: 
    114      
    115134    PinName _pin; 
     135#if defined(TARGET_LPC11U24) 
     136    Channel _channel; 
     137#endif 
    116138    FunctionPointer _rise; 
    117139    FunctionPointer _fall; 
     
    124146 
    125147#endif 
     148 
     149#endif 
  • mbed/trunk/LocalFileSystem.h

    r15 r29  
    11/* mbed Microcontroller Library - LocalFileSystem 
    22 * Copyright (c) 2008-2009 ARM Limited. All rights reserved. 
    3  * sford 
    43 */  
    54  
  • mbed/trunk/PeripheralNames.h

    r15 r29  
    11/* mbed Microcontroller Library - PeripheralNames 
    2  * Copyright (C) 2008-2009 ARM Limited. All rights reserved. 
     2 * Copyright (C) 2008-2011 ARM Limited. All rights reserved. 
    33 * 
    44 * Provides the mappings for peripherals 
    5  * Implementation specific to the LPC1768/LPC2368 
    6  * sford 
    75 */ 
    86 
     
    1614#endif  
    1715 
    18 typedef enum UARTName UARTName; 
     16#if defined(TARGET_LPC1768) || defined(TARGET_LPC2368) 
     17 
    1918enum UARTName { 
    2019    UART_0 = (int)LPC_UART0_BASE 
     
    2322    , UART_3 = (int)LPC_UART3_BASE 
    2423}; 
     24typedef enum UARTName UARTName; 
    2525 
    26 typedef enum ADCName ADCName; 
    2726enum ADCName { 
    2827    ADC0_0 = 0 
     
    3534    , ADC0_7 
    3635}; 
     36typedef enum ADCName ADCName; 
    3737 
    38 typedef enum DACName DACName; 
    3938enum DACName { 
    4039    DAC_0 = 0 
    4140}; 
     41typedef enum DACName DACName; 
    4242 
    43 typedef enum SPIName SPIName; 
    4443enum SPIName { 
    4544    SPI_0 = (int)LPC_SSP0_BASE 
    4645    , SPI_1 = (int)LPC_SSP1_BASE 
    4746}; 
     47typedef enum SPIName SPIName; 
    4848 
    49 typedef enum I2CName I2CName; 
    5049enum I2CName { 
    5150    I2C_0 = (int)LPC_I2C0_BASE 
     
    5352    , I2C_2 = (int)LPC_I2C2_BASE 
    5453}; 
     54typedef enum I2CName I2CName; 
    5555 
    56 typedef enum PWMName PWMName; 
    5756enum PWMName { 
    5857    PWM_1 = 1 
     
    6362    , PWM_6  
    6463}; 
     64typedef enum PWMName PWMName; 
    6565 
    66 typedef enum TimerName TimerName; 
    6766enum TimerName { 
    6867    TIMER_0 = (int)LPC_TIM0_BASE 
     
    7170    , TIMER_3 = (int)LPC_TIM3_BASE 
    7271}; 
     72typedef enum TimerName TimerName; 
    7373 
    74 typedef enum CANName CANName; 
    7574enum CANName {  
    7675     CAN_1 = (int)LPC_CAN1_BASE, 
    7776     CAN_2 = (int)LPC_CAN2_BASE  
    7877};  
     78typedef enum CANName CANName; 
    7979 
    8080#define STDIO_UART_TX     USBTX 
     
    8484#define US_TICKER_TIMER_IRQn TIMER3_IRQn 
    8585 
     86#elif defined(TARGET_LPC11U24) 
     87 
     88enum UARTName { 
     89    UART_0 = (int)LPC_USART_BASE 
     90}; 
     91typedef enum UARTName UARTName; 
     92 
     93enum I2CName { 
     94    I2C_0 = (int)LPC_I2C_BASE 
     95}; 
     96typedef enum I2CName I2CName; 
     97 
     98enum TimerName { 
     99    TIMER_0 = (int)LPC_CT32B0_BASE   
     100    , TIMER_1 = (int)LPC_CT32B1_BASE        
     101}; 
     102typedef enum TimerName TimerName; 
     103 
     104enum ADCName { 
     105    ADC0_0 = 0 
     106    , ADC0_1 
     107    , ADC0_2 
     108    , ADC0_3 
     109    , ADC0_4 
     110    , ADC0_5 
     111    , ADC0_6 
     112    , ADC0_7 
     113}; 
     114typedef enum ADCName ADCName; 
     115 
     116enum SPIName { 
     117    SPI_0 = (int)LPC_SSP0_BASE 
     118    , SPI_1 = (int)LPC_SSP1_BASE 
     119}; 
     120typedef enum SPIName SPIName; 
     121 
     122#define STDIO_UART_TX     USBTX 
     123#define STDIO_UART_RX     USBRX 
     124#define STDIO_UART        UART_0 
     125 
     126#define US_TICKER_TIMER TIMER_1 
     127#define US_TICKER_TIMER_IRQn     TIMER_32_1_IRQn  
     128 
     129#endif 
     130 
    86131#ifdef __cplusplus 
    87132} 
  • mbed/trunk/PinNames.h

    r20 r29  
    11/* mbed Microcontroller Library - PinNames 
    2  * Copyright (C) 2008-2009 ARM Limited. All rights reserved. 
     2 * Copyright (C) 2008-2011 ARM Limited. All rights reserved. 
    33 * 
    44 * Provides the mapping of mbed DIP and LPC Pin Names 
    5  * This is an LPC1768/LPC2368 specific implementation 
    6  * sford 
    75 */ 
    86 
     
    1614#endif  
    1715 
    18 typedef enum PinName PinName; 
     16#if defined(TARGET_LPC1768) || defined(TARGET_LPC2368) 
     17 
    1918enum PinName { 
    2019 
     
    7069 
    7170    // Other mbed Pin Names 
     71#ifdef MCB1700 
     72      , LED1 = P1_28 
     73      , LED2 = P1_29 
     74      , LED3 = P1_31 
     75      , LED4 = P2_2 
     76#else  
    7277      , LED1 = P1_18 
    7378      , LED2 = P1_20 
    7479      , LED3 = P1_21 
    7580      , LED4 = P1_23 
     81#endif 
    7682      , USBTX = P0_2 
    7783      , USBRX = P0_3 
     
    8187 
    8288}; 
    83  
    84 typedef enum PinMode PinMode; 
     89typedef enum PinName PinName; 
     90 
    8591enum PinMode { 
    8692    PullUp = 0 
     
    8995    , OpenDrain = 4 
    9096}; 
     97typedef enum PinMode PinMode; 
     98 
     99 
     100#elif defined(TARGET_LPC11U24) 
     101 
     102enum PinName { 
     103 
     104    // LPC11U Pin Names 
     105   P0_0 = 0 
     106  , P0_1 = 1 
     107  , P0_2 = 2 
     108  , P0_3 = 3 
     109  , P0_4 = 4 
     110  , P0_5 = 5 
     111  , P0_6 = 6 
     112  , P0_7 = 7 
     113  , P0_8 = 8 
     114  , P0_9 = 9 
     115  , P0_10 = 10 
     116  , P0_11 = 11 
     117  , P0_12 = 12 
     118  , P0_13 = 13 
     119  , P0_14 = 14 
     120  , P0_15 = 15 
     121  , P0_16 = 16 
     122  , P0_17 = 17 
     123  , P0_18 = 18 
     124  , P0_19 = 19 
     125  , P0_20 = 20 
     126  , P0_21 = 21 
     127  , P0_22 = 22 
     128  , P0_23 = 23 
     129 
     130  , P1_0 = 32 
     131  , P1_1 = 33 
     132  , P1_2 = 34 
     133  , P1_3 = 35 
     134  , P1_4 = 36 
     135  , P1_5 = 37 
     136  , P1_6 = 38 
     137  , P1_7 = 39 
     138  , P1_8 = 40 
     139  , P1_9 = 41 
     140  , P1_10 = 42 
     141  , P1_11 = 43 
     142  , P1_12 = 44 
     143  , P1_13 = 45 
     144  , P1_14 = 46 
     145  , P1_15 = 47 
     146  , P1_16 = 48 
     147  , P1_17 = 49 
     148  , P1_18 = 50 
     149  , P1_19 = 51 
     150  , P1_20 = 52 
     151  , P1_21 = 53 
     152  , P1_22 = 54 
     153  , P1_23 = 55 
     154  , P1_24 = 56 
     155  , P1_25 = 57 
     156  , P1_26 = 58 
     157  , P1_27 = 59 
     158  , P1_28 = 60 
     159  , P1_29 = 61 
     160 
     161  , P1_31 = 63 
     162 
     163    // mbed DIP Pin Names 
     164      , p5  = P0_9 
     165      , p6  = P0_8 
     166      , p7  = P1_29 
     167      , p8  = P0_2 
     168      , p9  = P1_27 
     169      , p10 = P1_26 
     170      , p11 = P1_22 
     171      , p12 = P1_21 
     172      , p13 = P1_20 
     173      , p14 = P1_23 
     174      , p15 = P0_11 
     175      , p16 = P0_12 
     176      , p17 = P0_13 
     177      , p18 = P0_14 
     178      , p19 = P0_16 
     179      , p20 = P0_22 
     180      , p21 = P0_7 
     181      , p22 = P0_17 
     182      , p23 = P1_17 
     183      , p24 = P1_18 
     184      , p25 = P1_24 
     185      , p26 = P1_25 
     186      , p27 = P0_4 
     187      , p28 = P0_5 
     188      , p29 = P1_5 
     189      , p30 = P1_2 
     190 
     191      , p33 = P0_3 
     192      , p34 = P1_15 
     193      , p35 = P0_20 
     194      , p36 = P0_21 
     195 
     196    // Other mbed Pin Names 
     197      , LED1 = P1_8 
     198      , LED2 = P1_9 
     199      , LED3 = P1_10 
     200      , LED4 = P1_11 
     201 
     202      , USBTX = P0_19 
     203      , USBRX = P0_18 
     204 
     205      // Not connected 
     206    , NC = (int)0xFFFFFFFF 
     207 
     208}; 
     209typedef enum PinName PinName; 
     210 
     211typedef enum { 
     212    CHANNEL0=FLEX_INT0_IRQn, 
     213    CHANNEL1=FLEX_INT1_IRQn, 
     214    CHANNEL2=FLEX_INT2_IRQn, 
     215    CHANNEL3=FLEX_INT3_IRQn, 
     216    CHANNEL4=FLEX_INT4_IRQn, 
     217    CHANNEL5=FLEX_INT5_IRQn, 
     218    CHANNEL6=FLEX_INT6_IRQn, 
     219    CHANNEL7=FLEX_INT7_IRQn 
     220} Channel; 
     221 
     222enum PinMode { 
     223    PullUp = 2 
     224    , PullDown = 1 
     225    , PullNone = 0 
     226    , Repeater = 3 
     227    , OpenDrain = 4 
     228}; 
     229typedef enum PinMode PinMode; 
     230#endif 
     231 
    91232 
    92233#ifdef __cplusplus 
  • mbed/trunk/PortIn.h

    r20 r29  
    11/* mbed Microcontroller Library - PortInOut 
    2  * Copyright (c) 2006-2009 ARM Limited. All rights reserved. 
     2 * Copyright (c) 2006-2011 ARM Limited. All rights reserved. 
    33 */  
    44  
    55#ifndef MBED_PORTIN_H 
    66#define MBED_PORTIN_H 
     7 
     8#include "device.h" 
     9 
     10#if DEVICE_PORTIN 
    711 
    812#include "PortNames.h" 
     
    7983 
    8084#endif 
     85 
     86#endif 
  • mbed/trunk/PortInOut.h

    r26 r29  
    11/* mbed Microcontroller Library - PortInOut 
    2  * Copyright (c) 2006-2009 ARM Limited. All rights reserved. 
     2 * Copyright (c) 2006-2011 ARM Limited. All rights reserved. 
    33 */  
    44  
    55#ifndef MBED_PORTINOUT_H 
    66#define MBED_PORTINOUT_H 
     7 
     8#include "device.h" 
     9 
     10#if DEVICE_PORTINOUT 
    711 
    812#include "PortNames.h" 
     
    9397 
    9498#endif 
     99 
     100#endif 
  • mbed/trunk/PortNames.h

    r20 r29  
    11/* mbed Microcontroller Library - PortName  
    2  * Copyright (c) 2010 ARM Limited. All rights reserved. 
    3  * jward 
     2 * Copyright (c) 2010-2011 ARM Limited. All rights reserved. 
    43 */ 
    54 
     
    1110#endif 
    1211 
    13 typedef enum PortName PortName; 
     12#if defined(TARGET_LPC1768) || defined(TARGET_LPC2368) 
     13 
    1414enum PortName { 
    1515    Port0 = 0 
     
    1919    , Port4 = 4 
    2020}; 
     21typedef enum PortName PortName; 
     22 
     23#elif defined(TARGET_LPC11U24) 
     24 
     25enum PortName { 
     26    Port0 = 0 
     27    , Port1 = 1 
     28}; 
     29typedef enum PortName PortName; 
     30 
     31 
     32#endif 
    2133 
    2234#ifdef __cplusplus 
  • mbed/trunk/PortOut.h

    r26 r29  
    11/* mbed Microcontroller Library - PortOut 
    2  * Copyright (c) 2006-2009 ARM Limited. All rights reserved. 
     2 * Copyright (c) 2006-2011 ARM Limited. All rights reserved. 
    33 */  
    44  
    55#ifndef MBED_PORTOUT_H 
    66#define MBED_PORTOUT_H 
     7 
     8#include "device.h" 
     9 
     10#if DEVICE_PORTOUT 
    711 
    812#include "platform.h" 
     
    96100 
    97101#endif 
     102 
     103#endif 
  • mbed/trunk/PwmOut.h

    r20 r29  
    11/* mbed Microcontroller Library - PwmOut 
    2  * Copyright (c) 2007-2009 ARM Limited. All rights reserved. 
    3  * sford 
     2 * Copyright (c) 2007-2011 ARM Limited. All rights reserved. 
    43 */  
    54  
    65#ifndef MBED_PWMOUT_H 
    76#define MBED_PWMOUT_H 
     7 
     8#include "device.h" 
     9 
     10#if DEVICE_PWMOUT 
    811 
    912#include "platform.h" 
     
    142145 
    143146#endif 
     147 
     148#endif 
  • mbed/trunk/SPI.h

    r22 r29  
    11/* mbed Microcontroller Library - SPI 
    2  * Copyright (c) 2010 ARM Limited. All rights reserved.  
    3  * sford 
     2 * Copyright (c) 2010-2011 ARM Limited. All rights reserved.  
    43 */ 
    54 
    65#ifndef MBED_SPI_H 
    76#define MBED_SPI_H 
     7 
     8#include "device.h" 
     9 
     10#if DEVICE_SPI 
    811 
    912#include "platform.h" 
     
    107110 
    108111#endif 
     112 
     113#endif 
  • mbed/trunk/SPIHalfDuplex.h

    r22 r29  
    1 /* mbed Microcontroller Library - SPI 
    2  * Copyright (c) 2010 ARM Limited. All rights reserved. 
    3  * jward 
     1/* mbed Microcontroller Library - SPIHalfDuplex 
     2 * Copyright (c) 2010-2011 ARM Limited. All rights reserved. 
    43 */ 
    54 
    65#ifndef MBED_SPIHALFDUPLEX_H 
    76#define MBED_SPIHALFDUPLEX_H 
     7 
     8#include "device.h" 
     9 
     10#if DEVICE_SPIHALFDUPLEX 
    811 
    912#include "SPI.h" 
     
    112115 
    113116#endif 
     117 
     118#endif 
  • mbed/trunk/SPISlave.h

    r22 r29  
    1 /* mbed Microcontroller Library - SPI 
    2  * Copyright (c) 2010 ARM Limited. All rights reserved.  
    3  * sford 
     1/* mbed Microcontroller Library - SPISlave 
     2 * Copyright (c) 2010-2011 ARM Limited. All rights reserved.  
    43 */ 
    54 
    65#ifndef MBED_SPISLAVE_H 
    76#define MBED_SPISLAVE_H 
     7 
     8#include "device.h" 
     9 
     10#if DEVICE_SPISLAVE 
    811 
    912#include "platform.h" 
     
    121124 
    122125#endif 
     126 
     127#endif 
  • mbed/trunk/Serial.h

    r23 r29  
    11/* mbed Microcontroller Library - Serial 
    2  * Copyright (c) 2007-2009 ARM Limited. All rights reserved. 
    3  * sford 
     2 * Copyright (c) 2007-2011 ARM Limited. All rights reserved. 
    43 */  
    54  
    65#ifndef MBED_SERIAL_H 
    76#define MBED_SERIAL_H 
     7 
     8#include "device.h" 
     9 
     10#if DEVICE_SERIAL 
    811 
    912#include "platform.h" 
     
    1720/* Class: Serial 
    1821 *  A serial port (UART) for communication with other serial devices 
     22 * 
     23 * Can be used for Full Duplex communication, or Simplex by specifying  
     24 * one pin as NC (Not Connected) 
    1925 * 
    2026 * Example: 
     
    8793    /* Function: getc 
    8894     *  Read a character 
     95     * 
     96     * Reads a character from the serial port. This will block until  
     97     * a character is available. To see if a character is available,  
     98     * see <readable> 
    8999     * 
    90100     * Variables: 
     
    177187#endif 
    178188 
     189#endif 
  • mbed/trunk/SerialHalfDuplex.h

    r22 r29  
    11/* mbed Microcontroller Library - SerialHalfDuplex 
    2  * Copyright (c) 2010 ARM Limited. All rights reserved. 
    3  * jward 
     2 * Copyright (c) 2010-2011 ARM Limited. All rights reserved. 
    43 */ 
    54 
    65#ifndef MBED_SERIALHALFDUPLEX_H 
    76#define MBED_SERIALHALFDUPLEX_H 
     7 
     8#include "device.h" 
     9 
     10#if DEVICE_SERIALHALFDUPLEX 
    811 
    912#include "Serial.h" 
     
    1417 
    1518/* Class: SerialHalfDuplex 
    16  *  A serial port (UART) for communication with other devices, with a single 
    17  *  shared transmit and receive line. 
    18  * 
    19  *  If the device both transmits and receives, then both (separate) pins need 
    20  *  to be defined, and tied together externally. 
     19 * A serial port (UART) for communication with other devices using   
     20 * Half-Duplex, allowing transmit and receive on a single 
     21 * shared transmit and receive line. Only one end should be transmitting  
     22 * at a time. 
     23 *  
     24 * Both the tx and rx pin should be defined, and wired together.  
     25 * This is in addition to them being wired to the other serial  
     26 * device to allow both read and write functions to operate. 
    2127 * 
    2228 *  Example: 
    23  *  > // Send a byte as a master, and receive a byte as a slave 
     29 *  > // Send a byte to a second HalfDuplex device, and read the response 
    2430 *  > 
    2531 *  > #include "mbed.h" 
    2632 *  > 
    27  *  > SerialHalfDuplex master(p9, p10); 
     33 *  > // p9 and p10 should be wired together to form "a" 
     34 *  > // p28 and p27 should be wired together to form "b" 
     35 *  > // p9/p10 should be wired to p28/p27 as the Half Duplex connection 
    2836 *  > 
     37 *  > SerialHalfDuplex a(p9, p10); 
     38 *  > SerialHalfDuplex b(p28, p27); 
     39 *  > 
     40 *  > void b_rx() { // second device response 
     41 *  >     b.putc(b.getc() + 4); 
     42 *  > } 
     43 *  >    
    2944 *  > int main() { 
    30  *  >     int outbyte = master.putc(0x55); 
    31  *  >     int retbyte = master.getc(); 
    32  *  >     printf("Wrote: %02X  Read: %02X\n", outbyte, retbyte); 
     45 *  >     b.attach(&b_rx); 
     46 *  >     for(int c = 'A'; c < 'Z'; c++) { 
     47 *  >         a.putc(c); 
     48 *  >         printf("sent [%c]\n", c); 
     49 *  >         wait(0.5);   // b should respond 
     50 *  >         if(a.readable()) { 
     51 *  >             printf("received [%c]\n", a.getc()); 
     52 *  >         } 
     53 *  >     } 
    3354 *  > } 
     55 *  
     56 * For Simplex and Full-Duplex Serial communication, see <Serial> 
    3457 */ 
    3558class SerialHalfDuplex : public Serial { 
     
    4063     * and receive pins. 
    4164     * 
     65     * These pins should be wired together, as well as to the target device 
     66     * 
    4267     * Variables: 
    4368     *  tx - Transmit pin 
    4469     *  rx - Receive pin 
    45      * 
    46      *  Note: Either tx or rx may be specified as NC if unused 
    4770     */ 
    48  
    4971    SerialHalfDuplex(PinName tx, PinName rx, const char *name = NULL); 
    5072 
     
    88110    /* Function: getc 
    89111     *  Read a character 
     112     * 
     113     * Read a character from the serial port. This call will block 
     114     * until a character is available. For testing if a character is 
     115     * available for reading, see <readable>. 
    90116     * 
    91117     * Variables: 
     
    150176protected: 
    151177    PinName     _txpin; 
    152     int         _pinfunc; 
    153178 
    154179    virtual int _putc(int c); 
     
    160185 
    161186#endif 
     187 
     188#endif 
  • mbed/trunk/Stream.h

    r15 r29  
    11/* mbed Microcontroller Library - Stream 
    22 * Copyright (c) 2007-2009 ARM Limited. All rights reserved. 
    3  * sford 
    43 */  
    54  
  • mbed/trunk/Ticker.h

    r15 r29  
    11/* mbed Microcontroller Library - Ticker 
    22 * Copyright (c) 2007-2009 ARM Limited. All rights reserved. 
    3  * sford 
    43 */  
    54  
  • mbed/trunk/Timeout.h

    r15 r29  
    11/* mbed Microcontroller Library - Timeout 
    22 * Copyright (c) 2007-2009 ARM Limited. All rights reserved. 
    3  * sford 
    43 */  
    54  
  • mbed/trunk/Timer.h

    r15 r29  
    11/* mbed Microcontroller Library - Timer 
    22 * Copyright (c) 2007-2009 ARM Limited. All rights reserved. 
    3  * sford 
    43 */  
    54  
  • mbed/trunk/TimerEvent.h

    r15 r29  
    11/* mbed Microcontroller Library - TimerEvent 
    22 * Copyright (c) 2007-2009 ARM Limited. All rights reserved. 
    3  * sford 
    43 */  
    54  
  • mbed/trunk/can_helper.h

    r15 r29  
    11/* mbed Microcontroller Library - can_helper 
    22 * Copyright (c) 2009 ARM Limited. All rights reserved. 
    3  * rmeyer 
    43 */  
    54 
     
    1110#endif 
    1211 
    13 typedef enum CANFormat CANFormat; 
    1412enum CANFormat { 
    1513    CANStandard = 0, 
    1614    CANExtended = 1 
    1715}; 
     16typedef enum CANFormat CANFormat; 
    1817 
    19 typedef enum CANType CANType; 
    2018enum CANType { 
    2119    CANData   = 0, 
    2220    CANRemote = 1 
    2321}; 
     22typedef enum CANType CANType; 
    2423 
    25 typedef struct CAN_Message CAN_Message; 
    2624struct CAN_Message { 
    2725    unsigned int   id;                 // 29 bit identifier 
     
    3129    CANType        type;               // 0 - DATA FRAME, 1 - REMOTE FRAME 
    3230}; 
     31typedef struct CAN_Message CAN_Message; 
    3332 
    3433#ifdef __cplusplus 
  • mbed/trunk/error.h

    r15 r29  
    11/* mbed Microcontroller Library - error 
    22 * Copyright (c) 2006-2009 ARM Limited. All rights reserved. 
    3  * sford 
    43 */  
    54  
  • mbed/trunk/mbed.h

    r28 r29  
    11/* mbed Microcontroller Library 
    2  * Copyright (c) 2006-2009 ARM Limited. All rights reserved. 
    3  * sford 
     2 * Copyright (c) 2006-2011 ARM Limited. All rights reserved. 
    43 */  
    54  
     
    76#define MBED_H 
    87 
    9 #define MBED_LIBRARY_VERSION 28 
     8#define MBED_LIBRARY_VERSION 29 
    109  
    1110// Useful C libraries 
     
    1716 
    1817// mbed Debug libraries 
     18 
    1919#include "error.h" 
     20#include "mbed_interface.h" 
    2021 
    2122// mbed Peripheral components 
     23 
    2224#include "DigitalIn.h" 
    2325#include "DigitalOut.h" 
     
    4143#include "Ethernet.h" 
    4244#include "CAN.h" 
    43 //#include "SPI3.h" 
    4445 
    4546// mbed Internal components 
     
    4950#include "LocalFileSystem.h" 
    5051#include "InterruptIn.h" 
    51 //#include "rpc.h" 
    52 //#include "rtc.h" 
    5352#include "wait_api.h" 
    5453#include "rtc_time.h" 
  • mbed/trunk/platform.h

    r15 r29  
    11/* mbed Microcontroller Library - platform 
    22 * Copyright (c) 2009 ARM Limited. All rights reserved. 
    3  * sford 
    43 */  
    54  
     
    76#define MBED_PLATFORM_H 
    87 
     8#if defined(TARGET_LPC1768) || defined(TARGET_LPC2368) 
    99#define MBED_RPC 
     10#endif 
     11 
    1012#define MBED_OPERATORS 
    1113 
  • mbed/trunk/rpc.h

    r15 r29  
    11/* mbed Microcontroller Library - RPC 
    22 * Copyright (c) 2008-2009 ARM Limited. All rights reserved. 
    3  * sford 
    43 */  
    54  
  • mbed/trunk/rtc_time.h

    r15 r29  
    3030/* mbed Microcontroller Library - rtc_time 
    3131 * Copyright (c) 2009 ARM Limited. All rights reserved. 
    32  * sford 
    3332 */ 
    3433 
  • mbed/trunk/wait_api.h

    r22 r29  
    2121/* mbed Microcontroller Library - wait_api 
    2222 * Copyright (c) 2009 ARM Limited. All rights reserved. 
    23  * sford 
    2423 */  
    2524  
    26 // GENERIC 
    27  
    2825#ifndef MBED_WAIT_API_H 
    2926#define MBED_WAIT_API_H 
     
    5855void wait_us(int us); 
    5956 
     57#ifdef TARGET_LPC11U24 
     58/* Function: sleep 
     59 *  Send the microcontroller to sleep 
     60 *  
     61 * The processor is setup ready for sleep, and sent to sleep using __WFI(). In this mode, the 
     62 * system clock to the core is stopped until a reset or an interrupt occurs. This eliminates  
     63 * dynamic power used by the processor, memory systems and buses. The processor, peripheral and  
     64 * memory state are maintained, and the peripherals continue to work and can generate interrupts. 
     65 *  
     66 * The processor can be woken up by any internal peripheral interrupt or external pin interrupt. 
     67 *  
     68 * Note: The mbed interface semihosting is disconnected as part of going to sleep, and can not be restored.  
     69 * Flash re-programming and the USB serial port will remain active, but the mbed program will no longer be 
     70 * able to access the LocalFileSystem 
     71 */ 
     72void sleep(void); 
     73 
     74/* Function: deepsleep 
     75 *  Send the microcontroller to deep sleep 
     76 *  
     77 * This processor is setup ready for deep sleep, and sent to sleep using __WFI(). This mode 
     78 * has the same sleep features as sleep plus it powers down peripherals and clocks. All state 
     79 * is still maintained.  
     80 *  
     81 * The processor can only be woken up by an external interrupt on a pin or a watchdog timer. 
     82 *  
     83 * Note: The mbed interface semihosting is disconnected as part of going to sleep, and can not be restored.  
     84 * Flash re-programming and the USB serial port will remain active, but the mbed program will no longer be 
     85 * able to access the LocalFileSystem 
     86 */ 
     87void deepsleep(void); 
     88#endif 
     89 
    6090#ifdef __cplusplus 
    6191}