用混合编程实现两个LED交替闪烁
【摘要】
目录标题
要求C语言部分汇编部分资料部分
要求
LED是程序开发中最常用的状态指示设备。开发板上有两个用户可编程LED,他们直接与CPU的GPIO连接,低电平有效(点亮),通过对G口...
要求
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端口
文章来源: blog.csdn.net,作者:肥学,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/jiahuiandxuehui/article/details/124115014
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)