Subversion Repositories svnkaklik

Rev

Rev 409 | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log

Rev 409 Rev 410
1
#ifndef I2CINTERFACE_H
1
#ifndef I2CINTERFACE_H
2
#define I2CINTERFACE_H
2
#define I2CINTERFACE_H
3
 
3
 
4
/*
4
/*
5
    Copyright (C) 2004    John Orlando
5
    Copyright (C) 2004    John Orlando
6
    
6
    
7
   AVRcam: a small real-time image processing engine.
7
   AVRcam: a small real-time image processing engine.
8
 
8
 
9
    This program is free software; you can redistribute it and/or
9
    This program is free software; you can redistribute it and/or
10
    modify it under the terms of the GNU General Public
10
    modify it under the terms of the GNU General Public
11
    License as published by the Free Software Foundation; either
11
    License as published by the Free Software Foundation; either
12
    version 2 of the License, or (at your option) any later version.
12
    version 2 of the License, or (at your option) any later version.
13
 
13
 
14
    This program is distributed in the hope that it will be useful,
14
    This program is distributed in the hope that it will be useful,
15
    but WITHOUT ANY WARRANTY; without even the implied warranty of
15
    but WITHOUT ANY WARRANTY; without even the implied warranty of
16
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
17
    General Public License for more details.
17
    General Public License for more details.
18
 
18
 
19
    You should have received a copy of the GNU General Public
19
    You should have received a copy of the GNU General Public
20
    License along with this program; if not, write to the Free Software
20
    License along with this program; if not, write to the Free Software
21
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
21
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
22
 
22
 
23
   For more information on the AVRcam, please contact:
23
   For more information on the AVRcam, please contact:
24
 
24
 
25
   john@jrobot.net
25
   john@jrobot.net
26
 
26
 
27
   or go to www.jrobot.net for more details regarding the system.
27
   or go to www.jrobot.net for more details regarding the system.
28
*/
28
*/
29
/***********************************************************
29
/***********************************************************
30
	Module Name: I2CInterface.h
30
	Module Name: I2CInterface.h
31
	Module Date: 04/10/2004                         
31
	Module Date: 04/10/2004                         
32
	Module Auth: John Orlando
32
	Module Auth: John Orlando
33
	
33
	
34
	Description: This module provides the external interface 
34
	Description: This module provides the external interface 
35
	to the I2C hardware available on the mega8.  It also 
35
	to the I2C hardware available on the mega8.  It also 
36
	contains defines and declarations for how the I2C 
36
	contains defines and declarations for how the I2C 
37
	interface will be used in this system.
37
	interface will be used in this system.
38
    
38
    
39
    Revision History:
39
    Revision History:
40
    Date        Rel Ver.    Notes
40
    Date        Rel Ver.    Notes
41
    4/10/2004      0.1     Module created
41
    4/10/2004      0.1     Module created
42
    6/30/2004      1.0     Initial release for Circuit Cellar
42
    6/30/2004      1.0     Initial release for Circuit Cellar
43
                           contest.
43
                           contest.
44
***********************************************************/
44
***********************************************************/
45
	
45
	
46
#include "CommonDefs.h"	
46
#include "CommonDefs.h"	
47
	
47
	
48
/*  Structures and Typedefs */
48
/*  Structures and Typedefs */
49
typedef struct
49
typedef struct
50
{
50
{
51
	unsigned char configReg;
51
	unsigned char configReg;
52
	unsigned char data;
52
	unsigned char data;
53
} i2cCmd_t;
53
} i2cCmd_t;
54
	
54
	
55
/*  Defines   */
55
/*  Defines   */
56
/*  The I2C interface will run at 100 KHz (the OV6620 can
56
/*  The I2C interface will run at 100 KHz (the OV6620 can
57
	support up to 400 KHz, but this hasn't been tested) */
57
	support up to 400 KHz, but this hasn't been tested) */
58
#define I2C_SPEED 100000
58
#define I2C_SPEED 100000
59
 
59
 
60
 
60
 
61
/*  External Function Prototypes */
61
/*  External Function Prototypes */
62
extern void  I2CInt_init(void);
62
extern void  I2CInt_init(void);
63
extern void  I2CInt_writeData(unsigned char address, unsigned char *data, unsigned char bytes);
63
extern void  I2CInt_writeData(unsigned char address, unsigned char *data, unsigned char bytes);
64
extern void  I2CInt_readData(unsigned char address, unsigned char *data, unsigned char bytes);
64
extern void  I2CInt_readData(unsigned char address, unsigned char *data, unsigned char bytes);
65
extern bool_t I2CInt_isI2cBusy(void);
65
extern bool_t I2CInt_isI2cBusy(void);
66
 
66
 
67
 
67
 
68
 
68
 
69
#endif	
69
#endif	
70
 
70