打印
[Cortex-M0技术交流]

助学板第三帖,定时器的应用。 沙发送一分

[复制链接]
2335|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
电子write_cai|  楼主 | 2011-8-28 19:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*************题目:助学板定时器的应用******************/
/*************功能:LED2灯的闪烁间隔10S***********************/

#include "NUC1xx.h"
#include "DRVTIMER.h"
#include "DRVGPIO.h"
#include "DrvSYS.h"

static uint8_t EGPADATA=0xf7;
static uint8_t IntFlag=0;

/*************函数声明***********/

void InitSYS(void);
void InitGPIO(void);
void InitTIMER(void);

void TMR_CALLBACK() //回调函数;
{
DrvTIMER_ClearIntFlag (E_TMR0); //清楚中断标志;
IntFlag=~IntFlag;
}
int main()
{
InitSYS(); //初始化系统时钟;
InitGPIO(); //设定GPA3端口为普通端口;
InitTIMER(); //初始化定时器;
DrvTIMER_Start (E_TMR0); //指定定时器通道开始计数;
while (1)
{

if(IntFlag)
DrvGPIO_SetPortBits(E_GPA,0xff);
else
DrvGPIO_SetPortBits(E_GPA,EGPADATA);


}



}

void InitSYS()
{
UNLOCKREG();
DrvSYS_SetOscCtrl(E_SYS_XTL12M, 1); //使能外部12M
DrvSYS_Delay(5000);
LOCKREG();
}

void InitGPIO()
{
DrvGPIO_Open(E_GPA, 2, E_IO_OUTPUT); //设置GPA2为输出模式;
DrvGPIO_Open(E_GPA, 12, E_IO_INPUT);

}
void InitTIMER()
{
DrvTIMER_Init(); //在配置定时器寄存器时,必须要执行这步;
DrvTIMER_SetEXTClockFreq (12000000); //选择外部时钟源12M,作为定时器的时钟源;
DrvTIMER_Open( E_TMR0, 1, E_PERIODIC_MODE ); //选择TMR0,1S中断一次,周期性模式;
DrvTIMER_SetTimerEvent(E_TMR0, 10,(TIMER_CALLBACK)TMR_CALLBACK, 0 ); //中断达到10次再分配回调函数;
DrvTIMER_EnableInt (E_TMR0); //使能指定的定时器中断;
DrvTIMER_GetCounters (E_TMR0); //获取指定通道当前计数值;
}


相关帖子

沙发
zhoubojay| | 2011-8-28 22:54 | 只看该作者
沙发  ~  我还正在摸索  相关的设置搞了一天,程序还没下进去,问下LZ,我用Keil和ICP ,还需要ISP吗?

使用特权

评论回复
板凳
hotpower| | 2011-8-29 00:24 | 只看该作者
ISP主要用于批量生产的,学习可以不要。

使用特权

评论回复
地板
wj4813308| | 2011-9-29 08:27 | 只看该作者
谢谢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:只要你是拼多多新用户就可以加我微信,微信号772880135验证您是新用户后立刻微信转你20元。欢迎朋友加我微信,多年21ic用户,诚信为本!

157

主题

1535

帖子

3

粉丝