📄 structure.c
字号:
//******************************************************************************
// RO_PINOSC_TA_WDTp example with the MSP430G2452
// threshold and maxResponse values must be updated for electrode design,
// system clock settings, selection of gate measurement source, and
// accumulation cycles
//******************************************************************************
#include "structure.h"
//PinOsc Volume down P2.2
const struct Element volume_down = {
.inputPxselRegister = (unsigned char *)&P2SEL,
.inputPxsel2Register = (unsigned char *)&P2SEL2,
.inputBits = BIT2,
// measured for a 1Mhz SMCLK
.maxResponse = 121+655, // actual measure was 980
.threshold = 121
};
//PinOsc forward right P2.3
const struct Element right = {
.inputPxselRegister = (unsigned char *)&P2SEL,
.inputPxsel2Register = (unsigned char *)&P2SEL2,
.inputBits = BIT3,
// 1Mhz SMCLK
.maxResponse = 113+655,
.threshold = 113
};
//PinOsc Volume up, P2.4
const struct Element volume_up = {
.inputPxselRegister = (unsigned char *)&P2SEL,
.inputPxsel2Register = (unsigned char *)&P2SEL2,
.inputBits = BIT4,
// 1Mhz SMCLK
.maxResponse = 118+655,
.threshold = 118
};
//PinOsc reverse left P2.1
const struct Element left = {
.inputPxselRegister = (unsigned char *)&P2SEL,
.inputPxsel2Register = (unsigned char *)&P2SEL2,
.inputBits = BIT1,
// 1Mhz SMCLK
.maxResponse = 111+655,
.threshold = 111
};
//PinOsc Wheel: middle button P2.5
const struct Element middle_element = {
.inputPxselRegister = (unsigned char *)&P2SEL,
.inputPxsel2Register = (unsigned char *)&P2SEL2,
.inputBits = BIT5,
// When using an abstracted function to measure the element
// the 100*(maxResponse - threshold) < 0xFFFF
// ie maxResponse - threshold < 655
.maxResponse = 350+655,
.threshold = 350
};
//PinOsc proximity: P2.0
const struct Element proximity_element = {
.inputPxselRegister = (unsigned char *)&P2SEL,
.inputPxsel2Register = (unsigned char *)&P2SEL2,
.inputBits = BIT0,
.maxResponse = 200,
.threshold = 130
};
//*** Sensor *******************************************************/
// This defines the grouping of sensors, the method to measure change in
// capacitance, and the function of the group
const struct Sensor wheel =
{
.halDefinition = RO_PINOSC_TA0_WDTp,
.numElements = 4,
.points = 16,
.sensorThreshold = 75,
.baseOffset = 0,
// Pointer to elements
.arrayPtr[0] = &volume_up, // point to first element
.arrayPtr[1] = &right, // point to first element
.arrayPtr[2] = &volume_down, // point to first element
.arrayPtr[3] = &left, // point to first element
// Timer Information
.measGateSource= GATE_WDT_SMCLK, // 0->SMCLK, 1-> ACLK
//.accumulationCycles= WDTp_GATE_32768 //32768
.accumulationCycles= WDTp_GATE_8192 // 8192
//.accumulationCycles= WDTp_GATE_512 //512
//.accumulationCycles= WDTp_GATE_64 //64
};
const struct Sensor middle_button =
{
.halDefinition = RO_PINOSC_TA0_WDTp,
.numElements = 1,
.baseOffset = 4,
// Pointer to elements
.arrayPtr[0] = &middle_element, // point to first element
// Timer Information
.measGateSource= GATE_WDT_SMCLK, // 0->SMCLK, 1-> ACLK
//.accumulationCycles= WDTp_GATE_32768 //32768
.accumulationCycles= WDTp_GATE_8192 // 8192
//.accumulationCycles= WDTp_GATE_512 //512
//.accumulationCycles= WDTp_GATE_64 //64
};
const struct Sensor proximity_sensor =
{
.halDefinition = RO_PINOSC_TA0_WDTp,
.numElements = 1,
.baseOffset = 5,
// Pointer to elements
.arrayPtr[0] = &proximity_element, // point to first element
// Timer Information
.measGateSource= GATE_WDT_SMCLK, // 0->SMCLK, 1-> ACLK
//.accumulationCycles= WDTp_GATE_32768 //32768
.accumulationCycles= WDTp_GATE_8192 // 8192
//.accumulationCycles= WDTp_GATE_512 //512
//.accumulationCycles= WDTp_GATE_64 //64
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -