【LV13 DAY16 轮询与中断】

发布时间:2024年01月13日

在这里插入图片描述

轮询实现按键实验

#include "exynos_4412.h"

int main()
{
	//GPX1_1设置为输入模式//
	GPX1.CON=GPX1.CON & (~ (0XF<<4));
	while(1)
	{
	if(!(GPX1.DAT&(1<<1)))
	{
	printf("key pressed\n");
	while(!(GPX1.DAT&(1<<1)));
	}

	else
	{

	
	}

	}
	return 0;
}

作业:



#include "exynos_4412.h"

int main()

{

	//GPX1_1设置为输入模式//

	GPX1.CON = GPX1.CON & (~ (0XF<<4));

	//GPX2CON设置为输出模式//

	GPX2.CON = GPX2.CON & (~(0XF << 28)) |(0X1 << 28);

	int flag=0;

	while(1)
	{

	if(!(GPX1.DAT&(1<<1)))
	{	
		flag=~flag;
	while(!(GPX1.DAT&(1<<1)));
	}

	if(flag)	

	{

	//LED2亮//

	//printf("key pressed\n");

	GPX2.DAT = GPX2.DAT | (1<<7);

	}

	else 

	{

		//LED2熄灭
	GPX2.DAT=GPX2.DAT & (~(1<<7));
	}
	}
	return 0;
}
#include "exynos_4412.h"

int main()

{

	//将GPX1_1设置为中断功能//

	GPX_1.CON=GPX_1.CON | (0xF << 4);



	//设置GPX_1中断触发模式---下降沿触发//

	EXT_INT41_CON=EXT_INT41_CON & (~(0x7<<4)) |(0x2<<4);



	//使能GPX1_1---开启中断模式//

	EXT_INT41_MASK=EXT_INT41_MASK & (~(1<<1));

	return 0;

}
文章来源:https://blog.csdn.net/m0_46112340/article/details/135547859
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。