From 1b0f79c8186803975540807f1bff726e35167b7c Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Fri, 8 Nov 2019 10:29:04 -0700 Subject: [PATCH] Add delay_ticks function --- src/arch/8051/delay.c | 10 +++++++--- src/arch/8051/include/arch/delay.h | 3 +++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/arch/8051/delay.c b/src/arch/8051/delay.c index 4f43021..340ad0e 100644 --- a/src/arch/8051/delay.c +++ b/src/arch/8051/delay.c @@ -3,6 +3,12 @@ #include #include +void delay_ticks(uint16_t ticks) { + timer_mode_1(-ticks); + timer_wait(); + timer_stop(); +} + // One millisecond in ticks is determined as follows: // 9.2 MHz is the clock rate // The timer divider is 12 @@ -11,8 +17,6 @@ // 65536 - 766.667 = 64769.33 void delay_ms(int ms) { for (int i = 0; i < ms; i++) { - timer_mode_1(64769); - timer_wait(); - timer_stop(); + delay_ticks(767); } } diff --git a/src/arch/8051/include/arch/delay.h b/src/arch/8051/include/arch/delay.h index a99e44d..c7393e7 100644 --- a/src/arch/8051/include/arch/delay.h +++ b/src/arch/8051/include/arch/delay.h @@ -1,6 +1,9 @@ #ifndef _ARCH_DELAY_H #define _ARCH_DELAY_H +#include + +void delay_ticks(uint16_t ticks); void delay_ms(int ms); #endif // _ARCH_DELAY_H