📄 tm_clk.c
字号:
#include "../inc/def.h"
#include "../inc/config.h"
#include "../inc/board.h"
#include "../inc/utils.h"
#include "s3c4510b.h"
U32 GetCpuClock(void)
{
return fMCLK_MHz;
}
U32 GetMasterClock(void)
{
return GetCpuClock();
}
int SetSysClock(void)
{
return 0;
}
U32 GetSysClock(SysClock pSysClock[])
{
pSysClock[0].name = "CPU";
pSysClock[0].freq = GetCpuClock();
return 1;
}
void SetSysClockPara(void *addr)
{
}
void GetSysClockPara(void *addr)
{
}
/*********************************************************
功能: 设置定时器工作模式,使能定时器0,间隔模式
设置定时器0的记数值
TMOD:定时器模式寄存器
TDATA0:定时器的数据寄存器
*********************************************************/
void TimerInit(U32 HZ)
{
//int i;
outl(inl(TMOD)&0x38, TMOD); //停止再启动,重装初值,加计数
outl(inl(TMOD)|1, TMOD); //enable timer 0, interval mode
outl(GetCpuClock()/HZ, TDATA0);
//outl(i, TMOD);
}
/*void ResetTimer(void)
{
outl(inl(TMOD)&0x38, TMOD);
}*/
/*******************************************************
功能:延迟程序,单位MS
********************************************************/
void Delay(U32 ms)
{
U32 i;
i = inl(TCNT0)>>1; //1000us/2
outl(inl(TMOD)&0x38, TMOD);
outl(inl(TMOD)|1, TMOD); //停止再启动,重装初值,加计数
while(ms--) {
while(inl(TCNT0)<=i);
while(inl(TCNT0)>i);
}
}
/*******************************************************
功能:超时控制程序
********************************************************/
int WaitEventWithTimeout(int (*event)(void), int cond, U32 ms)
{
int result;
U16 half, ms_h;
half = inl(TCNT0)>>1; //1000us/2
outl(inl(TMOD)&0x38, TMOD);
outl(inl(TMOD)|1, TMOD); //停止再启动,重装初值,加计数
ms_h = 0;
while(ms) {
result = (*event)();
if(cond) {
if(result)
return 0;
} else {
if(!result)
return 0;
}
if(!ms_h) {
if(inl(TCNT0)>=half)
ms_h = 1;
} else {
if(inl(TCNT0)<half) {
ms_h = 0;
ms--;
}
}
}
return -1;
}
/*************************************************************/
void RtcSetDay(TIME_STRUC *time)
{
}
void RtcSetWeek(TIME_STRUC *time)
{
}
void RtcSetTime(TIME_STRUC *time)
{
}
void RtcGetTime(TIME_STRUC *time)
{
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -