added prescaler for 16 bit pwm in LPC1347 target

Fork of mbed-dev by mbed official

Committer:
JojoS
Date:
Sat Sep 10 15:32:04 2016 +0000
Revision:
147:ba84b7dc41a7
Parent:
15:a81a8d6c1dfe
added prescaler for 16 bit timers (solution as in LPC11xx), default prescaler 31 for max 28 ms period time

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 15:a81a8d6c1dfe 1 /* mbed Microcontroller Library
mbed_official 15:a81a8d6c1dfe 2 * Copyright (c) 2006-2015 ARM Limited
mbed_official 15:a81a8d6c1dfe 3 *
mbed_official 15:a81a8d6c1dfe 4 * Licensed under the Apache License, Version 2.0 (the "License");
mbed_official 15:a81a8d6c1dfe 5 * you may not use this file except in compliance with the License.
mbed_official 15:a81a8d6c1dfe 6 * You may obtain a copy of the License at
mbed_official 15:a81a8d6c1dfe 7 *
mbed_official 15:a81a8d6c1dfe 8 * http://www.apache.org/licenses/LICENSE-2.0
mbed_official 15:a81a8d6c1dfe 9 *
mbed_official 15:a81a8d6c1dfe 10 * Unless required by applicable law or agreed to in writing, software
mbed_official 15:a81a8d6c1dfe 11 * distributed under the License is distributed on an "AS IS" BASIS,
mbed_official 15:a81a8d6c1dfe 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
mbed_official 15:a81a8d6c1dfe 13 * See the License for the specific language governing permissions and
mbed_official 15:a81a8d6c1dfe 14 * limitations under the License.
mbed_official 15:a81a8d6c1dfe 15 */
mbed_official 15:a81a8d6c1dfe 16 #ifndef MBED_PERIPHERALNAMES_H
mbed_official 15:a81a8d6c1dfe 17 #define MBED_PERIPHERALNAMES_H
mbed_official 15:a81a8d6c1dfe 18
mbed_official 15:a81a8d6c1dfe 19 #include <compiler.h>
mbed_official 15:a81a8d6c1dfe 20 #include "cmsis.h"
mbed_official 15:a81a8d6c1dfe 21 #include "PinNames.h"
mbed_official 15:a81a8d6c1dfe 22
mbed_official 15:a81a8d6c1dfe 23 #ifdef __cplusplus
mbed_official 15:a81a8d6c1dfe 24 extern "C" {
mbed_official 15:a81a8d6c1dfe 25 #endif
mbed_official 15:a81a8d6c1dfe 26
mbed_official 15:a81a8d6c1dfe 27 #define _SERCOM_SPI_NAME(n, unused) \
mbed_official 15:a81a8d6c1dfe 28 SPI##n,
mbed_official 15:a81a8d6c1dfe 29
mbed_official 15:a81a8d6c1dfe 30 #define _SERCOM_PAD_NAME(n, pad) \
mbed_official 15:a81a8d6c1dfe 31 SERCOM##n##_PAD##pad = ((n & 0xF) | ((pad & 0xF) << 4)),
mbed_official 15:a81a8d6c1dfe 32
mbed_official 15:a81a8d6c1dfe 33 #define _SERCOM_I2C_NAME(n, unused) \
mbed_official 15:a81a8d6c1dfe 34 I2C##n,
mbed_official 15:a81a8d6c1dfe 35
mbed_official 15:a81a8d6c1dfe 36
mbed_official 15:a81a8d6c1dfe 37
mbed_official 15:a81a8d6c1dfe 38 typedef enum {
mbed_official 15:a81a8d6c1dfe 39 UART_0 = (int)0x42000800UL, // Base address of SERCOM0
mbed_official 15:a81a8d6c1dfe 40 UART_1 = (int)0x42000C00UL, // Base address of SERCOM1
mbed_official 15:a81a8d6c1dfe 41 UART_2 = (int)0x42001000UL, // Base address of SERCOM2
mbed_official 15:a81a8d6c1dfe 42 UART_3 = (int)0x42001400UL, // Base address of SERCOM3
mbed_official 15:a81a8d6c1dfe 43 UART_4 = (int)0x42001800UL, // Base address of SERCOM4
mbed_official 15:a81a8d6c1dfe 44 UART_5 = (int)0x42001C00UL // Base address of SERCOM5
mbed_official 15:a81a8d6c1dfe 45 } UARTName;
mbed_official 15:a81a8d6c1dfe 46
mbed_official 15:a81a8d6c1dfe 47 typedef enum { // for each input control mux 4,5,6,7,16,17,10,11 used in R21
mbed_official 15:a81a8d6c1dfe 48 ADC_2 = 0x2ul,
mbed_official 15:a81a8d6c1dfe 49 ADC_3 = 0x3ul,
mbed_official 15:a81a8d6c1dfe 50 ADC_4 = 0x4ul,
mbed_official 15:a81a8d6c1dfe 51 ADC_5 = 0x5ul,
mbed_official 15:a81a8d6c1dfe 52 ADC_6 = 0x6ul,
mbed_official 15:a81a8d6c1dfe 53 ADC_7 = 0x7ul,
mbed_official 15:a81a8d6c1dfe 54 ADC_8 = 0x8ul,
mbed_official 15:a81a8d6c1dfe 55 ADC_10 = 0xAul,
mbed_official 15:a81a8d6c1dfe 56 ADC_11 = 0xBul,
mbed_official 15:a81a8d6c1dfe 57 ADC_16 = 0x10ul,
mbed_official 15:a81a8d6c1dfe 58 ADC_17 = 0x11ul,
mbed_official 15:a81a8d6c1dfe 59 ADC_18 = 0x12ul,
mbed_official 15:a81a8d6c1dfe 60 ADC_19 = 0x13ul
mbed_official 15:a81a8d6c1dfe 61 } ADCName;
mbed_official 15:a81a8d6c1dfe 62
mbed_official 15:a81a8d6c1dfe 63 typedef enum { // for each channel
mbed_official 15:a81a8d6c1dfe 64 EXTINT_0 = 0,
mbed_official 15:a81a8d6c1dfe 65 EXTINT_1,
mbed_official 15:a81a8d6c1dfe 66 EXTINT_2,
mbed_official 15:a81a8d6c1dfe 67 EXTINT_3,
mbed_official 15:a81a8d6c1dfe 68 EXTINT_4,
mbed_official 15:a81a8d6c1dfe 69 EXTINT_5,
mbed_official 15:a81a8d6c1dfe 70 EXTINT_6,
mbed_official 15:a81a8d6c1dfe 71 EXTINT_7,
mbed_official 15:a81a8d6c1dfe 72 EXTINT_8,
mbed_official 15:a81a8d6c1dfe 73 EXTINT_9,
mbed_official 15:a81a8d6c1dfe 74 EXTINT_10,
mbed_official 15:a81a8d6c1dfe 75 EXTINT_11,
mbed_official 15:a81a8d6c1dfe 76 EXTINT_12,
mbed_official 15:a81a8d6c1dfe 77 EXTINT_13,
mbed_official 15:a81a8d6c1dfe 78 EXTINT_14,
mbed_official 15:a81a8d6c1dfe 79 EXTINT_15
mbed_official 15:a81a8d6c1dfe 80 } EXTINTName;
mbed_official 15:a81a8d6c1dfe 81
mbed_official 15:a81a8d6c1dfe 82 typedef enum {
mbed_official 15:a81a8d6c1dfe 83 MREPEAT(SERCOM_INST_NUM, _SERCOM_SPI_NAME, ~)
mbed_official 15:a81a8d6c1dfe 84 } SPIName;
mbed_official 15:a81a8d6c1dfe 85
mbed_official 15:a81a8d6c1dfe 86 typedef enum {
mbed_official 15:a81a8d6c1dfe 87 MREPEAT(SERCOM_INST_NUM, _SERCOM_I2C_NAME, ~)
mbed_official 15:a81a8d6c1dfe 88 } I2CName;
mbed_official 15:a81a8d6c1dfe 89
mbed_official 15:a81a8d6c1dfe 90 typedef enum {
mbed_official 15:a81a8d6c1dfe 91 /* Pad 0 definitions */
mbed_official 15:a81a8d6c1dfe 92 MREPEAT(SERCOM_INST_NUM, _SERCOM_PAD_NAME, 0)
mbed_official 15:a81a8d6c1dfe 93
mbed_official 15:a81a8d6c1dfe 94 /* Pad 1 definitions */
mbed_official 15:a81a8d6c1dfe 95 MREPEAT(SERCOM_INST_NUM, _SERCOM_PAD_NAME, 1)
mbed_official 15:a81a8d6c1dfe 96
mbed_official 15:a81a8d6c1dfe 97 /* Pad 2 definitions */
mbed_official 15:a81a8d6c1dfe 98 MREPEAT(SERCOM_INST_NUM, _SERCOM_PAD_NAME, 2)
mbed_official 15:a81a8d6c1dfe 99
mbed_official 15:a81a8d6c1dfe 100 /* Pad 3 definitions */
mbed_official 15:a81a8d6c1dfe 101 MREPEAT(SERCOM_INST_NUM, _SERCOM_PAD_NAME, 3)
mbed_official 15:a81a8d6c1dfe 102 } SercomPadName;
mbed_official 15:a81a8d6c1dfe 103
mbed_official 15:a81a8d6c1dfe 104 typedef enum {
mbed_official 15:a81a8d6c1dfe 105 PWM_0 = (0x42002000UL), /**< \brief (TCC0) APB Base Address */
mbed_official 15:a81a8d6c1dfe 106 PWM_1 = (0x42002400UL), /**< \brief (TCC1) APB Base Address */
mbed_official 15:a81a8d6c1dfe 107 PWM_2 = (0x42002800UL), /**< \brief (TCC2) APB Base Address */
mbed_official 15:a81a8d6c1dfe 108 } PWMName;
mbed_official 15:a81a8d6c1dfe 109
mbed_official 15:a81a8d6c1dfe 110 struct pwm_pin_channel {
mbed_official 15:a81a8d6c1dfe 111 PinName pin;
mbed_official 15:a81a8d6c1dfe 112 PWMName pwm;
mbed_official 15:a81a8d6c1dfe 113 uint8_t channel_index;
mbed_official 15:a81a8d6c1dfe 114 };
mbed_official 15:a81a8d6c1dfe 115
mbed_official 15:a81a8d6c1dfe 116 #define STDIO_UART_TX USBTX
mbed_official 15:a81a8d6c1dfe 117 #define STDIO_UART_RX USBRX
mbed_official 15:a81a8d6c1dfe 118 #define STDIO_UART UART_0
mbed_official 15:a81a8d6c1dfe 119
mbed_official 15:a81a8d6c1dfe 120 // Default peripherals
mbed_official 15:a81a8d6c1dfe 121 #define MBED_SPI0 PB22, PB02, PB23, PA14
mbed_official 15:a81a8d6c1dfe 122
mbed_official 15:a81a8d6c1dfe 123 #define MBED_UART0 PA04, PA05
mbed_official 15:a81a8d6c1dfe 124 #define MBED_UARTUSB USBTX, USBRX
mbed_official 15:a81a8d6c1dfe 125
mbed_official 15:a81a8d6c1dfe 126 #define MBED_I2C0 PA16, PA17
mbed_official 15:a81a8d6c1dfe 127
mbed_official 15:a81a8d6c1dfe 128 #define MBED_ANALOGIN0 PA04
mbed_official 15:a81a8d6c1dfe 129 #define MBED_ANALOGIN1 PA05
mbed_official 15:a81a8d6c1dfe 130 #define MBED_ANALOGIN2 PA06
mbed_official 15:a81a8d6c1dfe 131 #define MBED_ANALOGIN3 PA07
mbed_official 15:a81a8d6c1dfe 132 #define MBED_ANALOGIN4 PB02
mbed_official 15:a81a8d6c1dfe 133 #define MBED_ANALOGIN5 PB03
mbed_official 15:a81a8d6c1dfe 134 #define MBED_ANALOGIN7 PA08
mbed_official 15:a81a8d6c1dfe 135 #define MBED_ANALOGIN8 PA09
mbed_official 15:a81a8d6c1dfe 136
mbed_official 15:a81a8d6c1dfe 137 #define MBED_PWMOUT0 PA18
mbed_official 15:a81a8d6c1dfe 138 #define MBED_PWMOUT1 PA19
mbed_official 15:a81a8d6c1dfe 139
mbed_official 15:a81a8d6c1dfe 140 #ifdef __cplusplus
mbed_official 15:a81a8d6c1dfe 141 }
mbed_official 15:a81a8d6c1dfe 142 #endif
mbed_official 15:a81a8d6c1dfe 143
mbed_official 15:a81a8d6c1dfe 144 #endif