Subversion Repositories HomeAutomation

Rev

Details | Last modification | View Log | SVN | RSS feed

Rev Author Line No. Line
85 johboh 1
/*********************************************************************
2
 *
86 johboh 3
 *                  Ticker module service
85 johboh 4
 *
5
 *********************************************************************
86 johboh 6
 * FileName:        $HeadURL: https://svn.auml.se/svn/HomeAutomation/trunk/EmbeddedSoftware/PIC/canBase/Source/Tick.c $
7
 * Last changed:    $LastChangedDate: 2007-03-03 19:07:14 +0100 (Sat, 03 Mar 2007) $
8
 * By:              $LastChangedBy: johboh $
9
 * Revision:        $Revision: 353 $
85 johboh 10
 ********************************************************************/
11
 
12
#define TICK_INCLUDE
13
 
14
#include <Tick.h>
15
 
16
 
353 johboh 17
static TICK TickCount = 0;  // 10ms/unit
85 johboh 18
 
19
 
20
/*
21
*   Function: TickInit
22
*
23
*   Input:  none
24
*   Output: Tick manager is initialized.
25
*   Pre-conditions: TickInit
26
*   Affects: none
27
*   Depends: none
28
*/
353 johboh 29
 
85 johboh 30
void tickInit(void)
31
{
353 johboh 32
    T0CON = 0b10000000 | TICK_PRESCALE;
33
    TMR0H = (BYTE)((TICK_COUNTER & 0xFF00)>>8);
34
    TMR0L = (TICK_COUNTER & 0xFF);
85 johboh 35
 
353 johboh 36
    INTCONbits.TMR0IF = 0;
37
    INTCONbits.TMR0IE = 1;
38
    INTCON2bits.TMR0IP = 1;
85 johboh 39
 
353 johboh 40
    TickCount = 0;
85 johboh 41
}
42
 
43
/*
44
*   Function: TickGet
45
*
46
*   Input:  none
47
*   Output: Current tick value is given, 1 tick represents approximately 10ms
48
*   Pre-conditions: TickInit
49
*   Affects: none
50
*   Depends: none
51
*/
52
TICK tickGet(void)
53
{
54
    return TickCount;
55
}
56
 
57
 
58
/*
59
*   Function: tickUpdate
60
*
61
*   Input:  none
62
*   Output: none
63
*   Pre-conditions: TickInit
64
*   Affects: none
65
*   Depends: none
66
*/
67
void tickUpdate(void)
68
{
353 johboh 69
    if(INTCONbits.TMR0IF==1 && INTCONbits.TMR0IE==1)
85 johboh 70
    {
353 johboh 71
        TMR0H = (BYTE)((TICK_COUNTER & 0xFF00)>>8);
72
        TMR0L = (TICK_COUNTER & 0xFF);
85 johboh 73
 
74
        TickCount++;
75
 
76
        INTCONbits.TMR0IF = 0;
77
    }
78
}