📄 blinky.c
字号:
/******************************************************************************/
/* BLINKY.C: LED Flasher */
/******************************************************************************/
/* This file is part of the uVision/ARM development tools. */
/* Copyright (c) 2008 Keil Software. All rights reserved. */
/* This software may only be used under the terms of a valid, current, */
/* end user licence from KEIL for a compatible version of KEIL software */
/* development tools. Nothing else gives you the right to use this software. */
/******************************************************************************/
#include "LPC17xx.H" /* LPC17xx definitions */
#define LED_NUM 8 /* Number of user LEDs */
const int led_mask[] = { 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80 };
volatile unsigned long SysTickCnt; /* SysTick Counter */
void SysTick_Handler (void) { /* SysTick Interrupt Handler (1ms) */
SysTickCnt++;
}
void Delay (unsigned long tick) { /* Delay Function */
unsigned long systickcnt;
systickcnt = SysTickCnt;
while ((SysTickCnt - systickcnt) < tick);
}
int main (void) { /* Main Program */
int num = -1;
int dir = 1;
SystemInit();
SysTick_Config(SystemFrequency/1000 - 1); /* Generate interrupt each 1 ms */
GPIO2->FIODIR = 0xFF; /* LEDs defined as Output */
for (;;) { /* Loop forever */
/* Calculate 'num': 0,1,...,LED_NUM-1,LED_NUM-1,...,1,0,0,... */
num += dir;
if (num == LED_NUM) { dir = -1; num = LED_NUM-1; }
else if (num < 0) { dir = 1; num = 0; }
GPIO2->FIOPIN &= ~led_mask[num];
Delay(500); /* Delay 500ms */
GPIO2->FIOPIN |= led_mask[num];
Delay(500); /* Delay 500ms */
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -