Vincent Belanger
/
APP
APP 1 S5.
Diff: APP.cpp
- Revision:
- 14:d48d869ed365
- Parent:
- 13:08ef55cd14c6
--- a/APP.cpp Tue Jan 12 15:17:21 2016 +0000 +++ b/APP.cpp Tue Jan 12 15:24:02 2016 +0000 @@ -6,39 +6,37 @@ #include <stdint.h> #include "mbed.h" -#include "UART.h" #include "APP.h" -#include "LPC17xx.h" -static I2C i2c(p28, p27); +static I2C i2c(p28, p27); +static Serial uart(p9, p10); void setup() { - SystemCoreClockUpdate(); - // Setup UART and I2C. - UARTInit(9600); + uart.format(8, Serial::None, 1); + uart.baud(9600); i2c.frequency(100000); - + // Clear display - UARTSend(0x76); - + uart.putc(0x76); + // Decimal point for display - UARTSend(0x77); - UARTSend(0x02); + uart.putc(0x77); + uart.putc(0x02); // Maximum brightness - UARTSend(0x7A); - UARTSend(0xFF); + uart.putc(0x7A); + uart.putc(0xFF); } - + void activateAccelerometer() { uint8_t data[2] = {CTRL_REG, 0x01}; i2c.write(ACC_ADDRESS, (char*) data, 2); } - + uint8_t readStatus() { uint8_t result[1]; @@ -48,7 +46,7 @@ return result[0]; } - + int16_t convertToAcceleration(uint8_t hi, uint8_t lo) { int16_t value = (lo >> 2) | (hi << 6); @@ -59,7 +57,7 @@ return value; } - + int16_t readAndComputeAngle() { uint8_t result[6]; @@ -87,21 +85,27 @@ { uint8_t digits[4]; sprintf((char*) digits, "%d", angle); - + if (angle < 100) { - UARTSend('0'); - UARTSend('0'); - UARTSend(digits, 2); + uart.putc('0'); + uart.putc('0'); + uart.putc(digits[0]); + uart.putc(digits[1]); } else if (angle < 1000) { - UARTSend('0'); - UARTSend(digits, 3); + uart.putc('0'); + uart.putc(digits[0]); + uart.putc(digits[1]); + uart.putc(digits[2]); } else { - UARTSend(digits, 4); + uart.putc(digits[0]); + uart.putc(digits[1]); + uart.putc(digits[2]); + uart.putc(digits[3]); } } @@ -119,11 +123,11 @@ { // Get accelerations, compute angle uint16_t angle = readAndComputeAngle(); - + // Update 7 segment display updateDisplay(angle); } - + wait(0.4); } }