time.c

来自「ARM LPC2114的例子 uVison3下编辑C语言程序」· C语言 代码 · 共 34 行

C
34
字号
/******************************************************************************/
/*  This file is part of the uVision/ARM development tools                    */
/*  Copyright KEIL ELEKTRONIK GmbH 2002-2004                                  */
/******************************************************************************/
/*                                                                            */
/*  TIME.C:  Time Functions for 100Hz Clock Tick                              */
/*                                                                            */
/******************************************************************************/

#include <LPC21XX.H>                            // LPC21XX Peripheral Registers
#include "Timer.h"

long timeval;

void tc0 (void) __attribute__ ((interrupt));    // Generate Interrupt 

/* Setup the Timer Counter 0 Interrupt */
void init_timer (void) {
    T0MR0 = 149999;                        // 10mSec = 150.000-1 counts
    T0MCR = 3;                             // Interrupt and Reset on MR0
    T0TCR = 1;                             // Timer0 Enable
    VICVectAddr0 = (unsigned long)tc0;          // set interrupt vector in 0
    VICVectCntl0 = 0x20 | 4;                    // use it for Timer 0 Interrupt
    VICIntEnable = 0x00000010;                  // Enable Timer0 Interrupt
}


/* Timer Counter 0 Interrupt executes each 10ms @ 60 MHz CPU Clock */
void tc0 (void) {
    timeval++;
    T0IR = 1;                              // Clear interrupt flag
    VICVectAddr = 0;                            // Acknowledge Interrupt
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?