LPC1768 GPIO中断实验 八个LED轮流点亮100毫秒

发布者:SereneVoyage最新更新时间:2019-11-30 来源: 51hei关键字:LPC1768  GPIO中断  LED轮流点亮 手机看文章 扫描二维码
随时随地手机看文章

路虎LPC1768开发板 GPIO实验


这个例程是将路虎开发板上的八个LED轮流点亮100毫秒,

采用SYStick 定时器中断方式做延时  系统时钟设置在100MHZ

使用时,短路JP8跳线使能LED。


单片机源程序如下:

/**************************************************************************//**

* @file     main.c

* @brief    CMSIS Cortex-M3 GPIO example

*           a LED using CM3 SysTick

* @version  V1.30

* @date     24. Jan 2010

*

* @note

* Copyright (C) 2009 ARM Limited. All rights reserved.

*

* @par

* ARM Limited (ARM) is supplying this software for use with Cortex-M 

* processor based microcontrollers.  This file can be freely distributed 

* within development tools that are supporting such ARM based processors. 

*

* @par

* THIS SOFTWARE IS PROVIDED "AS IS".  NO WARRANTIES, WHETHER EXPRESS, IMPLIED

* OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF

* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.

* ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR

* CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.

*

******************************************************************************/


#include "LPC17xx.h"



volatile uint32_t msTicks;                            /* counts 1ms timeTicks */

/*----------------------------------------------------------------------------

  SysTick_Handler

*----------------------------------------------------------------------------*/

void SysTick_Handler(void) {

  msTicks++;                        /* increment counter necessary in Delay() */

}


/*------------------------------------------------------------------------------

  delays number of tick Systicks (happens every 1 ms)

*------------------------------------------------------------------------------*/

__INLINE static void Delay (uint32_t dlyTicks) {

  uint32_t curTicks;


  curTicks = msTicks;

  while ((msTicks - curTicks) < dlyTicks);

}


/*------------------------------------------------------------------------------

  configer LED pins

*------------------------------------------------------------------------------*/

__INLINE static void LED_Config(void) {


  LPC_GPIO2->FIODIR = 0x000000ff;               /* LEDs PORT2 are Output */

  LPC_GPIO0->FIODIR = 0x00200000; 

  LPC_GPIO0->FIOPIN |=  0x00200000; 

}


/*------------------------------------------------------------------------------

  Switch on LEDs

*------------------------------------------------------------------------------*/

__INLINE static void LED_On (uint32_t led) {


  LPC_GPIO2->FIOPIN |=  (led);                  /* Turn On  LED */

}


/*------------------------------------------------------------------------------

  Switch off LEDs

*------------------------------------------------------------------------------*/

__INLINE static void LED_Off (uint32_t led) {


  LPC_GPIO2->FIOPIN &= ~(led);                  /* Turn Off LED */

}


/*----------------------------------------------------------------------------

  MAIN function

*----------------------------------------------------------------------------*/

int main (void) {

  uint8_t  location;

        

  if (SysTick_Config(SystemCoreClock / 1000)) { /* Setup SysTick Timer for 1 msec interrupts  */

    while (1);                                  /* Capture error */

  }

  

  LED_Config();                             


  while(1) 

  {

          LED_On (0xff);

        Delay (500);

……………………


关键字:LPC1768  GPIO中断  LED轮流点亮 引用地址:LPC1768 GPIO中断实验 八个LED轮流点亮100毫秒

上一篇:LPC2148的ADC多通道数据采集程序
下一篇:用ARM点亮一个led并闪烁

推荐阅读最新更新时间:2024-11-05 15:52

LPC1768时钟详解
LPC1768有三个独立的时钟源,可以通过软件进行配置。MCU上电并成功复位后,内部的RC振荡器开始起振,并以此为工作频率去读取内部ROM区的代码来执行初始化工作,其中就包括对系统时钟的配置(在文件system_LPC17xx.c中)。 系统时钟配置的过程如下: LPC1700系列Cortex-M3微控制器包括3个独立的振荡器,它们分别为主振荡器(通常指外界晶振)、内部RC振荡器和RTC振荡器。每个振荡器可根据特定的应用要求来选用(通过配置时钟源选择寄存器CLKSRCSEL),寄存器配置如下
[单片机]
<font color='red'>LPC1768</font>时钟详解
LPC1768之外部中断
/************************************************************************************* * main.c: the main file * NXP -- LPC1768 * * * Author : light * Date : 2012-4-22 * * Email : lightwu@hotmail.com ************************************************************************************
[单片机]
STM8L51X gpio中断
本文采用官方的库函数接口实现STM8L51X gpio中断 STM8L51X的中断向量入口函数都放在stm8l51x_it.c里面。 不同的中断对应的中断号如下(在stm8l51x_itc.h里面): typedef enum { FLASH_IRQn = (uint8_t)1, /*! Flashinterrupt */ DMA1_CHANNEL0_1_IRQn = (uint8_t)2, /*! DMAChannels 0/1 */ DMA1_CHANNEL2_3_IRQn = (uint8_t)3, /*! DMACha
[单片机]
lpc1768usb使用-配置
#ifndef __USBCFG_H__ #define __USBCFG_H__ //#define USB_IF_NUM 1 #define USB_MAX_PACKET0 64 #define USB_DMA_EP 0x00000000 //尽量不要是能太多时间 //这里每一个事件都代表着一个回调函数,使能了该事件就需要实现相应的回调函数 #define USB_EP_EVENT 0x0003 //哪些端点需要实现中断处理函数,一位代表一个端点 #define USB_CONFIGURE_EVENT 1 //usb配置事件 #define USB_HID_IF_NUM
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved