PIC18 LaurTec Library
3.1.1
Open Source C Library for PIC18 Microcontrollers based on C18 - XC8 Compilers
Main Page
Data Structures
Files
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
delay.c
Go to the documentation of this file.
1
/*******************************************************************************
2
3
Author : Mauro Laurenti
4
Version : 1.2
5
6
Created on Date : 04/09/2006
7
Last update : 20/10/2013
8
9
CopyRight 2006-2013 all rights are reserved
10
11
********************************************************
12
SOFTWARE LICENSE AGREEMENT
13
********************************************************
14
15
The usage of the supplied software imply the acceptance of the following license.
16
17
The software supplied herewith by Mauro Laurenti (the Author) is intended for
18
use solely and exclusively on Microchip PIC Microcontroller (registered mark).
19
The software is owned by the Author, and is protected under applicable
20
copyright laws. All rights are reserved.
21
Any use in violation of the foregoing restrictions may subject the
22
user to criminal sanctions under applicable laws, as well as to civil liability
23
for the breach of the terms and conditions of this license.
24
Commercial use is forbidden without a written acknowledgment with the Author.
25
Personal or educational use is allowed if the application containing the
26
following software doesn't aim to commercial use or monetary earning of any kind.
27
28
THIS SOFTWARE IS PROVIDED IN AN "AS IS" CONDITION. NO WARRANTIES,
29
WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED
30
TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
31
PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. THE AUTHOR SHALL NOT,
32
IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL OR
33
CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
34
35
*******************************************************************************/
36
37
38
#ifdef __XC8
39
#include <xc.h>
40
#endif
41
42
#ifndef __XC8
43
#include <delays.h>
44
#endif
45
46
47
#include <
delay.h
>
48
49
unsigned
char
delay_quartz_frequency_value
= 20;
50
unsigned
int
clock_counter_reference
= 0;
51
52
//************************************************************
53
// delay_ms function implementation
54
//************************************************************
55
56
57
58
void
delay_ms
(
unsigned
int
value_ms) {
59
60
clock_counter_reference
= value_ms *
delay_quartz_frequency_value
;
61
62
63
while
(
clock_counter_reference
) {
64
#ifndef __XC8
65
//1ms Delay at 1MHz trimmed down to 24 instead of 25
66
//to compensate the main loop
67
Delay10TCYx (24);
68
#endif
69
70
#ifdef __XC8
71
//1ms Delay at 1MHz trimmed down to 240 instead of 250
72
//to compensate the main loop
73
_delay(240);
74
#endif
75
76
clock_counter_reference
--;
77
}
78
}
79
80
//************************************************************
81
// delay_s function implementation
82
//************************************************************
83
84
void
delay_s
(
unsigned
char
value_s) {
85
86
unsigned
char
repeat_loop;
87
88
for
(repeat_loop = 0; repeat_loop < value_s; repeat_loop++)
89
delay_ms
(1000);
90
}
91
92
93
//************************************************************
94
// setQuartz function implementation
95
//************************************************************
96
97
void
setQuartz
(
unsigned
char
frequency) {
98
99
delay_quartz_frequency_value
= frequency;
100
101
}
102
LaurTec_PIC_libraries_v_3.1.1
src
delay.c
Generated on Mon Oct 21 2013 19:59:45 for PIC18 LaurTec Library by
1.8.3.1