added clock class
This commit is contained in:
parent
2769d52fc9
commit
e5d96c0e84
|
@ -0,0 +1,69 @@
|
||||||
|
/*
|
||||||
|
* clock.cpp
|
||||||
|
*
|
||||||
|
* Created on: 22.11.2018
|
||||||
|
* Author: Hendrik Schutter
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "openChargeMicro.h"
|
||||||
|
|
||||||
|
uint32_t systemTime;
|
||||||
|
|
||||||
|
clock::clock() {
|
||||||
|
systemTime = 0;
|
||||||
|
clock_init();
|
||||||
|
serialSend("init clock\r\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
clock::~clock() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void clock::clock_init() {
|
||||||
|
OCR1A = 0x3D08; // --> 1 sec
|
||||||
|
|
||||||
|
TCCR1B |= (1 << WGM12);
|
||||||
|
// Mode 4, CTC on OCR1A
|
||||||
|
|
||||||
|
TIMSK1 |= (1 << OCIE1A);
|
||||||
|
//Set interrupt on compare match
|
||||||
|
|
||||||
|
TCCR1B |= (1 << CS12) | (1 << CS10);
|
||||||
|
// set prescaler to 1024 and start the timer
|
||||||
|
|
||||||
|
sei();
|
||||||
|
}
|
||||||
|
uint32_t clock::getTime() {
|
||||||
|
|
||||||
|
return systemTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct time_t clock::getTime(struct time_t pTime) {
|
||||||
|
|
||||||
|
struct time_t ret;
|
||||||
|
|
||||||
|
ret.seconds = getTime() - pTime.seconds;
|
||||||
|
ret.diffSecond = ret.seconds;
|
||||||
|
ret.diffMinute = 0;
|
||||||
|
ret.diffHour = 0;
|
||||||
|
|
||||||
|
while (ret.diffSecond > 59) {
|
||||||
|
ret.diffSecond = -60;
|
||||||
|
ret.diffMinute++;
|
||||||
|
}
|
||||||
|
|
||||||
|
while (ret.diffMinute > 59) {
|
||||||
|
ret.diffMinute = -60;
|
||||||
|
ret.diffHour++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
ISR (TIMER1_COMPA_vect) {
|
||||||
|
// action to be done every 1 sec
|
||||||
|
systemTime++;
|
||||||
|
}
|
||||||
|
|
||||||
|
ISR(__vector_default) {
|
||||||
|
}
|
|
@ -0,0 +1,31 @@
|
||||||
|
/*
|
||||||
|
* clock.h
|
||||||
|
*
|
||||||
|
* Created on: 22.11.2018
|
||||||
|
* Author: Hendrik Schutter
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef SRC_CLOCK_H_
|
||||||
|
#define SRC_CLOCK_H_
|
||||||
|
|
||||||
|
struct time_t {
|
||||||
|
uint8_t diffHour;
|
||||||
|
uint8_t diffMinute;
|
||||||
|
uint8_t diffSecond;
|
||||||
|
uint32_t seconds;
|
||||||
|
};
|
||||||
|
|
||||||
|
class clock {
|
||||||
|
|
||||||
|
private:
|
||||||
|
void clock_init();
|
||||||
|
|
||||||
|
public:
|
||||||
|
clock();
|
||||||
|
~clock();
|
||||||
|
uint32_t getTime(); //time in sec since boot
|
||||||
|
struct time_t getTime(struct time_t pTime); //time in sec since time stamp
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /* SRC_CLOCK_H_ */
|
|
@ -1,42 +1,38 @@
|
||||||
#include "openChargeMicro.h"
|
#include "openChargeMicro.h"
|
||||||
|
|
||||||
|
void test();
|
||||||
|
|
||||||
int main(void) {
|
int main(void) {
|
||||||
|
|
||||||
serialSetup();
|
serialSetup();
|
||||||
serialSend("Hello World\r\n");
|
serialSend("Hello World\r\n");
|
||||||
|
|
||||||
|
clock clk;
|
||||||
ioController io;
|
ioController io;
|
||||||
|
|
||||||
io.deactivateChargers();
|
io.deactivateChargers();
|
||||||
|
|
||||||
_delay_ms(1000); //Startup delay
|
//_delay_ms(1000); //Startup delay
|
||||||
|
|
||||||
io.setActiveLED(true);
|
io.setActiveLED(true);
|
||||||
io.activateChargers();
|
io.activateChargers();
|
||||||
|
|
||||||
time_t testStamp;
|
|
||||||
|
|
||||||
time(&testStamp);
|
|
||||||
|
|
||||||
char charTime[255];
|
|
||||||
|
|
||||||
dtostrf(testStamp, 4, 2, charTime);
|
|
||||||
serialSend("Time: ");
|
|
||||||
serialSend (charTime);
|
|
||||||
serialSend(" \r\n");
|
|
||||||
|
|
||||||
_delay_ms(1000);
|
|
||||||
|
|
||||||
|
|
||||||
time(&testStamp);
|
while (1) {
|
||||||
|
char charVal[10];
|
||||||
|
dtostrf(clk.getTime(), 4, 2, charVal);
|
||||||
|
serialSend("Time - ");
|
||||||
|
serialSend(charVal);
|
||||||
|
serialSend(" sec\r\n");
|
||||||
|
}
|
||||||
|
|
||||||
dtostrf(testStamp, 4, 2, charTime);
|
//void test();
|
||||||
serialSend("Time: ");
|
|
||||||
serialSend (charTime);
|
|
||||||
serialSend(" \r\n");
|
|
||||||
|
|
||||||
_delay_ms(1000);
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void test() {
|
||||||
/* create charger */
|
/* create charger */
|
||||||
|
|
||||||
s_charger charger_settings;
|
s_charger charger_settings;
|
||||||
|
@ -112,8 +108,6 @@ int main(void) {
|
||||||
_delay_ms(1000);
|
_delay_ms(1000);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void serialSetup(void) {
|
void serialSetup(void) {
|
||||||
|
|
|
@ -5,12 +5,13 @@
|
||||||
#include <avr/interrupt.h>
|
#include <avr/interrupt.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <time.h>
|
|
||||||
|
|
||||||
/* project header */
|
/* project header */
|
||||||
#include "ioController.h"
|
#include "ioController.h"
|
||||||
#include "multiplexer.h"
|
#include "multiplexer.h"
|
||||||
#include "charger.h"
|
#include "charger.h"
|
||||||
|
#include "clock.h"
|
||||||
|
|
||||||
/* Pins */
|
/* Pins */
|
||||||
#define WS2812B PD2
|
#define WS2812B PD2
|
||||||
|
|
Loading…
Reference in New Issue