xyControl
0.1
Quadrotor Flight Controller on AVR Basis
Main Page
Modules
Data Structures
Files
Examples
File List
Globals
•
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Groups
lib
time.c
Go to the documentation of this file.
1
/*
2
* time.c
3
*
4
* Copyright (c) 2013, Thomas Buck <xythobuz@me.com>
5
* All rights reserved.
6
*
7
* Redistribution and use in source and binary forms, with or without
8
* modification, are permitted provided that the following conditions
9
* are met:
10
*
11
* - Redistributions of source code must retain the above copyright notice,
12
* this list of conditions and the following disclaimer.
13
*
14
* - Redistributions in binary form must reproduce the above copyright
15
* notice, this list of conditions and the following disclaimer in the
16
* documentation and/or other materials provided with the distribution.
17
*
18
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
20
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
21
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
22
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
23
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
25
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
26
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
27
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29
*/
30
#include <stdlib.h>
31
#include <stdint.h>
32
#include <avr/io.h>
33
#include <avr/interrupt.h>
34
#include <util/atomic.h>
35
36
#include <
time.h
>
37
47
volatile
time_t
systemTime
= 0;
49
#define TCRA TCCR2A
50
#define TCRB TCCR2B
51
#define OCR OCR2A
52
#define TIMS TIMSK2
53
#define OCIE OCIE2A
55
void initSystemTimer() {
56
// Timer initialization
57
TCRA
|= (1 << WGM21);
// CTC Mode
58
TCRB
|= (1 << CS22);
// Prescaler: 64
59
OCR
= 250;
60
TIMS
|= (1 <<
OCIE
);
// Enable compare match interrupt
61
}
62
64
ISR
(TIMER2_COMPA_vect) {
65
systemTime
++;
66
}
67
68
time_t
getSystemTime
(
void
) {
69
return
systemTime
;
70
}
Generated by
1.8.3.1