完成time3设置,用于提供系统时间
This commit is contained in:
@ -1,6 +1,6 @@
|
||||
#include "iic.h"
|
||||
|
||||
// 延时函数(2us)
|
||||
// 延时函数(1us)
|
||||
void
|
||||
IIC_Delay (void)
|
||||
{
|
||||
|
@ -1,7 +1,46 @@
|
||||
#include "timer4.h"
|
||||
#include "timer.h"
|
||||
|
||||
// 初始化所有定时器
|
||||
void
|
||||
Timer_Init (void)
|
||||
{
|
||||
Timer3_Init (); // 定时器3初始化
|
||||
Timer4_Init (); // 定时器4初始化
|
||||
}
|
||||
|
||||
// 定时器3
|
||||
uint32_t uptime = 0;
|
||||
uint8_t time3_cnt = 0;
|
||||
// 定时器3初始化
|
||||
void
|
||||
Timer3_Init (void) // 10毫秒@30.000MHz
|
||||
{
|
||||
T4T3M &= 0xFD; // 定时器时钟12T模式
|
||||
T3L = 0x58; // 设置定时初始值
|
||||
T3H = 0x9E; // 设置定时初始值
|
||||
T4T3M |= 0x08; // 定时器3开始计时
|
||||
IE2 |= 0x20; // 使能定时器3中断
|
||||
}
|
||||
// 定时器3的中断服务
|
||||
void
|
||||
Timer3_Isr (void) interrupt 19
|
||||
{
|
||||
time3_cnt++;
|
||||
if (time3_cnt >= 100)
|
||||
{
|
||||
uptime++;
|
||||
time3_cnt = 0;
|
||||
}
|
||||
}
|
||||
// 获取系统时间(单位:秒)
|
||||
uint32_t
|
||||
GetUpTime (void)
|
||||
{
|
||||
return uptime;
|
||||
}
|
||||
|
||||
// 定时器4
|
||||
u8 Timer4_OF = 0; // 定时器4溢出标志
|
||||
|
||||
// 定时器4初始化(16位自动重载模式)
|
||||
void
|
||||
Timer4_Init (void)
|
23
Driver/timer.h
Normal file
23
Driver/timer.h
Normal file
@ -0,0 +1,23 @@
|
||||
#ifndef __TIMER_H__
|
||||
#define __TIMER_H__
|
||||
|
||||
#include <STC15.H>
|
||||
|
||||
#include "config.h"
|
||||
|
||||
// #define FOSC 30000000UL // 系统时钟30MHz
|
||||
|
||||
// 初始化所有Timer
|
||||
void Timer_Init (void);
|
||||
|
||||
// Timer3 用于记录系统运行时间
|
||||
void Timer3_Init (void);
|
||||
uint32_t GetUpTime (void);
|
||||
|
||||
// Timer4 用于短时间延时
|
||||
void Timer4_Init (void);
|
||||
void Timer4_DelayUs (u16 us);
|
||||
void Timer4_DelayMs (u16 ms);
|
||||
void Timer4_Stop (void);
|
||||
|
||||
#endif
|
@ -1,14 +0,0 @@
|
||||
#ifndef __TIMER4_H__
|
||||
#define __TIMER4_H__
|
||||
|
||||
#include "config.h"
|
||||
#include <STC15.H>
|
||||
|
||||
// #define FOSC 30000000UL // 系统时钟30MHz
|
||||
|
||||
void Timer4_Init (void);
|
||||
void Timer4_DelayUs (u16 us);
|
||||
void Timer4_DelayMs (u16 ms);
|
||||
void Timer4_Stop (void);
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user