* Some targets which use SCT timer for PwmOut have a bug which PWM
signal does not come out when period set more than 65536us. (issue
#1050)
* Fix SCT counter mode from 16-bit Low to 32-bit Unified mode
* Fix wrong cast size (uint64_t) for 32-bit register
* Some TABs convert to white spaces
* Affected with LPC812, LPC824, LPC1549 and LPC11U68
- Add check_duplication() function to detect UART duplication which is
reported https://github.com/mbedmicro/mbed/issues/942
- Confirmed to pass MBED_A9 test case (Serial Echo at 115200)
- Add a variable initialize code to prevent GCC warning
Replaced I2C ROM call by direct calls to I2C engines. The ROM code has some bugs and does not allow support for the mbed I2CSlave methods. The Slave methods have been added same as for LPC812.
Fixed hardcoded MRT_Clock_MHz so that the code will also work at a SystemCoreClock different from 30MHz. Optimized time calculations for us_ticker_read. Same modifications as done previously for LPC812.
Activated the I2CSlave functions. Slave block read/write operations are fully supported. The slave byte read and writes need general modification to I2CSlave.cpp. See pending Issue.
Activated the PWM functions. They are supported now using the SCT after updating us_ticker() to use the MRT instead of the SCT.
Added PWM support for the LPC812 using the SCT. Code was ported from LPC824 libs.
First needed to modify us_ticker() to free up the SCT and use the MRT instead.
PWM can support a maximum of 4 channels using any portpin. All channels will use the same period.
Disabled DEVICE_I2CSLAVE option for LPC812 until the dedicated i2c_slave_byte_read() and i2c_slave_byte_write() functions have been added for all platforms.
Added support for I2C Slave block read, block write and byte read and write. The slave address can be set and the general call address is automatically enabled. Note that the lpc812, lpc824 and lpc1549 have the same I2C engine. This new engine is very different from the lpc1768 and other NXP mbeds. The newer engine has separate controls for Master and Slave functions and they can be enable at the same time. Note that currently the lib does not support multi-master (arbitration lost is not handled).
Fixed the incorrect clocksource for the baud generator. Should be MainClock instead of SystemCoreClock. This also allows the correct use of the PLL for MainClock and SystemCoreClock without breaking the serial baudrate.
Quick fix of block read and write. The i2c_start is still wrong: it
should setup the address before initiating a Start condition. Status
read is also wrong in i2c_do_read.
If user set P0_0 as DigitalOut and set it to low, LPC1114 will be in
reset condion. To avoid this situation, p4, xp4 and dp23 was removed
from PinNames.h.