This commit is contained in:
2025-09-29 16:42:09 +08:00
parent 3ec4e6808c
commit 2d906350bf
238 changed files with 107620 additions and 1 deletions

View File

@@ -0,0 +1,104 @@
#include "xtal.h"
volatile uint32_t systick=0;
volatile uint32_t systick_ms=0;
volatile uint32_t systick_flag=0;
void StartTimeCount(void){
SysTick->CTRL = 0x04;
SysTick->VAL = 0;
SysTick->CTRL = 0x05;
}
uint32_t GetRunTime(void){
uint32_t time=0;
time=SysTick->VAL;
SysTick->VAL=0;
SysTick->CTRL = 0x07;
return time/128;
}
void SystickApi_Init(uint16_t freq)
{
uint32_t load=0;
load=freq*1000;
SysTick->CTRL = 0;
SysTick->LOAD = load;
SysTick->VAL = 0;
SysTick->CTRL = 0x06;//7
}
void Systick_StartCount(void){
systick_ms=0;
SysTick->CTRL = 0x4;
systick_flag=1;
SysTick->VAL = 0;
SysTick->CTRL = 0x7;
}
uint32_t Systick_StopCount(void){
uint32_t res=0;
uint32_t value=0;
SysTick->CTRL = 0x4;
value=128000-SysTick->VAL;
// value=SysTick->VAL;
systick_flag=0;
SysTick->VAL=0;
SysTick->CTRL = 0x6;
res=value/128;
return res;
}
void SysTick_Handler(){
if(systick) systick--;
if(systick_flag)systick_ms++;
}
void Delay_Systick(uint16_t ms){
systick=ms;
while(systick);
}
void delay_us(uint16_t us){
uint32_t flag=0;
SysTick->CTRL = 0x4;
SysTick->LOAD=us*128;
SysTick->VAL=0;
SysTick->CTRL = 0x5;
do{
flag=SysTick->CTRL&(1<<16);
}
while(flag==0);
SysTick->CTRL = 0x4;
SysTick->LOAD=128000;
SysTick->VAL=0;
// SysTick->CTRL = 0x7;
}
void delay_ms(uint16_t ms){
if(ms>130) ms=130;
SysTick->CTRL = 0x4;
SysTick->LOAD=ms*128000;
SysTick->VAL=0;
SysTick->CTRL = 0x5;
while((SysTick->CTRL>>16)==0);
SysTick->CTRL = 0x4;
SysTick->LOAD=128000;
SysTick->VAL=0;
// SysTick->CTRL = 0x7;
}
//BCON-CODE HY9225+(HY8603+HY8811+HY8822)-V1.2

View File

@@ -0,0 +1,27 @@
#ifndef __XTAL_H
#define __XTAL_H
#include "hy9225.h"
#define PLL_CLOCK 128000000
#define USE_HXT 0
#define USE_HIRC 1
#define XTAL_CHOOSE USE_HIRC
extern volatile uint32_t systick_ms;
extern void StartTimeCount(void);
extern uint32_t GetRunTime(void);
extern void SystickApi_Init(uint16_t freq);
extern void Systick_StartCount(void);
extern uint32_t Systick_StopCount(void);
extern void Delay_Systick(uint16_t ms);
extern void delay_us(uint16_t us);
extern void delay_ms(uint16_t ms);
#endif