Skip to content

Commit 623482d

Browse files
author
Eran Duchan
committedAug 8, 2014
- initial commit
0 parents  commit 623482d

21 files changed

+2788
-0
lines changed
 

‎Timer.mcp

+137
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,137 @@
1+
[HEADER]
2+
magic_cookie={66E99B07-E706-4689-9E80-9B2582898A13}
3+
file_version=1.0
4+
device=PIC18F2525
5+
[PATH_INFO]
6+
BuildDirPolicy=BuildDirIsProjectDir
7+
dir_src=
8+
dir_bin=
9+
dir_tmp=
10+
dir_sin=
11+
dir_inc=
12+
dir_lib=
13+
dir_lkr=
14+
[CAT_FILTERS]
15+
filter_src=*.c;*.as;*.asm;*.usb
16+
filter_inc=*.h;
17+
filter_obj=*.obj;*.p1;*.hex
18+
filter_lib=*.lib;*.lpp
19+
filter_lkr=*.unknown
20+
[CAT_SUBFOLDERS]
21+
subfolder_src=
22+
subfolder_inc=
23+
subfolder_obj=
24+
subfolder_lib=
25+
subfolder_lkr=
26+
[FILE_SUBFOLDERS]
27+
file_000=.
28+
file_001=.
29+
file_002=.
30+
file_003=.
31+
file_004=.
32+
file_005=.
33+
file_006=.
34+
file_007=.
35+
file_008=.
36+
file_009=.
37+
file_010=.
38+
file_011=.
39+
file_012=.
40+
file_013=.
41+
file_014=.
42+
file_015=.
43+
file_016=.
44+
file_017=.
45+
file_018=.
46+
[GENERATED_FILES]
47+
file_000=no
48+
file_001=no
49+
file_002=no
50+
file_003=no
51+
file_004=no
52+
file_005=no
53+
file_006=no
54+
file_007=no
55+
file_008=no
56+
file_009=no
57+
file_010=no
58+
file_011=no
59+
file_012=no
60+
file_013=no
61+
file_014=no
62+
file_015=no
63+
file_016=no
64+
file_017=no
65+
file_018=no
66+
[OTHER_FILES]
67+
file_000=no
68+
file_001=no
69+
file_002=no
70+
file_003=no
71+
file_004=no
72+
file_005=no
73+
file_006=no
74+
file_007=no
75+
file_008=no
76+
file_009=no
77+
file_010=no
78+
file_011=no
79+
file_012=no
80+
file_013=no
81+
file_014=no
82+
file_015=no
83+
file_016=no
84+
file_017=no
85+
file_018=no
86+
[FILE_INFO]
87+
file_000=common.c
88+
file_001=main.c
89+
file_002=quadenc.c
90+
file_003=sseg.c
91+
file_004=sys.c
92+
file_005=ui.c
93+
file_006=common.h
94+
file_007=quadenc.h
95+
file_008=quadenc_prv.h
96+
file_009=sseg.h
97+
file_010=sseg_prv.h
98+
file_011=sys.h
99+
file_012=sys_prv.h
100+
file_013=sysdef.h
101+
file_014=types.h
102+
file_015=ui_prv.h
103+
file_016=main.h
104+
file_017=main_prv.h
105+
file_018=ui.h
106+
[SUITE_INFO]
107+
suite_guid={507D93FD-16F1-4270-980F-0C7C0207E6D3}
108+
suite_state=
109+
[TOOL_SETTINGS]
110+
TS{3FF1D5F2-E530-4850-9F70-F61D55BD1AC9}=C6=64 DB=0 DC=9 DF=0 DD=1 C2=0 C3=0 DE=1 D7=1 11E=0 11F=85 C9=7
111+
TS{3FF1D5F2-E530-4850-9F70-F61D55BD1AC9}000=
112+
TS{3FF1D5F2-E530-4850-9F70-F61D55BD1AC9}000_alt=yes
113+
TS{3FF1D5F2-E530-4850-9F70-F61D55BD1AC9}001=
114+
TS{3FF1D5F2-E530-4850-9F70-F61D55BD1AC9}001_alt=yes
115+
TS{3FF1D5F2-E530-4850-9F70-F61D55BD1AC9}002=
116+
TS{3FF1D5F2-E530-4850-9F70-F61D55BD1AC9}002_alt=yes
117+
TS{3FF1D5F2-E530-4850-9F70-F61D55BD1AC9}003=
118+
TS{3FF1D5F2-E530-4850-9F70-F61D55BD1AC9}003_alt=yes
119+
TS{3FF1D5F2-E530-4850-9F70-F61D55BD1AC9}004=
120+
TS{3FF1D5F2-E530-4850-9F70-F61D55BD1AC9}004_alt=yes
121+
TS{3FF1D5F2-E530-4850-9F70-F61D55BD1AC9}005=
122+
[ACTIVE_FILE_SETTINGS]
123+
TS{3FF1D5F2-E530-4850-9F70-F61D55BD1AC9}000_active=yes
124+
TS{3FF1D5F2-E530-4850-9F70-F61D55BD1AC9}001_active=yes
125+
TS{3FF1D5F2-E530-4850-9F70-F61D55BD1AC9}002_active=yes
126+
TS{3FF1D5F2-E530-4850-9F70-F61D55BD1AC9}003_active=yes
127+
TS{3FF1D5F2-E530-4850-9F70-F61D55BD1AC9}004_active=yes
128+
TS{3FF1D5F2-E530-4850-9F70-F61D55BD1AC9}005_active=yes
129+
[INSTRUMENTED_TRACE]
130+
enable=0
131+
transport=0
132+
format=0
133+
[CUSTOM_BUILD]
134+
Pre-Build=
135+
Pre-BuildEnabled=1
136+
Post-Build=
137+
Post-BuildEnabled=1

