tuandanh.bk10
Trứng gà
các anh chị cho em hỏi tí, em sử dụng ngắt ngoài để đếm xung (encoder) tại chân P1.5, mỗi khi có xung lên thì biến i lên 1 đồng thời đèn P1.0 đổi trạng thái. nhưng có điều lạ là kể cả khi em không cấp xung thì mà chạm tay (hay 1 vật kim loại j khác) vào chân P1.5 thì biến i và đèn led vẫn nhấp nháy với tần số rất cao mà không biết vì sao. với 1 cái nữa là khi em đặt break point để xem giá trị biến i thì đèn led với biến i có tăng nhưng chậm hơn ban đầu.
đây là code của em, có j sai sót mong mọi người góp ý giúp. em xin cảm ơn![2cool_burn_joss_stick :2cool_burn_joss_stick: :2cool_burn_joss_stick:](https://bachngocsach.com/forum/styles/default/xenforo/smilies/1/vang/2cool_burn_joss_stick.gif)
![2cool_burn_joss_stick :2cool_burn_joss_stick: :2cool_burn_joss_stick:](https://bachngocsach.com/forum/styles/default/xenforo/smilies/1/vang/2cool_burn_joss_stick.gif)
đây là code của em, có j sai sót mong mọi người góp ý giúp. em xin cảm ơn
![2cool_burn_joss_stick :2cool_burn_joss_stick: :2cool_burn_joss_stick:](https://bachngocsach.com/forum/styles/default/xenforo/smilies/1/vang/2cool_burn_joss_stick.gif)
![2cool_burn_joss_stick :2cool_burn_joss_stick: :2cool_burn_joss_stick:](https://bachngocsach.com/forum/styles/default/xenforo/smilies/1/vang/2cool_burn_joss_stick.gif)
Code:
#include <msp430g2553.h>
unsigned int i=0;
void main(void)
{
WDTCTL =WDTHOLD +WDTPW;
BCSCTL1 = CALBC1_1MHZ; // Set DCO
DCOCTL = CALDCO_1MHZ;
// set P1.0 GPIO
P1SEL &=~BIT0;
P1SEL2 &=~BIT0;
P1DIR |= BIT0;
P1OUT &= ~BIT0;
//set P1.5 INPUT Pulse
P1REN |= BIT5; // dien tro keo len
P1IE |= BIT5; //interrupt enable
P1IES &= ~BIT5; // interrupt low-high
P1IFG &= ~BIT5; // set interrupt flag to 0 in the beginning
_BIS_SR(LPM4_bits + GIE);
}
#pragma vector = PORT1_VECTOR
__interrupt void PORT1 (void)
{
i =i+1;
P1OUT ^= BIT0;
P1IFG &= ~BIT5;
}