IRQ_TC problem
在出发TC中断问题,代码如下,想问下具体步骤:
#include<g-bios.h>
#include<stdio.h>
#include <core/init.h>
#include <arch/s3c24xx.h>
#include <core/irq.h>
#include <core/io.h>
static int hello(void)
{
printf("hello maxwit CHINA");
return 0;
}
static __INIT__ int S3cTouch(void)
{
int ret;
ret = GkRegisterIsr(IRQ_TC,hello,NULL);
writel(1<<5,VA(0x5800000));
writel(3,VA(0x5800004));
return ret;
}
DRIVER_INIT(S3cTouch);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
S3C2440 datasheet 上ADC基址是错的,少写了一个零,应该是0x58000000
嗯,这个是正解
不过你的ADC TOUCH SCREEN CONTROL REGISTER (ADCTSC)0x58000004寄存器的值填写也不正确
datasheet上有介绍Touch Screen Interface Mode有四种:
1. Normal Conversion Mode
2. Separate X/Y position conversion Mode
3. Auto(Sequential) X/Y Position Conversion Mode
4. Waiting for Interrupt Mode
这四种模式是通过ADC TOUCH SCREEN CONTROL REGISTER (ADCTSC) 寄存器bit[0-2]控制的
bit[2] : Automatically sequencing conversion of X-Position and Y-Position
0 = Normal ADC conversion.
1 = Auto Sequential measurement of X-position, Y-position
bit[1:0]:Manually measurement of X-Position or Y-Position.
00 = No operation mode
01 = X-position measurement
10 = Y-position measurement
11 = Waiting for Interrupt Mode
4. Waiting for Interrupt Mode
Touch Screen Controller generates interrupt (INT_TC) signal when the Stylus is down. Waiting for Interrupt Mode
setting value is rADCTSC=0xd3; // XP_PU, XP_Dis, XM_Dis, YP_Dis, YM_En.
是的,应该选择中断等待模式,这样当按下触膜屏后就会产生中断通知CPU。
谢谢按你们方法已经解决了这个问题