From 66df34a9726f4621fe44cd1474210fca9d9e7817 Mon Sep 17 00:00:00 2001 From: Dave Date: Sat, 4 Dec 2021 23:06:39 -0600 Subject: [PATCH] Added arch API for msec delay. --- firmware/asdf/src/Arch/asdf_arch_atmega2560.c | 13 +++++-------- firmware/asdf/src/Arch/asdf_arch_atmega2560.h | 10 ++++------ firmware/asdf/src/Arch/asdf_arch_atmega328p.c | 15 +++++++-------- firmware/asdf/src/Arch/asdf_arch_atmega328p.h | 10 ++++------ 4 files changed, 20 insertions(+), 28 deletions(-) diff --git a/firmware/asdf/src/Arch/asdf_arch_atmega2560.c b/firmware/asdf/src/Arch/asdf_arch_atmega2560.c index e61ec95..02292dc 100644 --- a/firmware/asdf/src/Arch/asdf_arch_atmega2560.c +++ b/firmware/asdf/src/Arch/asdf_arch_atmega2560.c @@ -681,24 +681,21 @@ void asdf_arch_pulse_delay_long(void) _delay_ms(ASDF_PULSE_DELAY_LONG_MS); } -// PROCEDURE: asdf_arch_character_delay -// INPUTS: none +// PROCEDURE: asdf_arch_delay_ms +// INPUTS: (uint16) delay_ms - the delay in msec. // OUTPUTS: none // -// DESCRIPTION: Delays a fixed amount of time after each character of a system -// message, to allow polled systems to catch up. +// DESCRIPTION: Delays a specified number of milliseconds // // SIDE EFFECTS: see above. // -// NOTES: Set ASDF_PULSE_DELAY_US in asdf_config.h -// // SCOPE: public // // COMPLEXITY: 1 // -void asdf_arch_character_delay(void) +void asdf_arch_delay_ms(uint16_t delay_ms) { - _delay_ms(ASDF_MESSAGE_CHARACTER_DELAY); + _delay_ms(delay_ms); } // PROCEDURE: asdf_arch_init diff --git a/firmware/asdf/src/Arch/asdf_arch_atmega2560.h b/firmware/asdf/src/Arch/asdf_arch_atmega2560.h index fb58ba1..a07a5da 100644 --- a/firmware/asdf/src/Arch/asdf_arch_atmega2560.h +++ b/firmware/asdf/src/Arch/asdf_arch_atmega2560.h @@ -475,13 +475,11 @@ void asdf_arch_pulse_delay_short(void); // ASDF_PULSE_DELAY_LONG_MS void asdf_arch_pulse_delay_long(void); -// PROCEDURE: asdf_arch_character_delay -// INPUTS: none +// PROCEDURE: asdf_arch_delay_ms +// INPUTS: (uint16) delay_ms - the delay in msec. // OUTPUTS: none -// DESCRIPTION: Delays a fixed amount of time after each character of a system -// message, to allow polled systems to catch up. -// NOTES: Set ASDF_CHARACTER_DELAY_US in asdf_config.h -void asdf_arch_character_delay(void); +// DESCRIPTION: Delays a specified number of milliseconds +void asdf_arch_delay_ms(uint16_t delay_ms); // PROCEDURE: asdf_arch_tick // INPUTS: none diff --git a/firmware/asdf/src/Arch/asdf_arch_atmega328p.c b/firmware/asdf/src/Arch/asdf_arch_atmega328p.c index eb39a0f..3668d45 100644 --- a/firmware/asdf/src/Arch/asdf_arch_atmega328p.c +++ b/firmware/asdf/src/Arch/asdf_arch_atmega328p.c @@ -677,24 +677,23 @@ void asdf_arch_pulse_delay_long(void) _delay_ms(ASDF_PULSE_DELAY_LONG_MS); } -// PROCEDURE: asdf_arch_character_delay -// INPUTS: none +// PROCEDURE: asdf_arch_delay_ms +// INPUTS: (uint16) delay_ms - the delay in msec. // OUTPUTS: none // -// DESCRIPTION: Delays a fixed amount of time after each character of a system -// message, to allow polled systems to catch up. +// DESCRIPTION: Delays a specified number of milliseconds // // SIDE EFFECTS: see above. // -// NOTES: Set ASDF_PULSE_DELAY_US in asdf_config.h -// // SCOPE: public // // COMPLEXITY: 1 // -void asdf_arch_character_delay(void) +void asdf_arch_delay_ms(uint16_t delay_ms) { - _delay_ms(ASDF_MESSAGE_CHARACTER_DELAY); + for (uint16_t i=0; i < delay_ms; i++) { + _delay_ms(1); + } } // PROCEDURE: asdf_arch_init diff --git a/firmware/asdf/src/Arch/asdf_arch_atmega328p.h b/firmware/asdf/src/Arch/asdf_arch_atmega328p.h index d9ad883..2bd5a5a 100644 --- a/firmware/asdf/src/Arch/asdf_arch_atmega328p.h +++ b/firmware/asdf/src/Arch/asdf_arch_atmega328p.h @@ -376,13 +376,11 @@ void asdf_arch_pulse_delay_short(void); // DESCRIPTION: Delays a fixed amount of time for keyboard output pulses specified by ASDF_PULSE_DELAY_LONG_MS void asdf_arch_pulse_delay_long(void); -// PROCEDURE: asdf_arch_character_delay -// INPUTS: none +// PROCEDURE: asdf_arch_delay_ms +// INPUTS: (uint16) delay_ms - the delay in msec. // OUTPUTS: none -// DESCRIPTION: Delays a fixed amount of time after each character of a system -// message, to allow polled systems to catch up. -// NOTES: Set ASDF_CHARACTER_DELAY_US in asdf_config.h -void asdf_arch_character_delay(void); +// DESCRIPTION: Delays a specified number of milliseconds +void asdf_arch_delay_ms(uint16_t delay_ms); // PROCEDURE: asdf_arch_tick // INPUTS: none