本帖最后由 Swallow_0322 于 2011-4-14 14:39 编辑
顶! O(∩_∩)O~ 你的代码格式?
本帖最后由 weshiluwei6 于 2011-4-14 09:57 编辑
抽空写了个小程序 本人是大菜鸟 刚接触不久; 小程序实现了:LED1灯 一秒闪烁一次 利用定时器/*---------------------------------------------------------------------------------------------------------*/
/* */
/* Copyright(c) 2009 Nuvoton Technology Corp. All rights reserved. */
/* */
/*---------------------------------------------------------------------------------------------------------*/
#include <stdio.h>
#include "NUC1xx.h"
#include "Driver\DrvGPIO.h"
#include "Driver\DrvSYS.h"
#include "Driver\DrvTIMER.h"
void Timer0_Callback (void)
{
if(DrvGPIO_GetBit(E_GPA,3))
{
DrvGPIO_ClrBit(E_GPA,3);
}
else
{
DrvGPIO_SetBit(E_GPA,3);
}
}
void Init_Timer0( void )
{
DrvTIMER_Init(); //初始化定时器
/*User must call this before any timer operation after system boots up*/
DrvSYS_SelectIPClockSource(E_SYS_TMR0_CLKSRC,0); //设定IP 时钟源
/* Set TIMER0 clock source are from 12MHz */
/* Parameters: */
/* eIpClkSrc-[in] E_SYS_WDT_CLKSRC / E_SYS_ADC_CLKSRC / E_SYS_TMR0_CLKSRC */
/* E_SYS_TMR1_CLKSRC / E_SYS_TMR2_CLKSRC / E_SYS_TMR3_CLKSRC */
/* E_SYS_UART_CLKSRC / E_SYS_CAN_CLKSRC / E_SYS_PWM01_CLKSRC*/
/* E_SYS_PWM23_CLKSRC / E_SYS_PWM45_CLKSRC/ E_SYS_PWM67_CLKSRC*/
/* E_SYS_FRQDIV_CLKSRC/ E_SYS_I2S_CLKSRC */
DrvTIMER_Open(E_TMR0,1,E_PERIODIC_MODE);
/* 用来设定定时器tick周期并且启动定时器 */
DrvTIMER_SetTimerEvent(E_TMR0,1,(TIMER_CALLBACK) Timer0_Callback,0);
/* 隔1个tick执行事件,parameter3-事件处理函数指针,4-传递参数*/
DrvTIMER_EnableInt(E_TMR0); //enable the specified timer interrupt
DrvTIMER_Start(E_TMR0); //Start to count the specified timer channel
}
/*************************************************************************************
** Function name: delay_loop
** Descriptions: 延时子程序
** input parameters: 无
** output parameters: 无
** Returned value: 无
*************************************************************************************/
void delay_loop(void)
{
uint32_t i,j;
for(i=800;i>0;i--)
for(j=500;j>0;j--);
}
/*************************************************************************************
** Function name: main
** Descriptions: LED2跟随LED1的亮灭而灭亮测试程序
** 现 象:下载代码,运行程序,则LED1亮LED2灭 LED1灭LED2亮循环反复
** input parameters: 无
** output parameters: 无
** Returned value: 无
*************************************************************************************/
int main (void)
{
/* SYSCLK =>12Mhz*/
UNLOCKREG();
SYSCLK->PWRCON.XTL12M_EN = 1;
LOCKREG();
Init_Timer0();
DrvGPIO_Open( E_GPA, 2, E_IO_OUTPUT );
DrvGPIO_ClrBit( E_GPA, 2 );
DrvGPIO_Open( E_GPA, 3, E_IO_OUTPUT );
while(1);
}
|