LED TICK驱动

本文介绍了LPC32xx硬件资源中LED2(GPO_06)的驱动实现方法及TICK功能的代码实现。通过具体的代码示例展示了如何配置GPIO作为输出、如何控制LED的亮灭以及如何实现周期性的TICK功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

硬件资源

    LED2——GPO_06控制。
 

移植代码GPIO底层API

   GPIO相关底层API在arch/arm/mach-lpc32xx/include/mach/lpc32xx_gpio.h文件中实现。
    使用范例:
536     /* Set LED GPIO as an output */
537     __raw_writel(OUTP_STATE_GPO(1), GPIO_P2_DIR_SET(GPIO_IOBASE));
 
292     /* Enable the backlight */
293 #if defined (CONFIG_SMARTARM3250_QVGA_PANEL_V1_00)
294 __raw_writel(OUTP_STATE_GPO(4), GPIO_P3_OUTP_CLR(GPIO_IOBASE));
295 #elif defined (CONFIG_SMARTARM3250_QVGA_PANEL_V1_01)
296     __raw_writel(OUTP_STATE_GPO(4), GPIO_P3_OUTP_SET(GPIO_IOBASE));
297 #endif
 

LED驱动

   GPO_06是功能复用引脚,GPO_06和LCDVD[18]。选择寄存器p3_mux_clr[6],置位为GPO_06:
    代码:__raw_writel((1<<6), GPIO_P3_MUX_CLR(GPIO_IOBASE);
   
    拉高拉低GPO_06,寄存器:p3_outp_set和p3_outp_clr,都是bit6:
    代码:__raw_writel(OUTP_STATE_GPO(6), GPIO_P3_OUTP_SET(GPIO_IOBASE));
             __raw_writel(OUTP_STATE_GPO(6), GPIO_P3_OUTP_CLR(GPIO_IOBASE));
 
 
    GPIO_IOBASE的定义:
./arch/arm/mach-lpc32xx/arch-lpc32xx.c:#define GPIO_IOBASE io_p2v(GPIO_BASE)
./arch/arm/mach-lpc32xx/sys-lpc32xx.h:#define GPIO_IOBASE io_p2v(GPIO_BASE)
 

TICK实现代码

    arch/arm/mach-lpc32xx/sys-lpc32xx.h文件:
69 #elif defined (CONFIG_SMARTARM3250_ENABLE_LED_TICK)
70 #define LEDTICK { \
71     static int blink = 0; \
72     static int tick1 = 0; \
73     tick1++; \
74     if (tick1 > HZ) \
75     { \
76         tick1 = 0; \
77         blink = 1 - blink; \
78         if (blink == 0) { \
79             __raw_writel(OUTP_STATE_GPO(6), GPIO_P3_OUTP_SET(GPIO_IOBASE)); \
80         } \
81         else { \
82             __raw_writel(OUTP_STATE_GPO(6), GPIO_P3_OUTP_CLR(GPIO_IOBASE)); \
83         } \
84     } \
85 }
86 #else

转载于:https://www.cnblogs.com/elect-fans/archive/2012/04/28/2475149.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值