在线时间93 小时
UID13486
注册时间2014-9-1
NXP金币26
TA的每日心情 | 开心 2024-3-22 17:30 |
---|
签到天数: 7 天 [LV.3]偶尔看看II
高级会员
- 积分
- 920
- 最后登录
- 2024-4-18
|
测试一下按键,也遇到了xyzml坛友同样的问题,按键失灵,SW3按下无反应,万用表测按键已经失效,两个都换掉了。
/*
* key.h
*
* Created on: Jul 9, 2020
* Author: Haifeng
*/
#ifndef KEY_H_
#define KEY_H_
#define KEY_S2Init() PORT_Init(PTD, 4, 1, PORT_MODE_IN_PULL)
#define KEY_S2Read() PORT_PinRead(PTD, 4)
#define KEY_S3Init() PORT_Init(PTD, 5, 1, PORT_MODE_IN_PULL)
#define KEY_S3Read() PORT_PinRead(PTD, 5)
#define KEY_Init() do{ \
KEY_S2Init(); \
KEY_S3Init(); \
}while(0)
#endif /* KEY_H_ */
#include <hidef.h> /* for EnableInterrupts macro */
#include "derivative.h" /* include peripheral declarations */
unsigned char key_code,key_tri,key_cnt;
void DELAY_Ms(int tMs)
{
int tUs;
while(tMs--)
{
tUs = 250;
while(tUs --);
}
}
void KEY_Read(void)
{
unsigned char key_value = 0;
if(KEY_S2Read() == 0)
{
key_value |= 0x01;
}
if(KEY_S3Read() == 0)
{
key_value |= 0x02;
}
if(key_code != key_value)
{
key_code = key_value;
key_cnt = 0;
}
else if(key_cnt < 20)
{
key_cnt ++;
if((key_cnt == 10) &&
(key_code != 0))
{
key_tri = 1;
}
}
}
void main(void)
{
unsigned char i = 0x01;
key_code = 0;
key_tri = 0;
WDT_Init(10000);
DisableInterrupts;
/* include your code here */
LED_Init();
KEY_Init();
for(;;)
{
WDT_Clr(); /* feeds the dog */
KEY_Read();
if(key_tri != 0)
{
key_tri = 0;
if(key_code & 0x01) i++;
else if(key_code & 0x02) i--;
}
LED_Display(~i);
DELAY_Ms(10);
} /* loop forever */
/* please make sure that you never leave main */
}
|
|