This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/MSP430G2553:键盘上的电弧问题

Guru**** 2576215 points
Other Parts Discussed in Thread: MSP430G2553

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/699231/ccs-msp430g2553-problem-is-electric-arcing-on-the-keypad

器件型号:MSP430G2553

工具/软件:Code Composer Studio

你(们)好 我 使用 MSP430G2553进行了键盘操作 。 但我在视频中提到了一个问题。 如果我按下数字5按钮(或者7、9或3...),它应该会像 LED (0101)一样亮起,但可以在同一列中多次激活其它 LED。 我想 当我按键时会出现电弧。所以,键值会发生变化。我如何解决这个问题?。抱歉我的英语不好

视频链接位于  www.youtube.com/watch

这是我的代码

#include

空延迟(空)

unsigned int i=2500;
while (i -);


unsigned int tus=50;


void Refresh_Keypad (void)

/***1.k Ω satır iken ****
P1OUT|=BIT1;

delay();
if (P1IN&BIT4)

TS=0;

否则 if (P1IN&BIT7)

TS=1;

否则 if (P2IN&BIT0)

TS=2;

否则 if (P2IN&BIT1)

TS=3;

//**ikinci satır aktif iken*****
P1OUT &=~BIT1;
P1OUT|=BIT2;
delay();

if (P1IN&BIT4)

TS=4;

否则 if (P1IN&BIT7)

TS=5;

否则 if (P2IN&BIT0)

TS=6;

否则 if (P2IN&BIT1)

TS=7;

//üçüncü satır……………………………………………………
P1OUT &=~BIT2;
P1OUT |=BIT3;
delay();

if (P1IN&BIT4)

TS=8;

否则 if (P1IN&BIT7)

TS=9;

否则 if (P2IN&BIT0)

TS=10;

否则 if (P2IN&BIT1)

TS=11;

//**dorduncu satır aktif iken*****

P1OUT &=~BIT3;
P1OUT |=BIT4;
delay();

if (P1IN&BIT4)

TS=12;


否则 if (P1IN&BIT7)

TS=13;


否则 if (P2IN&BIT0)

TS=14;

否则 if (P2IN&BIT1)

TS=15;

P1OUT &=~BIT4;

void main (void)

WDTCTL = WDTPW + WDTHOLD;

DCOCTL=CALDCO_1MHz;
BCSCTL1=CALBC1_1MHZ;
P1OUT &=~(BIT1 + BIT2 + BIT3 + BIT4);

P1DIR |=(BIT1+BIT2+BIT3+BIT4);
P1DIR &=~(BIT5+BIT7);

P2DIR =~(BIT0+BIT1);
P2OUT =~(BIT2+BIT3+BIT4+BIT4);

P2DIR|=BIT2+BIT3+BIT4+BIT4;

P2OUT &=~(BIT2+BIT3+BIT4+BIT4);


for (;;)

refresh_Keypad();
if (tus!=50)


TS=4*Tus;   //RLAe2e.ti.com/.../KEYPAD.c        
P2OUT=0x00;
P2OUT|=Tus;


TS=50;