From 61ee69dc84690fa677f383acbacd6de9b1b22b4e Mon Sep 17 00:00:00 2001 From: Tristan Krause Date: Tue, 25 Jun 2019 11:06:25 +0200 Subject: [PATCH] Begin of servo --- firmware/global_vars.cpp | 2 +- firmware/request_handlers.cpp | 19 +++++++++++++++++++ firmware/request_handlers.h | 3 +++ firmware/servo.cpp | 1 + firmware/servo.h | 14 ++++++++++++++ 5 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 firmware/servo.cpp create mode 100644 firmware/servo.h diff --git a/firmware/global_vars.cpp b/firmware/global_vars.cpp index d498b6d..833fa9d 100644 --- a/firmware/global_vars.cpp +++ b/firmware/global_vars.cpp @@ -10,4 +10,4 @@ volatile ADU adu; volatile USART usart; volatile PWM pwm; volatile bool nextRequest = false; -volatile uint16_t interruptCounters[35]; +volatile uint16_t interruptCounters[35] = { 0 }; // alle Einträge mit 0 initialisieren diff --git a/firmware/request_handlers.cpp b/firmware/request_handlers.cpp index 6f2191f..19eade1 100644 --- a/firmware/request_handlers.cpp +++ b/firmware/request_handlers.cpp @@ -78,6 +78,19 @@ void handleRequest() case RQ_GET_MEM_8: rqGetMem8(); break; + break; + + case RQ_SET_MEM_16: + rqSetMem16(); + break; + + case RQ_GET_MEM_16: + rqGetMem16(); + break; + + case RQ_COUNTER_OFFSET: + rqGetInterruptCounterOffset(); + break; default: break; @@ -293,3 +306,9 @@ void rqGetMem16() usart.flush(); } +void rqGetInterruptCounterOffset() +{ + usart.initTX(); + usart.writeInt((volatile uint16_t) &interruptCounters[0]); + usart.flush(); +} diff --git a/firmware/request_handlers.h b/firmware/request_handlers.h index 1d8365f..63d8b1b 100644 --- a/firmware/request_handlers.h +++ b/firmware/request_handlers.h @@ -32,5 +32,8 @@ void rqPwmSetFreq(void); void rqPwmSetValue(void); void rqSetMem8(void); void rqGetMem8(void); +void rqSetMem16(void); +void rqGetMem16(void); +void rqGetInterruptCounterOffset(void); #endif // REQUEST_HANDLERS_H diff --git a/firmware/servo.cpp b/firmware/servo.cpp new file mode 100644 index 0000000..74a7b1f --- /dev/null +++ b/firmware/servo.cpp @@ -0,0 +1 @@ +#include "servo.h" diff --git a/firmware/servo.h b/firmware/servo.h new file mode 100644 index 0000000..456e130 --- /dev/null +++ b/firmware/servo.h @@ -0,0 +1,14 @@ +#ifndef SERVO_H +#define SERVO_H + +class Server +{ +public: + + /** + * Initialisiert die Servo Funktion (Timer 1 & 2). + */ + void init(void) const volatile; +}; + +#endif // SERVO_H