DVT
This commit is contained in:
104
A5H_9225_8108_SPIV3.0/APP/xtal/xtal.c
Normal file
104
A5H_9225_8108_SPIV3.0/APP/xtal/xtal.c
Normal 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
|
||||
27
A5H_9225_8108_SPIV3.0/APP/xtal/xtal.h
Normal file
27
A5H_9225_8108_SPIV3.0/APP/xtal/xtal.h
Normal 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
|
||||
|
||||
Reference in New Issue
Block a user