opTime
This commit is contained in:
40
src/main.c
40
src/main.c
@ -40,16 +40,27 @@ typedef struct clock_s {
|
|||||||
uint8_t year;
|
uint8_t year;
|
||||||
} clock_t;
|
} clock_t;
|
||||||
|
|
||||||
|
typedef struct opTime_s {
|
||||||
|
uint8_t second;
|
||||||
|
uint8_t minute;
|
||||||
|
uint16_t hour;
|
||||||
|
} opTime_t;
|
||||||
|
|
||||||
|
|
||||||
receivedData_t rd;
|
receivedData_t rd;
|
||||||
|
|
||||||
volatile clock_t clock;
|
volatile clock_t clock;
|
||||||
|
volatile opTime_t opTime;
|
||||||
volatile uint8_t tick;
|
volatile uint8_t tick;
|
||||||
volatile uint16_t captValue = 0;
|
volatile uint16_t captValue = 0;
|
||||||
volatile uint16_t gapValue = 0;
|
volatile uint16_t gapValue = 0;
|
||||||
|
volatile uint8_t valid = 0;
|
||||||
|
|
||||||
|
|
||||||
ISR(TIMER2_OVF_vect) {
|
ISR(TIMER2_OVF_vect) {
|
||||||
clock.second++;
|
clock.second++;
|
||||||
|
|
||||||
|
if (valid != 2) {
|
||||||
if (clock.second >= 60) {
|
if (clock.second >= 60) {
|
||||||
clock.second = 0;
|
clock.second = 0;
|
||||||
clock.minute++;
|
clock.minute++;
|
||||||
@ -61,6 +72,22 @@ ISR(TIMER2_OVF_vect) {
|
|||||||
if (clock.hour >= 24) {
|
if (clock.hour >= 24) {
|
||||||
clock.hour = 0;
|
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) {
|
ISR(INT0_vect) {
|
||||||
@ -82,6 +109,12 @@ int main() {
|
|||||||
clock.minute = 0;
|
clock.minute = 0;
|
||||||
clock.second = 0;
|
clock.second = 0;
|
||||||
|
|
||||||
|
opTime.hour = 0;
|
||||||
|
opTime.minute = 0;
|
||||||
|
opTime.second = 0;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
TCCR2 = 0b00000101;
|
TCCR2 = 0b00000101;
|
||||||
ASSR |= (1 << AS2);
|
ASSR |= (1 << AS2);
|
||||||
@ -103,7 +136,6 @@ int main() {
|
|||||||
printf("Hello world!\n");
|
printf("Hello world!\n");
|
||||||
|
|
||||||
|
|
||||||
uint8_t valid = 0;
|
|
||||||
uint8_t bit = 0;
|
uint8_t bit = 0;
|
||||||
uint8_t state = 0;
|
uint8_t state = 0;
|
||||||
|
|
||||||
@ -413,7 +445,8 @@ int main() {
|
|||||||
break;
|
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.hour, clock.minute, clock.second,
|
||||||
clock.day, clock.month, clock.year, clock.weekday,
|
clock.day, clock.month, clock.year, clock.weekday,
|
||||||
valid, state, bit, pulse, gap);
|
valid, state, bit, pulse, gap);
|
||||||
@ -421,7 +454,8 @@ int main() {
|
|||||||
state++;
|
state++;
|
||||||
} else {
|
} 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.hour, clock.minute, clock.second,
|
||||||
clock.day, clock.month, clock.year, clock.weekday,
|
clock.day, clock.month, clock.year, clock.weekday,
|
||||||
bit, pulse, gap);
|
bit, pulse, gap);
|
||||||
|
Reference in New Issue
Block a user