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"
|
||||
|
||||
void test();
|
||||
|
||||
int main(void) {
|
||||
|
||||
serialSetup();
|
||||
serialSend("Hello World\r\n");
|
||||
|
||||
clock clk;
|
||||
ioController io;
|
||||
|
||||
io.deactivateChargers();
|
||||
|
||||
_delay_ms(1000); //Startup delay
|
||||
//_delay_ms(1000); //Startup delay
|
||||
|
||||
io.setActiveLED(true);
|
||||
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);
|
||||
serialSend("Time: ");
|
||||
serialSend (charTime);
|
||||
serialSend(" \r\n");
|
||||
//void test();
|
||||
|
||||
_delay_ms(1000);
|
||||
return 0;
|
||||
}
|
||||
|
||||
void test() {
|
||||
/* create charger */
|
||||
|
||||
s_charger charger_settings;
|
||||
|
@ -112,8 +108,6 @@ int main(void) {
|
|||
_delay_ms(1000);
|
||||
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void serialSetup(void) {
|
||||
|
|
|
@ -5,12 +5,13 @@
|
|||
#include <avr/interrupt.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <time.h>
|
||||
|
||||
|
||||
/* project header */
|
||||
#include "ioController.h"
|
||||
#include "multiplexer.h"
|
||||
#include "charger.h"
|
||||
#include "clock.h"
|
||||
|
||||
/* Pins */
|
||||
#define WS2812B PD2
|
||||
|
|
Loading…
Reference in New Issue