From 3489015ff245861355f73674f79801279d95ea39 Mon Sep 17 00:00:00 2001 From: Selene ToyKeeper Date: Fri, 3 Nov 2023 11:05:59 -0600 Subject: renamed tk*.h to arch/*.h or fsm/*.h (part 1) to get them out of the root dir, and to start cleaning up mcu/arch code --- arch/delay.h | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 arch/delay.h (limited to 'arch/delay.h') diff --git a/arch/delay.h b/arch/delay.h new file mode 100644 index 0000000..502e6ab --- /dev/null +++ b/arch/delay.h @@ -0,0 +1,58 @@ +// tk-delay.h: Smaller, more flexible _delay_ms() functions. +// Copyright (C) 2015-2023 Selene ToyKeeper +// SPDX-License-Identifier: GPL-3.0-or-later +#pragma once + +#ifdef OWN_DELAY +#include "tk-attiny.h" +#include +#ifdef USE_DELAY_MS +// Having own _delay_ms() saves some bytes AND adds possibility to use variables as input +#define delay_ms _delay_ms +void _delay_ms(uint16_t n) +{ + // TODO: make this take tenths of a ms instead of ms, + // for more precise timing? + //#ifdef USE_FINE_DELAY + //if (n==0) { _delay_loop_2(BOGOMIPS/3); } + //else { + // while(n-- > 0) _delay_loop_2(BOGOMIPS); + //} + //#else + while(n-- > 0) _delay_loop_2(BOGOMIPS); + //#endif +} +#endif +#if defined(USE_FINE_DELAY) || defined(USE_DELAY_ZERO) +#define delay_zero _delay_zero +void _delay_zero() { + //_delay_loop_2((BOGOMIPS/3) & 0xff00); + _delay_loop_2(DELAY_ZERO_TIME); +} +#endif +#ifdef USE_DELAY_4MS +#ifndef delay_4ms +#define delay_4ms _delay_4ms +void _delay_4ms(uint8_t n) // because it saves a bit of ROM space to do it this way +{ + while(n-- > 0) _delay_loop_2(BOGOMIPS*4); +} +#endif +#endif +#ifdef USE_DELAY_S +#define delay_s _delay_s +void _delay_s() // because it saves a bit of ROM space to do it this way +{ + #ifdef USE_DELAY_4MS + _delay_4ms(250); + #else + #ifdef USE_DELAY_MS + _delay_ms(1000); + #endif + #endif +} +#endif +#else +#include +#endif + -- cgit v1.2.3