00001 /* 00002 Object Oriented Mobile Robot Model (OOMRM) C++ Library Copyright (C) 2002-2005 Derek Jones 00003 00004 This library is free software; you can redistribute it and/or 00005 modify it under the terms of the GNU Lesser General Public 00006 License as published by the Free Software Foundation; either 00007 version 2.1 of the License, or (at your option) any later version. 00008 00009 This library is distributed in the hope that it will be useful, 00010 but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 Lesser General Public License for more details. 00013 00014 You should have received a copy of the GNU Lesser General Public 00015 License along with this library; if not, write to the Free Software 00016 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00017 00018 $Id: oprocessor.h,v 1.1.1.1 2006/05/11 05:22:41 derek Exp $ 00019 */ 00020 00021 #ifndef _H_PROCESSOR_H 00022 #define _H_PROCESSOR_H 00023 #include "sim_regs.h" 00027 enum CLOCK { MH8=8389, MH16=16777, MH25=25166 }; 00034 enum STATUS { TEST=1, RESET=2, LOSS_OF_CLOCK=4, HALT_MONITOR=16, WATCHDOG=32, POWERUP=64, EXTERNAL=128 }; 00035 #ifdef __cplusplus 00036 00079 class oProcessor 00080 { 00081 public: 00082 oProcessor(); 00084 00090 oProcessor(CLOCK); 00091 static void system_clock(CLOCK); 00092 static CLOCK system_clock(void); 00093 static bool reset_status(STATUS); 00094 static SIM_T* SIM; 00095 protected: 00096 oProcessor(const oProcessor&); // copy constructor illegal except subclass 00097 oProcessor& operator= (const oProcessor&); // assignment illegal except on subclass 00098 private: 00099 void init(void); 00100 // static bool _init; 00101 }; 00102 #endif 00103 #endif
1.3