‎Timer.mcw

1.76 MB
Binary file not shown.

‎common.c

+113
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
/**************************************************************************
2+
*
3+
* FILE NAME: common.c
4+
* FILE DESCRIPTION: Common routines
5+
*
6+
* FILE CREATION DATE: 24-05-2004
7+
*
8+
*==========================================================================
9+
* Copyright (c) 2004 NIR Diagnostics Inc., Ontario, Canada
10+
*
11+
* This document contains confidential information which is protected by
12+
* copyright and is proprietary to NIR Diagnostics Inc., Ontario, Canada. No part
13+
* of this document may be used, copied, disclosed, or conveyed to another
14+
* party without prior written consent of NIR Diagnostics Inc., Ontario, Canada.
15+
***************************************************************************
16+
*
17+
* Modification history:
18+
* --------------------
19+
* 01a,24may03 erd written
20+
*
21+
***************************************************************************/
22+
23+
#include "sysdef.h"
24+
#include "common.h"
25+
#include "sys.h"
26+
27+
// for time delays
28+
unsigned char time_delayUsLeft;
29+
30+
// ==========================================================================
31+
// uint_8 sys_calculateChecksum(uint_8 *buffer, uint_8 size)
32+
//
33+
// Caluclates an 1's complement checksum over contents of buffer
34+
//
35+
// Arguments:
36+
// buffer: ptr to start of buffer on which chksum is calculated over
37+
// size: size, in bytes, of buffer
38+
//
39+
// Return value:
40+
// checksum value
41+
//
42+
uint_8 sys_calculateChecksum(uint_8 *buffer, uint_8 size)
43+
{
44+
uint_8 chksum = 0;
45+
46+
// calculate the checksum over the buffer
47+
while (size--)
48+
{
49+
chksum += *buffer;
50+
buffer++;
51+
}
52+
53+
// return the checksum
54+
return (~chksum + 1);
55+
}
56+
// ==========================================================================
57+
// uint_16 calculateChecksum16(uint_8 *buffer, uint_16 size)
58+
//
59+
// Caluclates an 16bit checksum over contents of buffer
60+
//
61+
// Arguments:
62+
// buffer: ptr to start of buffer on which chksum is calculated over
63+
// size: size, in bytes, of buffer
64+
//
65+
// Return value:
66+
// checksum value
67+
//
68+
69+
uint_16 sys_calculateChecksum16(uint_8 *buffer, uint_16 size)
70+
{
71+
uint_16 chksum = 0;
72+
73+
// calculate the checksum over the buffer
74+
while (size--)
75+
{
76+
chksum += *buffer;
77+
buffer++;
78+
}
79+
80+
// return the checksum
81+
return (~chksum + 1);
82+
}
83+
84+
// ==========================================================================
85+
// void time_delayMs(int_16 ms)
86+
//
87+
// delay one mS
88+
//
89+
// Arguments:
90+
// ms: the amount of miliseconds to delay
91+
//
92+
93+
void time_delayMs(int_16 ms)
94+
{
95+
uint_8 i;
96+
97+
do
98+
{
99+
// reset i
100+
i = 4;
101+
102+
do
103+
{
104+
// delay a quarter of a ms
105+
time_delayUs(250);
106+
CLRWDT();
107+
108+
} while(--i);
109+
110+
111+
} while(--ms);
112+
}
113+

‎common.h

+130
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
/**************************************************************************
2+
*
3+
* FILE NAME: common.h
4+
* FILE DESCRIPTION: Common routines and macros
5+
*
6+
* FILE CREATION DATE: 24-05-2004
7+
*
8+
*==========================================================================
9+
* Copyright (c) 2004 NIR Diagnostics Inc., Ontario, Canada
10+
*
11+
* This document contains confidential information which is protected by
12+
* copyright and is proprietary to NIR Diagnostics Inc., Ontario, Canada. No part
13+
* of this document may be used, copied, disclosed, or conveyed to another
14+
* party without prior written consent of NIR Diagnostics Inc., Ontario, Canada.
15+
***************************************************************************
16+
*
17+
* Modification history:
18+
* --------------------
19+
* 01a,24may03 erd written
20+
*
21+
***************************************************************************/
22+
23+
#ifndef __COMMON_H_
24+
#define __COMMON_H_
25+
26+
#include <stdio.h>
27+
28+
//
29+
// time routines
30+
//
31+
32+
//
33+
// time routines
34+
//
35+
36+
// delay one microsecond
37+
#define time_delayOneUs() {asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");}
38+
39+
// declare delay counter
40+
extern unsigned char time_delayUsLeft;
41+
42+
// delay one uS
43+
#define time_delayUs(x) \
44+
{ \
45+
time_delayUsLeft = (unsigned char)(x); \
46+
asm("movlb (_time_delayUsLeft) >> 8"); \
47+
time_delayOneUs(); \
48+
asm("decfsz (_time_delayUsLeft)&0ffh, f"); \
49+
asm("goto $ - 16"); \
50+
}
51+
52+
// delay one mS
53+
//
54+
// Arguments:
55+
// ms: the amount of miliseconds to delay
56+
//
57+
extern void time_delayMs(int_16 ms);
58+
59+
//
60+
// bit definitions
61+
//
62+
63+
#define SYS_BIT0 (1 << 0)
64+
#define SYS_BIT1 (1 << 1)
65+
#define SYS_BIT2 (1 << 2)
66+
#define SYS_BIT3 (1 << 3)
67+
#define SYS_BIT4 (1 << 4)
68+
#define SYS_BIT5 (1 << 5)
69+
#define SYS_BIT6 (1 << 6)
70+
#define SYS_BIT7 (1 << 7)
71+
72+
//
73+
// bit routines
74+
//
75+
76+
// set / clear bits
77+
#define sys_bitSet(bit) (bit = 1)
78+
#define sys_bitClear(bit) (bit = 0)
79+
80+
// clear a bit and wait for it to set
81+
#define sys_bitClearWaitSet(bit) {sys_bitClear(bit); while(!bit);}
82+
#define sys_bitSetWaitClear(bit) {sys_bitSet(bit); while(bit);}
83+
84+
// pulse a bit
85+
#define sys_bitSetNoWaitClear(bit) {sys_bitSet(bit); sys_bitClear(bit);}
86+
#define sys_bitSetWaitUsClear(bit, delay) {sys_bitSet(bit); time_delayUs(delay); sys_bitClear(bit);}
87+
#define sys_bitSetWaitMsClear(bit, delay) {sys_bitSet(bit); time_delayMs(delay); sys_bitClear(bit);}
88+
#define sys_bitClearNoWaitSet(bit) {sys_bitClear(bit); sys_bitSet(bit);}
89+
#define sys_bitClearWaitUsSet(bit, delay) {sys_bitClear(bit); time_delayUs(delay); sys_bitSet(bit);}
90+
#define sys_bitClearWaitMsSet(bit, delay) {sys_bitClear(bit); time_delayMs(delay); sys_bitSet(bit);}
91+
92+
// masking routines
93+
#define sys_getIntMsb(myInt) ((myInt >> 8) & 0xFF) // get high byte from an int
94+
#define sys_getIntLsb(myInt) ((myInt) & 0xFF) // get low byte from an int
95+
96+
97+
//
98+
// Generic routines
99+
//
100+
101+
// uint_8 calculateChecksum(uint_8 *buffer, uint_8 size)
102+
//
103+
// Caluclates an 8bit checksum over contents of buffer
104+
//
105+
// Arguments:
106+
// buffer: ptr to start of buffer on which chksum is calculated over
107+
// size: size, in bytes, of buffer
108+
//
109+
// Return value:
110+
// checksum value
111+
//
112+
uint_8 sys_calculateChecksum(uint_8 *buffer, uint_8 size);
113+
114+
115+
// uint_16 calculateChecksum16(uint_8 *buffer, uint_16 size)
116+
//
117+
// Caluclates an 16bit checksum over contents of buffer
118+
//
119+
// Arguments:
120+
// buffer: ptr to start of buffer on which chksum is calculated over
121+
// size: size, in bytes, of buffer
122+
//
123+
// Return value:
124+
// checksum value
125+
//
126+
127+
uint_16 sys_calculateChecksum16(uint_8 *buffer, uint_16 size);
128+
129+
#endif /* __COMMON_H_ */
130+

0 commit comments

Comments
 (0)
Please sign in to comment.