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;
|
||||
} 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 (valid != 2) {
|
||||
if (clock.second >= 60) {
|
||||
clock.second = 0;
|
||||
clock.minute++;
|
||||
@ -61,6 +72,22 @@ ISR(TIMER2_OVF_vect) {
|
||||
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);
|
||||
|
Reference in New Issue
Block a user