/*
******************************************************************
*S3C2440的定时器1实验,用4个LED灯每隔5秒钟亮一次,持续时间为5秒
******************************************************************
*/
#include "2440addr.h"
#include "2440lib.h"
#include "2440slib.h"
#include "option.h"
#include "def.h"
#include "mmu.h"
#define GPIO5_OUT (0x01<<(5*2))
#define GPIO6_OUT (0x01<<(6*2))
#define GPIO7_OUT (0x01<<(7*2))
#define GPIO8_OUT (0x01<<(8*2))
void __irq Timer1_ISR(void);
void GPIO_Init(void)
{
rGPBCON = (GPIO5_OUT | GPIO6_OUT | GPIO7_OUT | GPIO8_OUT); //设置GPIO5~8为输出
rGPBDAT = 0x0f<<5;
}
void Timer1_Init(void)
{
rTCFG0 &= (~0xff);
rTCFG0 |= 0xf9;
rTCFG1 &= (~(0xf<<4));
rTCFG1 |= (0x02<<4); //设置Timer1的时钟频率为25KHZ
rTCNTB1 = 12500; //设置Timer1定时时间为每隔5s产生一次中断
rTCON &= (~(0x0f<<8));
rTCON |= (0x01<<9); //设置Timer1手动更新
rTCON &= (~(0x0f<<8));
rTCON |= (0x09<<8); //清手动重载,开自动重载,开启定时器
}
void Interrupt_Init(void)
{
rSRCPND |= (0x01<<11);
rINTPND |= (0x01<<11);
rINTMSK &= (~(0x01<<11)); //使能Timer4中断
rINTMOD = 0; //设置中断模式为IRQ
pISR_TIMER1 = (unsigned)Timer1_ISR; //中断向量注册
}
void __irq Timer1_ISR(void)
{
static U32 Count;
Count++;
rSRCPND |= (0x01<<11);
rINTPND |= (0x01<<11);
if(10 == Count)
{
rGPBDAT ^= (0x0f<<5);
Count = 0;
}
}
void Main(void)
{
U32 mpll_val = 0;
mpll_val = (92<<12)|(1<<4)|(1);
ChangeMPllValue((mpll_val>>12)&0xff, (mpll_val>>4)&0x3f, mpll_val&3);
ChangeClockDivider(14, 12);
MMU_Init();
GPIO_Init();
Timer1_Init();
Interrupt_Init();
while(1)
{
;
}
}
S3C2410A_LED.rar_S3C2410A
版权申诉
147 浏览量
2022-09-19
18:17:09
上传
评论
收藏 873B RAR 举报
御道御小黑
- 粉丝: 61
- 资源: 1万+
最新资源
- 基于opencv的人脸识别考勤系统python源码+数据.zip
- IOT安装包 iotech-iot-1.5-dev-1.5.0-amd64.deb
- 基于物品的协同过滤算法(推荐视频)工具类(见仁见智)
- 21信管2班 武学芹组+独立样本T检验数据分析案例.zip
- demo_ccms_global_open_wlan.py
- 小程序项目源码-小契约(交友互动小程序).zip
- 小程序项目源码-健身房预约课程小程序.zip
- 小程序项目源码-wechat-app-xiaoyima-master小程序.zip
- 小程序项目源码-滑动选项卡小程序.zip
- 小程序项目源码-学习Demo影视推荐、音乐播放、地图小程序.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