0
mirror of https://github.com/OneOfEleven/uv-k5-firmware-custom.git synced 2025-04-28 14:21:25 +03:00

removed SYSTICK_DelayUs()

This commit is contained in:
OneOfEleven 2023-11-05 20:26:42 +00:00
parent b438d7a903
commit 465d7333e3
10 changed files with 43 additions and 65 deletions

View File

@ -275,12 +275,12 @@ void AUDIO_PlayBeep(beep_type_t Beep)
GPIO_ClearBit(&GPIOA->DATA, GPIOA_PIN_VOICE_1); GPIO_ClearBit(&GPIOA->DATA, GPIOA_PIN_VOICE_1);
else else
GPIO_SetBit(&GPIOA->DATA, GPIOA_PIN_VOICE_1); GPIO_SetBit(&GPIOA->DATA, GPIOA_PIN_VOICE_1);
SYSTICK_DelayUs(1000); SYSTICK_Delay250us(4000);
GPIO_SetBit(&GPIOA->DATA, GPIOA_PIN_VOICE_0); GPIO_SetBit(&GPIOA->DATA, GPIOA_PIN_VOICE_0);
SYSTICK_DelayUs(1200); SYSTICK_Delay250us(4800);
GPIO_ClearBit(&GPIOA->DATA, GPIOA_PIN_VOICE_0); GPIO_ClearBit(&GPIOA->DATA, GPIOA_PIN_VOICE_0);
VoiceID <<= 1; VoiceID <<= 1;
SYSTICK_DelayUs(200); SYSTICK_Delay250us(800);
} }
} }

View File

@ -144,7 +144,7 @@ static uint16_t BK4819_ReadU16(void)
PORTCON_PORTC_IE = (PORTCON_PORTC_IE & ~PORTCON_PORTC_IE_C2_MASK) | PORTCON_PORTC_IE_C2_BITS_ENABLE; PORTCON_PORTC_IE = (PORTCON_PORTC_IE & ~PORTCON_PORTC_IE_C2_MASK) | PORTCON_PORTC_IE_C2_BITS_ENABLE;
GPIOC->DIR = (GPIOC->DIR & ~GPIO_DIR_2_MASK) | GPIO_DIR_2_BITS_INPUT; GPIOC->DIR = (GPIOC->DIR & ~GPIO_DIR_2_MASK) | GPIO_DIR_2_BITS_INPUT;
SYSTICK_DelayUs(1); SYSTICK_Delay250ns(4);
Value = 0; Value = 0;
for (i = 0; i < 16; i++) for (i = 0; i < 16; i++)
@ -152,9 +152,9 @@ static uint16_t BK4819_ReadU16(void)
Value <<= 1; Value <<= 1;
Value |= GPIO_CheckBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SDA); Value |= GPIO_CheckBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SDA);
GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SCL); GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SCL);
SYSTICK_DelayUs(1); SYSTICK_Delay250ns(4);
GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SCL); GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SCL);
SYSTICK_DelayUs(1); SYSTICK_Delay250ns(4);
} }
PORTCON_PORTC_IE = (PORTCON_PORTC_IE & ~PORTCON_PORTC_IE_C2_MASK) | PORTCON_PORTC_IE_C2_BITS_DISABLE; PORTCON_PORTC_IE = (PORTCON_PORTC_IE & ~PORTCON_PORTC_IE_C2_MASK) | PORTCON_PORTC_IE_C2_BITS_DISABLE;
GPIOC->DIR = (GPIOC->DIR & ~GPIO_DIR_2_MASK) | GPIO_DIR_2_BITS_OUTPUT; GPIOC->DIR = (GPIOC->DIR & ~GPIO_DIR_2_MASK) | GPIO_DIR_2_BITS_OUTPUT;
@ -169,14 +169,14 @@ uint16_t BK4819_ReadRegister(const uint8_t Register)
GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SCN); GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SCN);
GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SCL); GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SCL);
SYSTICK_DelayUs(1); SYSTICK_Delay250ns(4);
GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SCN); GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SCN);
BK4819_WriteU8(Register | 0x80); BK4819_WriteU8(Register | 0x80);
Value = BK4819_ReadU16(); Value = BK4819_ReadU16();
GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SCN); GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SCN);
SYSTICK_DelayUs(1); SYSTICK_Delay250ns(4);
GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SCL); GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SCL);
GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SDA); GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SDA);
@ -188,12 +188,12 @@ void BK4819_WriteRegister(const uint8_t Register, uint16_t Data)
{ {
GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SCN); GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SCN);
GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SCL); GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SCL);
SYSTICK_DelayUs(1); SYSTICK_Delay250ns(4);
GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SCN); GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SCN);
BK4819_WriteU8(Register); BK4819_WriteU8(Register);
BK4819_WriteU16(Data); BK4819_WriteU16(Data);
GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SCN); GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SCN);
SYSTICK_DelayUs(1); SYSTICK_Delay250ns(4);
GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SCL); GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SCL);
GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SDA); GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SDA);
} }
@ -210,14 +210,14 @@ void BK4819_WriteU8(uint8_t Data)
else else
GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SDA); GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SDA);
SYSTICK_DelayUs(1); SYSTICK_Delay250ns(4);
GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SCL); GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SCL);
SYSTICK_DelayUs(1); SYSTICK_Delay250ns(4);
Data <<= 1; Data <<= 1;
GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SCL); GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SCL);
SYSTICK_DelayUs(1); SYSTICK_Delay250ns(4);
} }
} }
@ -233,14 +233,14 @@ void BK4819_WriteU16(uint16_t Data)
else else
GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SDA); GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SDA);
SYSTICK_DelayUs(1); SYSTICK_Delay250ns(4);
GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SCL); GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SCL);
Data <<= 1; Data <<= 1;
SYSTICK_DelayUs(1); SYSTICK_Delay250ns(4);
GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SCL); GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SCL);
SYSTICK_DelayUs(1); SYSTICK_Delay250ns(4);
} }
} }
void BK4819_EnableAFC(void) void BK4819_EnableAFC(void)

