move clock functions from mendel.c to clock.[ch]

This commit is contained in:
Michael Moon 2010-11-27 09:50:13 +11:00
parent a57ba313b8
commit 935eed7f97
4 changed files with 54 additions and 36 deletions

View File

@ -96,7 +96,7 @@ PROGBAUD = 57600
PROGRAM = mendel
SOURCES = $(PROGRAM).c serial.c dda.c gcode_parse.c gcode_process.c timer.c temp.c sermsg.c dda_queue.c watchdog.c debug.c sersendf.c heater.c analog.c delay.c intercom.c pinio.c
SOURCES = $(PROGRAM).c serial.c dda.c gcode_parse.c gcode_process.c timer.c temp.c sermsg.c dda_queue.c watchdog.c debug.c sersendf.c heater.c analog.c delay.c intercom.c pinio.c clock.c
ARCH = avr-
CC = $(ARCH)gcc

45
clock.c Normal file
View File

@ -0,0 +1,45 @@
#include "clock.h"
#include "pinio.h"
#include "sersendf.h"
#include "dda_queue.h"
#include "watchdog.h"
#include "temp.h"
#include "timer.h"
#include "debug.h"
void clock_250ms() {
if (steptimeout > (30 * 4)) {
power_off();
}
else
steptimeout++;
ifclock(CLOCK_FLAG_1S) {
if (debug_flags & DEBUG_POSITION) {
// current position
sersendf_P(PSTR("Pos: %ld,%ld,%ld,%ld,%lu\n"), current_position.X, current_position.Y, current_position.Z, current_position.E, current_position.F);
// target position
sersendf_P(PSTR("Dst: %ld,%ld,%ld,%ld,%lu\n"), movebuffer[mb_tail].endpoint.X, movebuffer[mb_tail].endpoint.Y, movebuffer[mb_tail].endpoint.Z, movebuffer[mb_tail].endpoint.E, movebuffer[mb_tail].endpoint.F);
// Queue
print_queue();
}
// temperature
/* if (temp_get_target())
temp_print();*/
}
}
void clock_10ms() {
// reset watchdog
wd_reset();
temp_tick();
ifclock(CLOCK_FLAG_250MS) {
clock_250ms();
}
}

7
clock.h Normal file
View File

@ -0,0 +1,7 @@
#ifndef _CLOCK_H
#define _CLOCK_H
void clock_250ms(void);
void clock_10ms(void);
#endif /* _CLOCK_H */

View File

@ -18,6 +18,7 @@
#include "analog.h"
#include "pinio.h"
#include "arduino.h"
#include "clock.h"
void io_init(void) {
// disable modules we don't use
@ -150,41 +151,6 @@ void init(void) {
}
void clock_250ms(void) {
if (steptimeout > (30 * 4)) {
power_off();
}
else
steptimeout++;
ifclock(CLOCK_FLAG_1S) {
if (debug_flags & DEBUG_POSITION) {
// current position
sersendf_P(PSTR("Pos: %ld,%ld,%ld,%ld,%lu\n"), current_position.X, current_position.Y, current_position.Z, current_position.E, current_position.F);
// target position
sersendf_P(PSTR("Dst: %ld,%ld,%ld,%ld,%lu\n"), movebuffer[mb_tail].endpoint.X, movebuffer[mb_tail].endpoint.Y, movebuffer[mb_tail].endpoint.Z, movebuffer[mb_tail].endpoint.E, movebuffer[mb_tail].endpoint.F);
// Queue
print_queue();
}
// temperature
/* if (temp_get_target())
temp_print();*/
}
}
void clock_10ms(void) {
// reset watchdog
wd_reset();
temp_tick();
ifclock(CLOCK_FLAG_250MS) {
clock_250ms();
}
}
int main (void)
{
init();