Quantcast
Channel: MSP 低功耗微控制器论坛 - 最近的话题
Viewing all articles
Browse latest Browse all 3634

MSP430FR4133内部自带触摸功能,没有可以调节灵敏度的寄存器?

$
0
0

请技术支持回答。我用的单片机是msp430fr4133  ,它内部自带了 触摸功能的模块。我按照官网的例程烧写进去,感觉灵敏度不够。可是没有调节灵敏度的寄存器啊。我的触摸屏串了一个电阻直接接到单片机的触摸引脚了。


while (1)
{
j = KEY_LVL;
key_pressed = 0; // Assume no keys are pressed
measure_count(); // Measure all sensors

for (i = 0; i<NUM_SEN; i++)
{
delta_cnt[i] = base_cnt[i] - meas_cnt[i]; // Calculate delta: c_change

/* Handle baseline measurment for a base C decrease*/
if (delta_cnt[i] < 0) // If negative: result increased
{ // beyond baseline, i.e. cap dec
base_cnt[i] = (base_cnt[i]+meas_cnt[i]) >> 1; // Re-average quickly
delta_cnt[i] = 0; // Zero out for pos determination
}
if (delta_cnt[i] > j) // Determine if each key is pressed
{ // per a preset threshold
key_press[i] = 1; // Specific key pressed
j = delta_cnt[i];
key_pressed = i+1; // key pressed
}
else
key_press[i] = 0;
}

/* Delay to next sample */
WDTCTL = WDT_delay_setting; // WDT, ACLK, interval timer

/* Handle baseline measurment for a base C increase*/
if (!key_pressed) // Only adjust baseline down
{ // if no keys are touched
for (i = 0; i<NUM_SEN; i++)
base_cnt[i] = base_cnt[i] - 1; // Adjust baseline down, should be
} // slow to accomodate for genuine
pulse_LED(); // changes in sensor C

__bis_SR_register(LPM3_bits);
}

void measure_count(void)
{
unsigned char i;
TA0CTL = TASSEL_3 + MC_2; // TACLK, cont mode
TA0CCTL1 = CM_3 + CCIS_2 + CAP; // Pos&Neg,GND,Cap

for (i = 0; i<NUM_SEN; i++)
{
/*Configure Ports for relaxation oscillator*/
pinosc_channel_select(5, electrode_bit[i]);

/*Setup Gate Timer*/
WDTCTL = WDT_meas_setting; // WDT, ACLK, interval timer
TA0CTL |= TACLR; // Clear Timer_A TAR
__bis_SR_register(LPM0_bits+GIE); // Wait for WDT interrupt
TA0CCTL1 ^= CCIS0; // Create SW capture of CCR1
meas_cnt[i] = TA0CCR1; // Save result
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
CAPSIO0CTL = 0;
}
}

以上是官网的例子,也请解释下。


Viewing all articles
Browse latest Browse all 3634

Trending Articles