|
我用的是ATMEGA16L,GCC+AVR Studio4.17. LIB3.0的库
试验中PA4接SNSK,PC4接SNS,PC0接LED
代码如下
#define _QTOUCH_
#define QT_NUM_CHANNELS 8
//#define QT_MAX_NUM_ROYORS_SLIDERS 2
//#define _ROTOR_SLIDER_
#define SNSK A
#define SNS C
#define QT_DELAY_CYCLES 5
#include"avr\io.h"
#include"avr\interrupt.h"
#include"touch_api.h"
#define uchar unsigned char
#define uint unsigned int
volatile unsigned int hw_time_ms;
uchar NUM;
void delayms(uint ms)
{
uint a,b;
for(a=200;a>0;a--)
{for(b=ms;b>0;b--);}
}
ISR(TIMER1_OVF_vect)
{
TCNT1H=0xFF;
TCNT1L=0x8D;
hw_time_ms++;
}
void port_init(void)
{
SFIOR|=(1<<PUD); //關閉上拉電阻
DDRC|=(1<<PC0);
PORTC|=(1<<PC0);
}
void timer1_init(void)
{
TCNT1H=0xFF;//1MS
TCNT1L=0x8D;
TCCR1B|=(1<<CS11)|(1<<CS10);//F/64
}
void int_ctrl(void)
{
sei();
TIMSK|=(1<<TOIE1);
}
void sys_init(void)
{
port_init();
timer1_init();
int_ctrl();
hw_time_ms=0;
}
void main(void)
{
delayms(10);
sys_init();//系统初始化
qt_enable_key(CHANNEL_4, NO_AKS_GROUP, 10u, HYST_6_25);
qt_init_sensing();//按键初始化
while(1)
{
qt_measure_sensors(hw_time_ms);
if(qt_measure_data.qt_touch_status.sensor_states[0]&0x01)
PORTC|=(1<<PC0);//LED1灭
else
PORTC&=~(1<<PC0);//LED1亮
// if(hw_time_ms==1000)
// {PORTC^=0x01;hw_time_ms=0;}
}
}
LED一直亮着的,按键能检测到方波,但是触摸按键没反应,电阻1K,电容22nf
求高手帮助看看是不是程序问题~~~ |
阿莫论坛20周年了!感谢大家的支持与爱护!!
月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!
|