From 6161a25ddff4808e74fe654a51eea032039de823 Mon Sep 17 00:00:00 2001 From: wolfgang Date: Sat, 19 Jan 2013 18:41:41 +0100 Subject: [PATCH] opTime --- src/main.c | 60 ++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 47 insertions(+), 13 deletions(-) diff --git a/src/main.c b/src/main.c index 235e28e..5ac758d 100644 --- a/src/main.c +++ b/src/main.c @@ -40,27 +40,54 @@ typedef struct clock_s { uint8_t year; } clock_t; +typedef struct opTime_s { + uint8_t second; + uint8_t minute; + uint16_t hour; +} opTime_t; + receivedData_t rd; volatile clock_t clock; +volatile opTime_t opTime; volatile uint8_t tick; volatile uint16_t captValue = 0; volatile uint16_t gapValue = 0; +volatile uint8_t valid = 0; + ISR(TIMER2_OVF_vect) { clock.second++; - if (clock.second >= 60) { - clock.second = 0; - clock.minute++; - } - if (clock.minute >= 60) { - clock.minute = 0; - clock.hour++; - } - if (clock.hour >= 24) { - clock.hour = 0; + + if (valid != 2) { + if (clock.second >= 60) { + clock.second = 0; + clock.minute++; + } + if (clock.minute >= 60) { + clock.minute = 0; + clock.hour++; + } + if (clock.hour >= 24) { + clock.hour = 0; + } } + + + opTime.second++; + + if (opTime.second >= 60) { + opTime.second = 0; + opTime.minute++; + } + if (opTime.minute >= 60) { + opTime.minute = 0; + opTime.hour++; + } + if (opTime.hour >= 24) { + opTime.hour = 0; + } } ISR(INT0_vect) { @@ -82,6 +109,12 @@ int main() { clock.minute = 0; clock.second = 0; + opTime.hour = 0; + opTime.minute = 0; + opTime.second = 0; + + + TCCR2 = 0b00000101; ASSR |= (1 << AS2); @@ -103,7 +136,6 @@ int main() { printf("Hello world!\n"); - uint8_t valid = 0; uint8_t bit = 0; uint8_t state = 0; @@ -413,7 +445,8 @@ int main() { break; } - printf("VALID %02d:%02d:%02d %02u.%02u.%02u %u %u %u %u %u %u \n", + printf("OP %d:%d:%d VALID %02d:%02d:%02d %02u.%02u.%02u %u %u %u %u %u %u \n", + opTime.hour, opTime.minute, opTime.second, clock.hour, clock.minute, clock.second, clock.day, clock.month, clock.year, clock.weekday, valid, state, bit, pulse, gap); @@ -421,7 +454,8 @@ int main() { state++; } else { - printf("INVALID %02d:%02d:%02d %02u.%02u.%02u %u %u %u %u \n", + printf("OP %d:%d:%d INVALID %02d:%02d:%02d %02u.%02u.%02u %u %u %u %u \n", + opTime.hour, opTime.minute, opTime.second, clock.hour, clock.minute, clock.second, clock.day, clock.month, clock.year, clock.weekday, bit, pulse, gap);