View File

@ -23,25 +23,25 @@
void I2C_Start(void) void I2C_Start(void)
{ {
GPIO_SetBit(&GPIOA->DATA, GPIOA_PIN_I2C_SDA); GPIO_SetBit(&GPIOA->DATA, GPIOA_PIN_I2C_SDA);
SYSTICK_DelayUs(1); SYSTICK_Delay250ns(4);
GPIO_SetBit(&GPIOA->DATA, GPIOA_PIN_I2C_SCL); GPIO_SetBit(&GPIOA->DATA, GPIOA_PIN_I2C_SCL);
SYSTICK_DelayUs(1); SYSTICK_Delay250ns(4);
GPIO_ClearBit(&GPIOA->DATA, GPIOA_PIN_I2C_SDA); GPIO_ClearBit(&GPIOA->DATA, GPIOA_PIN_I2C_SDA);
SYSTICK_DelayUs(1); SYSTICK_Delay250ns(4);
GPIO_ClearBit(&GPIOA->DATA, GPIOA_PIN_I2C_SCL); GPIO_ClearBit(&GPIOA->DATA, GPIOA_PIN_I2C_SCL);
SYSTICK_DelayUs(1); SYSTICK_Delay250ns(4);
} }
void I2C_Stop(void) void I2C_Stop(void)
{ {
GPIO_ClearBit(&GPIOA->DATA, GPIOA_PIN_I2C_SDA); GPIO_ClearBit(&GPIOA->DATA, GPIOA_PIN_I2C_SDA);
SYSTICK_DelayUs(1); SYSTICK_Delay250ns(4);
GPIO_ClearBit(&GPIOA->DATA, GPIOA_PIN_I2C_SCL); GPIO_ClearBit(&GPIOA->DATA, GPIOA_PIN_I2C_SCL);
SYSTICK_DelayUs(1); SYSTICK_Delay250ns(4);
GPIO_SetBit(&GPIOA->DATA, GPIOA_PIN_I2C_SCL); GPIO_SetBit(&GPIOA->DATA, GPIOA_PIN_I2C_SCL);
SYSTICK_DelayUs(1); SYSTICK_Delay250ns(4);
GPIO_SetBit(&GPIOA->DATA, GPIOA_PIN_I2C_SDA); GPIO_SetBit(&GPIOA->DATA, GPIOA_PIN_I2C_SDA);
SYSTICK_DelayUs(1); SYSTICK_Delay250ns(4);
} }
uint8_t I2C_Read_fast(bool bFinal) uint8_t I2C_Read_fast(bool bFinal)
@ -97,31 +97,31 @@ uint8_t I2C_Read(bool bFinal)
for (i = 0; i < 8; i++) for (i = 0; i < 8; i++)
{ {
GPIO_ClearBit(&GPIOA->DATA, GPIOA_PIN_I2C_SCL); GPIO_ClearBit(&GPIOA->DATA, GPIOA_PIN_I2C_SCL);
SYSTICK_DelayUs(1); SYSTICK_Delay250ns(4);
GPIO_SetBit(&GPIOA->DATA, GPIOA_PIN_I2C_SCL); GPIO_SetBit(&GPIOA->DATA, GPIOA_PIN_I2C_SCL);
SYSTICK_DelayUs(1); SYSTICK_Delay250ns(4);
Data <<= 1; Data <<= 1;
SYSTICK_DelayUs(1); SYSTICK_Delay250ns(4);
if (GPIO_CheckBit(&GPIOA->DATA, GPIOA_PIN_I2C_SDA)) if (GPIO_CheckBit(&GPIOA->DATA, GPIOA_PIN_I2C_SDA))
Data |= 1U; Data |= 1U;
GPIO_ClearBit(&GPIOA->DATA, GPIOA_PIN_I2C_SCL); GPIO_ClearBit(&GPIOA->DATA, GPIOA_PIN_I2C_SCL);
SYSTICK_DelayUs(1); SYSTICK_Delay250ns(4);
} }
PORTCON_PORTA_IE &= ~PORTCON_PORTA_IE_A11_MASK; PORTCON_PORTA_IE &= ~PORTCON_PORTA_IE_A11_MASK;
PORTCON_PORTA_OD |= PORTCON_PORTA_OD_A11_BITS_ENABLE; PORTCON_PORTA_OD |= PORTCON_PORTA_OD_A11_BITS_ENABLE;
GPIOA->DIR |= GPIO_DIR_11_BITS_OUTPUT; GPIOA->DIR |= GPIO_DIR_11_BITS_OUTPUT;
GPIO_ClearBit(&GPIOA->DATA, GPIOA_PIN_I2C_SCL); GPIO_ClearBit(&GPIOA->DATA, GPIOA_PIN_I2C_SCL);
SYSTICK_DelayUs(1); SYSTICK_Delay250ns(4);
if (bFinal) if (bFinal)
GPIO_SetBit(&GPIOA->DATA, GPIOA_PIN_I2C_SDA); GPIO_SetBit(&GPIOA->DATA, GPIOA_PIN_I2C_SDA);
else else
GPIO_ClearBit(&GPIOA->DATA, GPIOA_PIN_I2C_SDA); GPIO_ClearBit(&GPIOA->DATA, GPIOA_PIN_I2C_SDA);
SYSTICK_DelayUs(1); SYSTICK_Delay250ns(4);
GPIO_SetBit(&GPIOA->DATA, GPIOA_PIN_I2C_SCL); GPIO_SetBit(&GPIOA->DATA, GPIOA_PIN_I2C_SCL);
SYSTICK_DelayUs(1); SYSTICK_Delay250ns(4);
GPIO_ClearBit(&GPIOA->DATA, GPIOA_PIN_I2C_SCL); GPIO_ClearBit(&GPIOA->DATA, GPIOA_PIN_I2C_SCL);
SYSTICK_DelayUs(1); SYSTICK_Delay250ns(4);
return Data; return Data;
} }
@ -132,7 +132,7 @@ int I2C_Write(uint8_t Data)
int ret = -1; int ret = -1;
GPIO_ClearBit(&GPIOA->DATA, GPIOA_PIN_I2C_SCL); GPIO_ClearBit(&GPIOA->DATA, GPIOA_PIN_I2C_SCL);
SYSTICK_DelayUs(1); SYSTICK_Delay250ns(4);
for (i = 0; i < 8; i++) { for (i = 0; i < 8; i++) {
if ((Data & 0x80) == 0) { if ((Data & 0x80) == 0) {
GPIO_ClearBit(&GPIOA->DATA, GPIOA_PIN_I2C_SDA); GPIO_ClearBit(&GPIOA->DATA, GPIOA_PIN_I2C_SDA);
@ -140,20 +140,20 @@ int I2C_Write(uint8_t Data)
GPIO_SetBit(&GPIOA->DATA, GPIOA_PIN_I2C_SDA); GPIO_SetBit(&GPIOA->DATA, GPIOA_PIN_I2C_SDA);
} }
Data <<= 1; Data <<= 1;
SYSTICK_DelayUs(1); SYSTICK_Delay250ns(4);
GPIO_SetBit(&GPIOA->DATA, GPIOA_PIN_I2C_SCL); GPIO_SetBit(&GPIOA->DATA, GPIOA_PIN_I2C_SCL);
SYSTICK_DelayUs(1); SYSTICK_Delay250ns(4);
GPIO_ClearBit(&GPIOA->DATA, GPIOA_PIN_I2C_SCL); GPIO_ClearBit(&GPIOA->DATA, GPIOA_PIN_I2C_SCL);
SYSTICK_DelayUs(1); SYSTICK_Delay250ns(4);
} }
PORTCON_PORTA_IE |= PORTCON_PORTA_IE_A11_BITS_ENABLE; PORTCON_PORTA_IE |= PORTCON_PORTA_IE_A11_BITS_ENABLE;
PORTCON_PORTA_OD &= ~PORTCON_PORTA_OD_A11_MASK; PORTCON_PORTA_OD &= ~PORTCON_PORTA_OD_A11_MASK;
GPIOA->DIR &= ~GPIO_DIR_11_MASK; GPIOA->DIR &= ~GPIO_DIR_11_MASK;
GPIO_SetBit(&GPIOA->DATA, GPIOA_PIN_I2C_SDA); GPIO_SetBit(&GPIOA->DATA, GPIOA_PIN_I2C_SDA);
SYSTICK_DelayUs(1); SYSTICK_Delay250ns(4);
GPIO_SetBit(&GPIOA->DATA, GPIOA_PIN_I2C_SCL); GPIO_SetBit(&GPIOA->DATA, GPIOA_PIN_I2C_SCL);
SYSTICK_DelayUs(1); SYSTICK_Delay250ns(4);
for (i = 0; i < 255; i++) { for (i = 0; i < 255; i++) {
if (GPIO_CheckBit(&GPIOA->DATA, GPIOA_PIN_I2C_SDA) == 0) { if (GPIO_CheckBit(&GPIOA->DATA, GPIOA_PIN_I2C_SDA) == 0) {
@ -163,7 +163,7 @@ int I2C_Write(uint8_t Data)
} }
GPIO_ClearBit(&GPIOA->DATA, GPIOA_PIN_I2C_SCL); GPIO_ClearBit(&GPIOA->DATA, GPIOA_PIN_I2C_SCL);
SYSTICK_DelayUs(1); SYSTICK_Delay250ns(4);
PORTCON_PORTA_IE &= ~PORTCON_PORTA_IE_A11_MASK; PORTCON_PORTA_IE &= ~PORTCON_PORTA_IE_A11_MASK;
PORTCON_PORTA_OD |= PORTCON_PORTA_OD_A11_BITS_ENABLE; PORTCON_PORTA_OD |= PORTCON_PORTA_OD_A11_BITS_ENABLE;
GPIOA->DIR |= GPIO_DIR_11_BITS_OUTPUT; GPIOA->DIR |= GPIO_DIR_11_BITS_OUTPUT;

View File

@ -125,7 +125,7 @@ key_code_t KEYBOARD_Poll(void)
for (i = 0, k = 0, reg = 0; i < 3 && k < 8; i++, k++) for (i = 0, k = 0, reg = 0; i < 3 && k < 8; i++, k++)
{ {
uint16_t reg2; uint16_t reg2;
SYSTICK_DelayUs(1); SYSTICK_Delay250ns(4);
reg2 = GPIOA->DATA; reg2 = GPIOA->DATA;
if (reg != reg2) if (reg != reg2)
{ // noise { // noise

View File

@ -19,9 +19,9 @@
#include "driver/system.h" #include "driver/system.h"
#include "driver/systick.h" #include "driver/systick.h"
void SYSTEM_DelayMs(uint32_t Delay) void SYSTEM_DelayMs(const uint32_t Delay)
{ {
SYSTICK_DelayUs(Delay * 1000); SYSTICK_Delay250ns(Delay * 4000);
} }
void SYSTEM_ConfigureClocks(void) void SYSTEM_ConfigureClocks(void)

View File

@ -19,7 +19,7 @@
#include <stdint.h> #include <stdint.h>
void SYSTEM_DelayMs(uint32_t Delay); void SYSTEM_DelayMs(const uint32_t Delay);
void SYSTEM_ConfigureClocks(void); void SYSTEM_ConfigureClocks(void);
#endif #endif

View File

@ -27,27 +27,6 @@ void SYSTICK_Init(void)
gTickMultiplier = 48; gTickMultiplier = 48;
} }
void SYSTICK_DelayUs(const uint32_t Delay)
{
const uint32_t ticks = Delay * gTickMultiplier;
uint32_t i = 0;
uint32_t Start = SysTick->LOAD;
uint32_t Previous = SysTick->VAL;
do {
uint32_t Delta;
uint32_t Current;
do Current = SysTick->VAL;
while (Current == Previous);
Delta = (Current < Previous) ? -Current : Start - Current;
i += Delta + Previous;
Previous = Current;
} while (i < ticks);
}
void SYSTICK_Delay250ns(const uint32_t Delay) void SYSTICK_Delay250ns(const uint32_t Delay)
{ {
const uint32_t ticks = (Delay * gTickMultiplier) >> 2; const uint32_t ticks = (Delay * gTickMultiplier) >> 2;

View File

@ -20,7 +20,6 @@
#include <stdint.h> #include <stdint.h>
void SYSTICK_Init(void); void SYSTICK_Init(void);
void SYSTICK_DelayUs(const uint32_t Delay);
void SYSTICK_Delay250ns(const uint32_t Delay); void SYSTICK_Delay250ns(const uint32_t Delay);
#endif #endif

Binary file not shown.

Binary file not shown.