Subversion Repositories svnkaklik

Rev

Details | Last modification | View Log

Rev Author Line No. Line
151 kaklik 1
/*
2
    Copyright (C) 2004    John Orlando
3
 
4
   AVRcam: a small real-time image processing engine.
5
 
6
    This program is free software; you can redistribute it and/or
7
    modify it under the terms of the GNU General Public
8
    License as published by the Free Software Foundation; either
9
    version 2 of the License, or (at your option) any later version.
10
 
11
    This program is distributed in the hope that it will be useful,
12
    but WITHOUT ANY WARRANTY; without even the implied warranty of
13
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14
    General Public License for more details.
15
 
16
    You should have received a copy of the GNU General Public
17
    License along with this program; if not, write to the Free Software
18
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19
 
20
   For more information on the AVRcam, please contact:
21
 
22
   john@jrobot.net
23
 
24
   or go to www.jrobot.net for more details regarding the system.
25
*/
26
/***********************************************************
27
	Module Name: Utility.c
28
	Module Date: 04/13/2004
29
	Module Auth: John Orlando
30
 
31
	Description: This module provides a basic set of
32
	general purpose utilities that can be used by any
33
	module needing them.
34
 
35
    Revision History:
36
    Date        Rel Ver.    Notes
37
    4/10/2004      0.1     Module created
38
    6/30/2004      1.0     Initial release for Circuit Cellar
39
                           contest.
40
***********************************************************/
41
 
42
/*	Includes */
43
#include "CommonDefs.h"
44
 
45
/*  Local Variables */
46
 
47
/* 	Local Structures and Typedefs */
48
 
49
/*  Extern Variables */
50
 
51
/*  Definitions */
52
 
53
/***********************************************************
54
	Function Name: Utility_delay
55
	Function Description: This function provides a busy-wait
56
	delay for a specified number of milliseconds.
57
	Inputs:  numMs - the number of milliseconds to delay
58
	Outputs: none
59
	NOTES: The delay_loop_1 and delay_loop_2 functions found
60
	in avr/delay.h provide accurate 3 and 4 cycle delay loops
61
	if needed...this isn't really a millisecond, so DON'T
62
    depend on it for exact timing...
63
***********************************************************/	
64
void Utility_delay(unsigned short numMs)
65
{
66
	volatile unsigned short i=0,j=0;
67
#ifndef SIMULATION
68
	for (i=0; i<numMs; i++)
69
	{
70
		for (j=0; j<1000; j++)
71
		{
72
			asm volatile("nop"::);
73
		}
74
	}
75
#endif	
76
}
77
 
78