OpenCores
URL https://opencores.org/ocsvn/gecko4/gecko4/trunk

Subversion Repositories gecko4

[/] [gecko4/] [trunk/] [GECKO4com/] [fx2_firmware/] [c/] [timer.c] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 ktt1
/* -*- c++ -*- */
2
/*
3
 * Copyright 2003 Free Software Foundation, Inc.
4
 *
5
 * This file is part of GNU Radio
6
 *
7
 * GNU Radio is free software; you can redistribute it and/or modify
8
 * it under the terms of the GNU General Public License as published by
9
 * the Free Software Foundation; either version 3, or (at your option)
10
 * any later version.
11
 *
12
 * GNU Radio is distributed in the hope that it will be useful,
13
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
 * GNU General Public License for more details.
16
 *
17
 * You should have received a copy of the GNU General Public License
18
 * along with GNU Radio; see the file COPYING.  If not, write to
19
 * the Free Software Foundation, Inc., 51 Franklin Street,
20
 * Boston, MA 02110-1301, USA.
21
 */
22
 
23
/************************************************************************/
24
/** \file         timer.c
25
 ************************************************************************/
26
 
27
#include "timer.h"
28
#include "fx2regs.h"
29
#include "isr.h"
30
 
31
/**
32
 * Arrange to have isr_tick_handler called at 100 Hz.
33
 *
34
 * The cpu clock is running at 48e6.  The input to the timer
35
 * is 48e6 / 12 = 4e6.
36
 *
37
 * We arrange to have the timer overflow every 40000 clocks == 100 Hz
38
 */
39
#define RELOAD_VALUE    ((unsigned short) -40000)
40
 
41
void
42
hook_timer_tick (unsigned short isr_tick_handler)
43
{
44
  ET2 = 0;                       /* disable timer 2 interrupts */
45
  hook_sv (SV_TIMER_2, isr_tick_handler);
46
 
47
  RCAP2H = RELOAD_VALUE >> 8;   /* setup the auto reload value */
48
  RCAP2L = RELOAD_VALUE;
49
 
50
  T2CON = 0x04;                 /* interrupt on overflow; reload; run */
51
  ET2 = 1;                      /* enable timer 2 interrupts */
52
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.