Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <LPC21xx.H>
- #define mLED0 0x1 << 16
- #define mLED1 0x1 << 17
- #define mLED2 0x1 << 18
- #define mLED3 0x1 << 19
- #define mLED4 0x1 << 20
- #define mLED5 0x1 << 21
- #define mKEY1 0x1 << 4
- #define mKEY2 0x1 << 5
- #define mKEY3 0x1 << 6
- #define mKEY4 0x1 << 7
- #define mCOUNTER_ENABLE 0x1
- #define mCOUNTER_RESET 0x2
- #define mINTERRUPT_ON_MR0 0x1
- #define mRESET_ON_MR0 0x2
- #define mR0_INTERRUPT 0x1
- enum KeyboardState {RELEASED, BUTTON_1, BUTTON_2, BUTTON_3, BUTTON_4};
- enum StepArgument {LEFT, RIGHT};
- void delay(int);
- void ledInit(void);
- void LedOn(unsigned char);
- void KeyboardInit(void);
- enum KeyboardState ReadKeyboard(void);
- void Step(enum StepArgument);
- void InitTimer(void);
- void WaitOnTimer(unsigned int uiTime);
- void InitTimerMatch(unsigned int);
- void WaitOnTimerMatch(void);
- int main()
- {
- unsigned char ucStepCounter;
- ucStepCounter = 0;
- ledInit();
- KeyboardInit();
- InitTimerMatch(10000);
- WaitOnTimerMatch();
- T0TCR |= mCOUNTER_ENABLE;
- }
- void WaitOnTimer(unsigned int uiTime){
- T0TCR |= mCOUNTER_RESET;
- T0TCR &= ~mCOUNTER_RESET;
- uiTime = uiTime * 15;
- while(T0TC < uiTime){}
- }
- void InitTimerMatch(unsigned int iDelayTime){
- T0MR0 = iDelayTime * 15;
- T0MCR |= (mRESET_ON_MR0 | mINTERRUPT_ON_MR0);
- T0TCR |= mCOUNTER_ENABLE;
- T0TCR |= mCOUNTER_RESET;
- T0TCR &= ~mCOUNTER_RESET;
- }
- void WaitOnTimerMatch(void){
- while((T0IR & mR0_INTERRUPT) == 0){}
- T0IR = mR0_INTERRUPT;
- }
Advertisement
Add Comment
Please, Sign In to add comment