📄 pfkey_exp.c
字号:
#include <cdefBF561.h>
#include <ccblkfn.h>
#include <sys/exception.h>
#include "Exp_Config.h"
#include "sys_func.h"
#include "../sys_res.h"
/******************************************************************************************
* 函数名 : Init_Flags
* 函数功能 : 配置BF561的PF寄存器
* 说明 : PF各寄存器的介绍请参考ADI公司的
* 《ADSP-BF561 Blackfin Processor Hardware Reference》
* 14章节"Programmable Flags"
*******************************************************************************************/
void Init_PF_Key(void)
{
/*配置按键对应的PF输入使能寄存器,使之引脚输入使能,且不触发中断*/
*pFIO2_DIR &=~(KEY1|KEY2|KEY3);
*pFIO2_EDGE&=~(KEY1|KEY2|KEY3);
*pFIO2_POLAR&=~(KEY1|KEY2|KEY3);
*pFIO2_MASKA_C=(KEY1|KEY2|KEY3);
*pFIO2_MASKB_C=(KEY1|KEY2|KEY3);
*pFIO2_INEN|= (KEY1|KEY2|KEY3);
ssync();
}
/*******************************************************************************************
* 函数名 : PFKey_Exp
* 函数功能 : 轮询按键状态,发生变化改变对应LED状态
* 说明 :
********************************************************************************************/
void PFKey_Exp(void)
{
unsigned short pf_data;
int led = 0x00;
Init_PF_Key();
led=0;
while (1){
led=0;
pf_data = *pFIO2_FLAG_D; //读FIO1_FLAG_D寄存器里的值
if ((pf_data & KEY1)==0)
{
led|=(1<<0);
}
if ((pf_data & KEY2)==0)
{
led|=(1<<1);
}
if ((pf_data & KEY3)==0)
{
led|=(1<<2);
}
SetLED(led);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -