From 5bdcd8ad93542743042622db51705098084c5c8c Mon Sep 17 00:00:00 2001 From: Miducc Date: Fri, 23 Jun 2023 09:43:06 +0700 Subject: [PATCH] Delete RAM data and delay function --- inc/system_function.h | 12 ++++++++++++ src/system_function.c | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 inc/system_function.h create mode 100644 src/system_function.c diff --git a/inc/system_function.h b/inc/system_function.h new file mode 100644 index 0000000..4356522 --- /dev/null +++ b/inc/system_function.h @@ -0,0 +1,12 @@ +#ifndef _SYSTEM_FUNCTION_ +#define _SYSTEM_FUNCTION_ + +#include "stdint.h" + +#define RAM_ADDR_START 0x80 +#define RAM_ADDR_END 0xff + +void ram_erase(uint8_t ram_bank); +void delay(uint16_t count); + +#endif \ No newline at end of file diff --git a/src/system_function.c b/src/system_function.c new file mode 100644 index 0000000..0c1dfaf --- /dev/null +++ b/src/system_function.c @@ -0,0 +1,34 @@ +#include "BA45F5250.h" +#include "stdint.h" +#include "build-in.h" +#include "system_function.h" +#include "macro_define.h" + +void ram_erase(uint8_t ram_bank) +{ + _mp1h = ram_bank; + _mp1l = RAM_ADDR_START; + _acc = RAM_ADDR_END - RAM_ADDR_START + 1; + while (_acc != 0) + { + _iar1 = 0; + ++_mp1l; + _acc--; + } + +} + +void delay(uint16_t count) +{ + uint8_t i; + for(i = 0; i < count; i++) + { + #if _HIRCC_8M + GCC_DELAY(9993); + #elif _HIRCC_4M + GCC_DELAY(4993); + #else + GCC_DELAY(2493); + #endif + } +} \ No newline at end of file