|
发表于 2009-3-2 23:18:47
|
显示全部楼层
红色部分为Touch Library的核心部分
__task void main( void )
{
/* initialise host app, pins, watchdog, etc */
init_system();
/* 配置一个滑条,使用通道0~2 */
qt_enable_slider( CHANNEL_0, CHANNEL_2, NO_AKS_GROUP, 16u, HYST_6_25, RES_3_BIT, 0u );
/* 配置一个滑环: 使用通道 3~5 */
qt_enable_rotor( CHANNEL_3, CHANNEL_5, NO_AKS_GROUP, 16u, HYST_6_25, RES_3_BIT, 0u );
/* 配置一个按键: 使用通道6 */
qt_enable_key( CHANNEL_6, NO_AKS_GROUP, 10u, HYST_6_25 );
/* 配置一个按键: 使用通道7 */
qt_enable_key( CHANNEL_7, NO_AKS_GROUP, 10u, HYST_6_25 );
/* 初始化Touch系统*/
qt_init_sensing();
/* enable interrupts */
__enable_interrupt();
g_chPWMChannalA = 0;
/* 超级循环 */
for( ; ; )
{
if (s_chMeasureFlag == 0)
{
continue ;
}
s_chMeasureFlag = 0;
/* Touch进行扫描的主任务,它会自动屏蔽中断 */
qt_measure_sensors( g_hwSystemTimer );
/* 检测按钮A */
if (qt_touch_status.sensor_states & BIT(2))
{
LED_B_ON
}
else
{
LED_B_OFF
}
/* 检测按钮B */
if (qt_touch_status.sensor_states & BIT(3))
{
LED_A_ON;
}
else
{
LED_A_OFF;
}
/* 检测滑条 */
if (qt_touch_status.sensor_states & BIT(0))
{
/* 检测滑环 */
if (qt_touch_status.sensor_states & BIT(1))
{
g_chPWMChannalB = qt_touch_status.rotor_slider_values[1];
g_chPWMChannalA = BIT(3) - g_chPWMChannalB - 1;
}
else
{
g_chPWMChannalB = qt_touch_status.rotor_slider_values[0];
g_chPWMChannalA = BIT(3) - g_chPWMChannalB - 1;
}
}
/* 检测滑环 */
else if (qt_touch_status.sensor_states & BIT(1))
{
g_chPWMChannalB = qt_touch_status.rotor_slider_values[1];
g_chPWMChannalA = BIT(3) - g_chPWMChannalB - 1;
}
else
{
g_chPWMChannalA = 0;
g_chPWMChannalB = 0;
}
}
} |
|