df

Dependencies:   mbed

Fork of APP1 by Team APP

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