用混合编程实现两个LED交替闪烁
Posted 肥学
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用混合编程实现两个LED交替闪烁相关的知识,希望对你有一定的参考价值。
目录标题
要求
LED是程序开发中最常用的状态指示设备。开发板上有两个用户可编程LED,他们直接与CPU的GPIO连接,低电平有效(点亮),通过对G口的操作控制CPU板左下角的LED1和LED2实现轮流闪烁。详细的资源用如下表。
LED1
GPIOLIG口的第8位指示
LED2
GPIOIIG口的第9位指示
C语言部分
#define rGPGCON (*(volatile unsigned *)0x56000060)
#define rGPGDAT (*(volatile unsigned *)0x56000064)
#define rGPGUP (*volatile unsigned *)0x56000068)
void Led_port_init(void);
#define LED1_ON ~(1<<8)
#define LED2_ON ~(1<<9)
#define LED1_OFF (1<<8)
#define LED2_OFF (1<<9)
/*************************************************
Function name: delay
Parameter : times
Description : 延时函数
Return : void
Argument : void
Autor & date :
**************************************************/
void delay(int times)
int i;
for(;times>0;times--)
for(i=0;i<400;i++);
/*************************************************
Function name: Main
Parameter : void
Description : 主功能函数
Return : void
Argument : void
Autor & date :
**************************************************/
int Main()
Led_port_init();
while(1)
/* 1亮2灭 */
rGPGDAT = rGPGDAT&(LED1_ON)|(LED2_OFF);
delay(10000);
/* 1灭2亮 */
rGPGDAT = rGPGDAT|(LED1_OFF)&(LED2_ON);
delay(10000);
/*************************************************
Function name: Led_port_init
Parameter : void
Description : mini2440开发板有4个引脚连接了LED发光
二极管,分别是GPB5--LED1,GPB6—LED2
GPB7--LED3,GPB8--LED4,该函数的作用
是对其个引脚进行初始化。
Return : void
Argument : void
Autor & date : Daniel
**************************************************/
void Led_port_init(void)
/*设置GPG8-GPG9为输出端口*/
rGPGCON &= ~((3<<16)|(3<<18));
/*
11 0000 0000 0000 0000
1100 0000 0000 0000 0000
1111 0000 0000 0000 0000
0000 1111 1111 1111 1111
*/
rGPGCON |= (1<<16)|(1<<18);
/*
1 0000 0000 0000 0000
100 0000 0000 0000 0000
0101 0000 0000 0000 0000
*/
汇编部分
AREA Init,CODE,READONLY;
ENTRY;
EXPORT _ENTRY ;
_ENTRY
ResetEntry
MOV sp,#0x0c700000 ;
import Main ;
BL Main ;
end
资料部分
gpio的gpg端口
以上是关于用混合编程实现两个LED交替闪烁的主要内容,如果未能解决你的问题,请参考以下文章
使用Arduino SCoop库实现三色灯交替闪烁并伴有警报声500-750HZ