init.h

Go to the documentation of this file.
00001 /*      init.h
00002 
00003         Copyright 2008 Fred Cooke
00004 
00005         This file is part of the FreeEMS project.
00006 
00007         FreeEMS software is free software: you can redistribute it and/or modify
00008         it under the terms of the GNU General Public License as published by
00009         the Free Software Foundation, either version 3 of the License, or
00010         (at your option) any later version.
00011 
00012         FreeEMS software is distributed in the hope that it will be useful,
00013         but WITHOUT ANY WARRANTY; without even the implied warranty of
00014         MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00015         GNU General Public License for more details.
00016 
00017         You should have received a copy of the GNU General Public License
00018         along with any FreeEMS software.  If not, see <http://www.gnu.org/licenses/>.
00019 
00020         We ask that if you make any changes to this file you send them upstream to us at admin@diyefi.org
00021 
00022         Thank you for choosing FreeEMS to run your engine! */
00023 
00024 
00025 /* Header file multiple inclusion protection courtesy eclipse Header Template   */
00026 /* and http://gcc.gnu.org/onlinedocs/gcc-3.1.1/cpp/ C pre processor manual              */
00027 #ifndef FILE_INIT_H_SEEN
00028 #define FILE_INIT_H_SEEN
00029 
00030 #ifdef INIT_C
00031 #define EXTERN
00032 #else
00033 #define EXTERN extern
00034 #endif
00035 
00036 
00037 /* Other function declarations are private and present in the C         */
00038 /* source file purely to assign them to a particular memory region.     */
00039 EXTERN void init(void) FPAGE_FE;
00040 
00041 
00042 /* Various masks and values used for initialising the contents of control registers.    */
00043 /* For information on how these are being used, try this link :                                                 */
00044 /* http://www.vipan.com/htdocs/bitwisehelp.html                                                                                 */
00045 
00046 
00047 // PLL control values
00048 #define PLLLOCK                 0x08 /* Mask for checking to see when the PLL loop is locked onto its target */
00049 #define PLLSELOFF               0x7F /* Mask for switching to base external OSCCLK clock 0b_0111_1111 */
00050 #define PLLSELON                0x80 /* Mask for switching to internally multiplied PLL clock 0b_1000_0000 */
00051 #define PLLOFF                  0xBF /* Mask for turning the PLLON bit to ZERO 0b_1011_1111, IE, turning PLL off */
00052 #define PLLON                   0x40 /* Mask for setting PLLON bit to ONE  0b_0100_0000, IE, turning PLL on */
00053 #define PLLDIVISOR              0x03 /* Input crystal frequency is divided by this number */
00054 #define PLLMULTIPLIER   0x09 /* The result of the above is multiplied by this number to give the bus frequency */
00055 
00056 // TODO define other macros such that raw values aren't used in the code
00057 
00058 #undef EXTERN
00059 
00060 #else
00061         /* let us know if we are being untidy with headers */
00062         #warning "Header file INIT_H seen before, sort it out!"
00063 /* end of the wrapper ifdef from the very top */
00064 #endif

Generated on Mon Dec 22 21:29:18 2008 for freeems by  doxygen 1.5.2