ccmny

timeryzoladz

Jun 2nd, 2011
220
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.61 KB | None | 0 0
  1. #include <LPC21xx.H>
  2.  
  3.  #define mLED0 0x1 << 16
  4.  #define mLED1 0x1 << 17
  5.  #define mLED2 0x1 << 18
  6.  #define mLED3 0x1 << 19
  7.  #define mLED4 0x1 << 20
  8.  #define mLED5 0x1 << 21
  9.  
  10.  #define mKEY1 0x1 << 4
  11.  #define mKEY2 0x1 << 5
  12.  #define mKEY3 0x1 << 6
  13.  #define mKEY4 0x1 << 7
  14.  
  15. #define mCOUNTER_ENABLE   0x1
  16.  #define mCOUNTER_RESET    0x2
  17.  
  18.  #define mINTERRUPT_ON_MR0 0x1
  19.  #define mRESET_ON_MR0     0x2
  20.  
  21.  #define mR0_INTERRUPT     0x1
  22.  
  23.  enum KeyboardState {RELEASED, BUTTON_1, BUTTON_2, BUTTON_3, BUTTON_4};
  24.  enum StepArgument {LEFT, RIGHT};
  25.  
  26.  
  27.  void delay(int);
  28.  void ledInit(void);
  29.  void LedOn(unsigned char);
  30.  void KeyboardInit(void);
  31.  enum KeyboardState ReadKeyboard(void);
  32.  void Step(enum StepArgument);
  33.  void InitTimer(void);
  34.  void WaitOnTimer(unsigned int uiTime);
  35. void InitTimerMatch(unsigned int);
  36.  void WaitOnTimerMatch(void);
  37.  
  38.  int main()
  39.  {
  40.         unsigned char ucStepCounter;
  41.  
  42.         ucStepCounter = 0;
  43.  
  44.         ledInit();
  45.         KeyboardInit();
  46.  
  47.         InitTimerMatch(10000);
  48.         WaitOnTimerMatch();
  49.         T0TCR |= mCOUNTER_ENABLE;
  50.  
  51.  }
  52.  void WaitOnTimer(unsigned int uiTime){
  53.  
  54.         T0TCR |= mCOUNTER_RESET;
  55.         T0TCR &= ~mCOUNTER_RESET;
  56.         uiTime = uiTime * 15;
  57.         while(T0TC < uiTime){}
  58.  }
  59.  
  60. void InitTimerMatch(unsigned int iDelayTime){
  61.  
  62.         T0MR0 = iDelayTime * 15;
  63.         T0MCR |= (mRESET_ON_MR0 | mINTERRUPT_ON_MR0);
  64.  
  65.         T0TCR |= mCOUNTER_ENABLE;
  66.         T0TCR |= mCOUNTER_RESET;
  67.         T0TCR &= ~mCOUNTER_RESET;
  68.  
  69.  
  70.  }
  71.  
  72.  void WaitOnTimerMatch(void){
  73.  
  74.         while((T0IR & mR0_INTERRUPT) == 0){}
  75.  
  76.         T0IR = mR0_INTERRUPT;
  77.  
  78.  }
Advertisement
Add Comment
Please, Sign In to add comment