完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 317193490lgd 于 2013-7-24 20:48 编辑
void AdcTs_Init(u32 channel, u32 freq) { u32 preScaler; ADCTS->rADCDLY = 50000; //Normal conversion mode delay about (1/3.6864M)*50000=13.56ms //设置ADC转换频率以及通道 preScaler = g_PCLK/freq -1; ADCTS->rADCCON = (1<<14)|(preScaler<<6)|(channel<<3); //设置触摸屏为等待中断模式,查手册等待中断模式为0xd3 ADCTS->rADCTSC = 0xd3; //中断悬起 AdcTsIntClr(); //写中断函数地址 Outp32(rVIC1VECTADDR+4*(NUM_PENDNUP-32), (unsigned)Isr_ADCTS); Outp32(rVIC1VECTADDR+4*(NUM_ADC-32), (unsigned)Isr_ADCTS); //中断使能 Vic1_IntEnable(NUM_PENDNUP); Vic1_IntEnable(NUM_ADC); return; } *触摸屏中断函数 * */ void __irq Isr_ADCTS(void) { u32 saveAdcdly; //判断是按下中断还是弹起中断,此处只有触摸屏中断, //故进入中断函数后不进行中断源的判断 if(ADCTS->rADCUPDN & 0x2) { Uart_Printf("nStylus downn"); ADCTS->rADCUPDN &= ~(1<<1); } else Uart_Printf("nStylus upn"); //上拉除能,自动连续X,Y坐标转换,中断信号产生后,设置XY_PST位为无操作模式 ADCTS->rADCTSC = ((1<<2)|(1<<3))&(0x1fc); saveAdcdly = ADCTS->rADCDLY; ADCTS->rADCDLY = 40000; //Normal conversion mode delay about (1/50M)*40000=0.8ms //开始ADC转换并读取 Adc_Read(); //中断悬起 AdcTsIntClr(); //设置触摸屏为等待中断模式,等待触摸笔抬起 ADCTS->rADCTSC = 0xd3; while(1) { if(ADCTS->rADCUPDN & 0x1) { Uart_Printf("nStylus Upn"); ADCTS->rADCUPDN &= ~(1<<0); break; } } //串口打印XY坐标信息 Uart_Printf("XP=%04d, YP=%04dn", xdata, ydata); //设置触摸屏为等待中断模式,等待下一次的中断 ADCTS->rADCDLY = saveAdcdly; ADCTS->rADCTSC = 0xd3; //中断悬起 AdcTsIntClr(); //清除中断服务函数的地址 Outp32(rVIC0ADDR, 0); Outp32(rVIC1ADDR, 0); }运行程序后进入不了中断 |
|
相关推荐
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
该问题是用APP给芯海科技的CST92F25芯片发指令是出现的
1851 浏览 1 评论
642 浏览 0 评论
1372 浏览 1 评论
2075 浏览 1 评论
飞凌嵌入式ElfBoard ELF 1板卡-spi编程示例之spi编写程序
1169 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-19 12:32 , Processed in 0.380381 second(s), Total 42, Slave 35 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号