📄 timer.c
字号:
/*
* timer.c - timer api & driver
*
* Author: li ming <admin@lumit.org>
* Date: 2008-4-16
* Copyleft: http://www.lumit.org
*/
#include "timer.h"
/* define the relative gpio register */
#define SYSCFG 0x03FF0000
#define IOPMOD (*((volatile unsigned *)(SYSCFG+0x5000)))
#define IOPCON (*((volatile unsigned *)(SYSCFG+0x5004)))
#define IOPDATA (*((volatile unsigned *)(SYSCFG+0x5008)))
// timer mode register
#define TMOD (*((volatile unsigned *)(SYSCFG+0x6000)))
#define TDATA0 (*((volatile unsigned *)(SYSCFG+0x6004)))
#define TDATA1 (*((volatile unsigned *)(SYSCFG+0x6008)))
#define TCNT0 (*((volatile unsigned *)(SYSCFG+0x600c)))
#define TCNT1 (*((volatile unsigned *)(SYSCFG+0x6010)))
/* set timer related gpio */
int timer_init(void)
{
/* enable timer 0 */
//TMOD = 1;
IOPMOD = 0x3ffff;
IOPCON = 0x80000000;
IOPDATA = 0x0;
TMOD = 0x3f;//3f
return 0;
}
int timer_get_value(void)
{
return TCNT1;
return TCNT0;
}
int timer_set_value(int value)
{
TDATA0 = value;
TDATA1 = value;
return 0;
}
#define TIME_OUT 0x3200000
int timer_test(void)
{
int t = 0;
int counter = 0;
timer_set_value(TIME_OUT);
timer_init();
while(1)
{
t = timer_get_value();
if(t <= 0x10)
{
// timer_set_value(TIME_OUT);
counter++;
if( counter % 2 == 1 )
*(volatile unsigned *)(0x3ff5008) |= 0x70;
else
*(volatile unsigned *)(0x3ff5008) &= ~0x70;
}
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -