【ARM裸板】S3C2440下的ADC操作和触摸屏的详解 && 根据寄存器编程编程

本文详细介绍了在S3C2440微处理器上进行ADC操作和电阻触摸屏的工作原理及编程实现。内容涵盖ADC硬件原理、寄存器设置、触摸屏接口编程、中断处理、定时器优化以及校准流程,旨在帮助开发者掌握裸板编程技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

001 ADC硬件原理

硬件特性

ADC特性

s3c2440的ADC硬件原理图s3c2440的ADC硬件原理图
s3c2440的ADC框图

在这里插入图片描述

  • 怎么设置:
    • a.设置8:1mux,选中要测量哪个引脚
    • b.设置工作时钟
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FpI2iF6S-1581491700386)(en-resource://database/2384:1)]
    • c.启动
    • d.读状态,判断ADC成功
    • e.读数据

002 ADC编程

  • 目标:
  • a.初始化ADC
  • b.读数据
  • c.在串口上显示出来
  • d.在LCD上显示出来
设置ADC寄存器
ADCCON

ADCCON

ADCTSC

ADCTSC

ADCDLY

在这里插入图片描述
在这里插入图片描述

ADCDATA0

在这里插入图片描述

void adc_init(void)
{
   
	/* [15]  :ECFLG        ,1 = End of A/D conversion
	 * [14]  : PRSCEN      ,1 = A/D converter prescaler enable
	 * [13:6]: PRSCVL      ,adc clk = PCK / (PRSCVL + 1)
	 * [5:3] : SEL_MUX     ,000 = AIN 0
	 * [2]   : STDBM       ,1 = Standby mode
	 * [1]   : READ_ START ,0 = Disable start by read operation
	 * [0]   : ENABLE_START,1 = A/D conversion starts and this bit is cleared after the startup.
	*/
	ADCCON = (1<<14) | (49<<6) | (0<<3) ;

	ADCDLY = 0xff;
}

int adc_read_ain0(void)
{
   
	/* 启动adc */
	ADCCON |= (1<<0);
	
	while(ADCCON & (1<<15));	/* 等待ADC结束 */

	return ADCDAT0 & 0x3ff;
}

003 电阻触摸屏硬件原理

触摸屏示意图

在这里插入图片描述

测量触点X坐标 测量触点Y坐标
Xp接3.3v,Xm接地,Yp、Ym不接电源 Yp接3.3v,Ym接地,Xp、Xm不接电源
测Yp电压(就是X坐标) 测Xp电压(就是Y坐标)
使用触摸屏流程
  • 1.按下触摸屏,产生触摸中断
  • 2.在触摸屏中断程序中,启动ADC(目的:获得x,y坐标)
  • 3.ADC完成,产生中断
  • 4.在ADC中断中,读取x,y坐标
  • 5.启动定时器
  • 6.定时器中断发生,判断触摸屏仍被按下,回到第2步。
  • 7.松开,结束。

003 S3C2440触摸屏接口

编程要点

ADC转化中断时,可以通过中断或者查询来得到数据

  • 使用中断模式时,从AD转换开始到得到数据可能有些延迟,因为中断的进入和退出需要浪费一些时间
  • 如果像要立刻得到数据,可以使用ADC的查询方式,查询ADCCON[15],判断转化是否结束 。
ADCTSC设置与触摸屏等效电路图

在这里插入图片描述

  • 触摸屏等待按下接口程序
void enter_wait_pen_dowm_mode(void)
{
	ADCTSC = PULLUP_ENABLE | YM_ENABLE | YP_DISABLE | XP_DISABLE | XP_DISABLE | WAIT_INT_MODE ;
}
ADC/TS与中断的控制流程

在这里插入图片描述

怎么编程
  • 1.初始化ADC/TS接口
  • 2.设置TS处于等到中断
  • 3.设置中断
  • 4.按下,进去TS中断
    • a.进入自动采集模式
    • b.启动ADC
  • 5.ADC中断
    • a.读数据
    • b.再次进入”等待中断模式“
    • c.启动定时器
  • 6.定时器中断
    • a.若松开,结束
    • b.若按下,进入4.b

005触摸屏编程_按下松开检测

  • 状态转换图
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值