![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
df
Fork of APP1 by
Diff: UARTDisplayer.cpp
- Revision:
- 13:bb9669053eb3
- Parent:
- 10:04822743cefe
- Child:
- 14:2f89279586cb
--- a/UARTDisplayer.cpp Sun Jan 15 19:46:10 2017 +0000 +++ b/UARTDisplayer.cpp Mon Jan 16 00:06:45 2017 +0000 @@ -1,14 +1,18 @@ #include "UARTDisplayer.hpp" +#include <cstdio> +#include "Utility.hpp" +#include "mbed.h" //Needed for function wait -UARTDisplayer::UARTDisplayer() +UARTDisplayer::UARTDisplayer(PinName tx_pin) : + device(tx_pin) { } void UARTDisplayer::displayAngle(float angle) { - /* char digits[6]; - snprintf(digits, sizeof digits, "%f", angle); + char digits[6]; + std::snprintf(digits, sizeof digits, "%f", angle); if(digits[1] == '.') { @@ -37,18 +41,52 @@ wait(0.001); device.write(FLOATING_POINT_DOT_POSITION); wait(0.001); - - printf("Angle displayed\n");*/ } void UARTDisplayer::reset() { - /*device.write(CLEAR_DISPLAY_REGISTER); + device.write(CLEAR_DISPLAY_REGISTER); wait(0.001); device.write(CURSOR_CONROL_REGISTER); wait(0.001); device.write(MOST_LEFT_DIGIT_POSITION); wait(0.001); +} + +HomemadeUART::HomemadeUART(PinName tx_pin) : + tx_pin(tx_pin) +{ +} + +void HomemadeUART::write(const int value) +{ + //TODO +} + +void HomemadeUART::init() +{ + int* register_address1 = reinterpret_cast<int*>(0x400FC0C4); + const int previous_register_value1 = *register_address1; + int new_register_value1 = previous_register_value1; + new_register_value1 = utility::update_bit(new_register_value1, 22, 1); + new_register_value1 = utility::update_bit(new_register_value1, 23, 1); + *register_address1 = new_register_value1; - printf("Cursor reset\n");*/ + int* register_address2 = reinterpret_cast<int*>(0x4000C00C); + const int previous_register_value2 = *register_address2; + int new_register_value2 = previous_register_value2; + new_register_value2 = utility::update_bit(new_register_value2, 7, 1); + *register_address2 = new_register_value2; + + int* register_address3 = reinterpret_cast<int*>(0x4009800C); + const int previous_register_value3 = *register_address3; + int new_register_value3 = previous_register_value3; + new_register_value3 = utility::update_bit(new_register_value3, 7, 1); + *register_address3 = new_register_value3; + + int* register_address4 = reinterpret_cast<int*>(0x4009C00C); + const int previous_register_value4 = *register_address4; + int new_register_value4 = previous_register_value4; + new_register_value4 = utility::update_bit(new_register_value4, 7, 1); + *register_address4 = new_register_value4; } \ No newline at end of file