本帖最后由 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);
- }
|