ARM9(S3C2440) Touch Screen

ARM的异常(S3C2440) 先厘清概念 异常:异常就是在程序运行过程中(USER mode),出现了一些异常情况,而中断是异常的一种情况。 中断:中断是一种异常。 异常发生了会进入相应的模式。 ARM体系的CPU有7种工作模式: User(用户模式) : ARM处理器正常的程序执行状态 FIQ(快速中断模式) : 当一个高优先级(fast) 中断产生时将会进入这种模式 IRQ(中断模式) : 通常的中断产生时将会进... 阅读详情

               触摸屏工作原理

触摸屏分为:电阻式,电容式,声表面波式,红外线扫描式等类型,使用的最多的是4线电阻式的触摸屏。

 

 

 

             触摸屏工作流程

(1)、设置触摸屏接口为等待中断模式,等待触摸屏被按下。

(2)、如果中断(INT_TC)发生,选择X,Y坐标转换模式(X/Y坐标分别转换模式,X/Y坐标自动转换模式),启动AD转换。

(3)、当AD转换完毕后,通过中断(INT_ADC),获取X/Y坐标,ADCDAT0 bit[9:0]-x坐标,ADCDAT1 bit[9:0]-Y坐标。

(4)、设置触摸屏接口为等待中断模式,等待触摸笔离开触摸屏。

(5)、返回步骤1,等待下次触摸笔被按下。

 

 

 

 

实验主要代码

main,c

/*主函数*/
int Main(void)
{ 
    int Scom=0;

    Set_Clk();
    Uart_Init(0,115200);
    Uart_Select(Scom);
   
    Test_Touchpanel();
   
    while(1);
    return 0;
}

 

/*触摸屏初始化*/
void Test_Touchpanel(void)
{
  
    rADCDLY=50000;                  //Normal conversion mode delay about (1/3.6864M)*50000=13.56ms
   
    /*设置AD转频率*/
    preScaler = ADC_FREQ;
    preScaler = 50000000/ADC_FREQ - 1; //PCLK=50M
    rADCCON = (1<<14)|(preScaler<<6); //ADCPRS En,PRSCVL
 

    /*设置触摸屏为等待中断模式,等待触摸笔被按下*/
    rADCTSC=0xd3;  //Wfait,XP_PU,XP_Dis,XM_Dis,YP_Dis,YM_En
   
    /*clear irq*/
    rSRCPND = 0x80000000;
    rINTPND = 0x80000000;
    ClearSubPending(BIT_SUB_TC);   //子中断也要清除
 
    pISR_ADC = (U32)AdcTsAuto;

    /*enable INT_TC irq*/
    rINTMSK = 0x7fffffff;    
    EnableSubIrq(BIT_SUB_TC);
}

 

 

/*************************************************
Function name: AdcTsAuto
Parameter    : void
Description  : 中断服务程序
Return   : void
Argument     : void
Autor & date : Daniel
**************************************************/
static void __irq AdcTsAuto(void)
{

    U32  saveAdcdly;
 
    /****************stylus down************************/
    /*检测子中断源,判断是否是INT_TC中断,且触摸笔按下*/
    if(rSUBSRCPND & (BIT_SUB_TC))
    {
 if( !(rADCDAT0&0x8000))
     Uart_Printf("\nStylus down\n");
 else
            Uart_Printf("\nStylus up\n"); 
    }
 
    /*pull-up disable,自动连续X,Y坐标转换*/
    rADCTSC = (1<<3)|(1<<2);
    saveAdcdly=rADCDLY;
    rADCDLY=40000;    //Normal conversion mode delay about (1/50M)*40000=0.8ms
 
 /*开始AD转换*/
 rADCCON|=0x1;                   //start ADC
    while(rADCCON & 0x1);  //check if Enable_start is low
   
 while(!(rADCCON & 0x8000));  //check if EC(End of Conversion) flag is high, This line is necessary~!!
 
 while(!(rSRCPND & 0x80000000));  //check if ADC is finished with interrupt bit

 /*获取X,Y坐标*/
 xdata=(rADCDAT0&0x3ff);
    ydata=(rADCDAT1&0x3ff);
   
    ClearSubPending(BIT_SUB_TC);
    //ClearPending(BIT_ADC);
    rSRCPND = 0x80000000;
 rINTPND = 0x80000000; 
 

    EnableSubIrq(BIT_SUB_TC);
    //EnableIrq(BIT_ADC);
    rINTMSK = 0x7fffffff;
    /****************stylus down************************/
   
   
    /****************stylus up**************************/

 /*设置触摸屏为等待中断模式,等待触摸笔抬起*/
    rADCTSC =0xd3;    //Waiting for interrupt
 rADCTSC=rADCTSC|(1<<8); // Detect stylus up interrupt signal.
 
 while(1)  //to check Pen-up state
 {
  if(rSUBSRCPND & (BIT_SUB_TC)) //check if ADC is finished with interrupt bit
  {
     Uart_Printf("Stylus Up Interrupt~!\n");
     break; //if Stylus is up(1) state
  }
 } 
 /****************stylus up**************************/
 
 Uart_Printf("count=%03d  XP=%04d, YP=%04d\n", count++, xdata, ydata); 
 
 rADCDLY=saveAdcdly;
 /*设置触摸屏为等待中断模式,等待下次触摸笔按下*/
    rADCTSC =0xd3;    //Waiting for interrupt
   
 ClearSubPending(BIT_SUB_TC); 
    //ClearPending(BIT_ADC);
    rSRCPND = 0x80000000;
 rINTPND = 0x80000000;

    EnableSubIrq(BIT_SUB_TC);
    //EnableIrq(BIT_ADC);
    rINTMSK = 0x7fffffff;
}

 


 

【ARM学习笔记】一、S3C2440A官方简介 S3C2440A 是三星公司推出的16/32位精简指令集(RISC)微型处理器,它基于ARM v9系列的ARM920T核心,主要为手持设备和普通应用提供了低功耗的高性能的小型芯片微型控制器的解决方案。 S3C2440A 基于ARM920T 核心,0.13μm 的CMOS 标准宏单元和存储器单元。低功耗,简单,精致,且全静态设计特别适合于对成本和功率敏感型的应用。它采用了新的总线架构如先进微控制总 阅读详情

相关推荐

ARM2440平台TFT显示屏驱动开发指南

ARM处理器以其高效节能的设计而闻名于嵌入式系统领域。作为一种RISC架构的处理器,ARM处理器提供了丰富的指令集,同时保持了较高的指令执行效率。ARM处理器广泛应用于移动设备、网络设备、消费电子产品等。液晶显示(Liquid Crystal Display, LCD)技术经历了几个重要的发展阶段,从最初的简单显示到现在的高分辨率显示,技术不断演进。早期的LCD技术主要依赖于扭曲向列(Twisted Nematic, TN)液晶材料,这种材料的响应时间较慢,并且视角有限。

weixin_35459464的博客 441

嵌入式学习——硬件(ARM体系架构)——day51

(1)RISC的全称是“精简指令集计算”(Reduced Instruction Set Computing)i.cache:指令缓存(Instruction Cache)(1)冯·诺依曼结构(Von Neumann Architecture)***************重点部分***************(1)ram——(随机存储器、掉电丢失数据、存储临时程序和数据)(2)rom——(只读存储器、掉电不丢失、存储固定数据和程序)(2)哈佛结构(Harvard Architecture)

qq_47798402的博客 2398

深入理解S3C2440微处理器:数据手册中文版指南

S3C2440是基于ARM920T核心设计的一款高性能、低功耗的微处理器,广泛应用于嵌入式系统中。它采用经典的五级流水线结构,能够有效地提升指令的执行效率。具体来说,五级流水线包括取指(IF)、解码(ID)、执行(EX)、内存访问(MEM)和写回(WB)。通过这种方式,S3C2440能够实现每秒数百万条指令的执行能力。在CPU核心架构上,S3C2440集成了ARM920T核心,这个核心遵循ARMv4T指令集架构,支持32位的ARM指令和16位的Thumb指令。

weixin_33628677的博客 973

嵌入式linux----ARM入门,熟悉ARM处理器S3C2440

ARM(Advanced RISC Machines),是一个公司的名字,也是对一类微处理器的统称,也可以是一种技术的名字。ARM公司设计了很多处理器,他们根据内核的不同划分到各个系列中,系列划分是基于ARM7、ARM9、ARM10、ARM11内核的,在每个系列中,存储器管理、cache和TCM处理器扩展也有多种变化。 ARM7内核是冯诺依曼体系结构,数据和指令使用同一条总线,内核有一条3级流水...

fcglx的博客 2070

S3C2440(三星ARM9手册)

三星ARM9数据手册 ARM9硬件开发必备

从零搭建ROS1导航小车(一):松灵SCOUT Mini底盘通讯配置与ROS包编译避坑指南

本文详细介绍了从零开始搭建ROS1导航小车的初始步骤,重点讲解松灵SCOUT Mini底盘的通讯配置与ROS包编译避坑指南。内容包括硬件连接、CAN通讯配置、ROS工作空间构建及编译优化等实用技巧,帮助开发者快速实现自主导航小车的通讯功能。

weixin_27014595的博客 188

在ARM架构的系统上安装screen

在ARM架构的系统上安装Screen

目前从事linux驱动开发,多交流多学习吧 776

Spark 大数据环境搭建( Linux 系统安装和配置)

(1)选择典型安装(2)选择“安装程序光盘映像文件(iso)”,点击右侧的浏览按钮, 找到下载好的iso 文件,然后点击下一步。(3)将全名、用户名、密码、确认等几项均设为“spark”, 方便后面使用,然后点击下一步。(4)在命名虚拟机的窗体中,可以设定一下虚拟机名称或直接按默认,然后点击下一步。(5)在指定磁盘容量的窗体中,设定虚拟机使用的最大磁盘大小为60GB,虚拟机文件尺 寸是在使用过程中按需增长的,最大限制为 60GB。

2301_80186825的博客 1605

初识s3c2440A之ARM体系架构入门linux硬件

如果大家在前期学习了c语言,并且具备了一定的c语言功底,且学习了shell,文件IO,进程线程,网络编程、数据库以及数据结构等基本的嵌入式软件的基础知识,以及做过一定项目的前提下,可以进入到本章内容的学习,那么接下来我将主要分享的是嵌入硬件部分的学习;各位同学可以跟着每期的分享一步步来,那么最终达到我们想要的高度并不是一件非常难的事情;

weixin_58016534的博客 2107

从 YOLO 到视觉大模型:工程实践中如何选择?

本文对比了传统视觉模型YOLO与视觉大模型的差异。YOLO是单任务专用模型,适合规则明确、实时性要求高的检测任务;视觉大模型则具备通用视觉理解能力,但存在推理延迟大、算力成本高和"过度智能"等问题。在实际工程中,参数规模并非越大越好,7B-8B模型往往更均衡。控制大模型幻觉需通过严格Prompt设计、定向样本微调和任务拆解等方法。工业落地时应根据任务特性选择模型:YOLO适用于确定性高的场景,视觉大模型更适合复杂多变的环境。模型效果的关键在于任务边界、数据质量和系统设计,而非单纯追求参数

aiia18的博客 950

突破NER性能瓶颈:BERT与LLM协同的混合架构实践

性能卓越:在多个测试集上,F1分数比单一模型提升5-15%成本可控:相比纯LLM方案,成本降低60%以上易于落地:架构清晰,便于调试和优化这种"专才+通才"的组合思路可以扩展到其他NLP任务中,如关系抽取、事件提取、文本分类等。更精细的流水线优化多模型投票机制在线学习与自适应调整不追求单一模型的万能,而是通过精心设计的组合,让每个组件发挥其独特优势,最终实现系统性能的最优化。欢迎在评论区分享你在NER任务中的实践经验,或者对这个混合架构的改进建议!

Ven%的博客 1022

S3C2440体系架构

本文是对ARM处理器架构的学习,针对S3C2440型号。参考了Samsung官方的技术文档S3C2440.pdf中的PROGRAMMER’S MODEL一节的内容。ARM和THUMB指令模式S3C2440采用了armv4t指令集,同时支持arm指令集和thumb指令集。arm指令是32位的,而thumb指令是16位的。之所以存在thumb指令是为了降低代码的存储空间。两个指令集之间的切换 手动切换

u010919352的博客 5025

蓝桥杯STM32G431RBT6学习——GPIO

蓝桥杯STM32G431RBT6学习——GPIO

weixin_44098974的博客 2234

韦东山ARM裸机和uboot大全(第1期加强版)学习笔记18-第018课_ADC和触摸屏_第003~005节_电阻触摸屏原理和编程

一 电阻触摸屏的原理 基本原理:ADC对于触摸屏内置的电阻实时进行测量,触点的位置不同,ADC实时测量的电阻也不同。触摸屏和LCD是两个设备,触摸屏是一层覆盖到LCD上面的一层膜。 屏幕被点击的时候会被按压 ①测量X方向坐标:XP接3.3V,XM接GND;YP,YM不接电源;测量YP电压即可得到X的坐标。 ②测量Y方向坐标:YP接3.3V,YM接GND;XP,XM不接电源;测量XP电压即可得到...

xiaoaojianghu09的博客 392

FPGA进位链(Carry Chain)实战:从Xilinx CARRY8原语到性能优化全解析

本文深入解析了FPGA进位链(Carry Chain)的原理与应用,重点剖析了Xilinx CARRY8原语的端口功能与内部机制。通过实测数据揭示了进位链的真实延迟特性与温度影响,并详细阐述了如何利用DI和S信号进行动态路径优化、实现减法运算与条件进位选择,从而有效提升设计性能。最后,文章探讨了系统级的流水线拆分、布局约束等实战优化策略与常见陷阱。

weixin_29313817的博客 451

脑肿瘤MRI图像分割实战:基于U-Net的深度学习完整指南

脑肿瘤是中枢神经系统最常见的疾病之一,全球每年有超过30万人被诊断为原发性脑肿瘤。在临床诊断和治疗过程中,磁共振成像(MRI)已成为评估脑肿瘤的标准影像学检查方法。然而,手动分割MRI图像中的肿瘤区域是一项耗时且依赖于专家经验的工作,不同医生之间可能存在显著差异。

YOLO 151

S3C2440A的ARM工作模式以及寄存器种类

本期和大家主要分享的是ARM工作模式以及寄存器种类,不同系列的ARM的工作模式以及寄存器的种类大同小异,所以针对于S3C2440A,一定得通过这一种ARM能够去分析其他的ARM架构,这就要求我们对S3C2440A认真剖析并且进行原理上的理解而不是一味的背诵记忆,包括对特殊寄存器的理解;那么接下来看一下它的工作模式和寄存器的种类吧!

weixin_58016534的博客 649

【YOLO11改进 - C3k2融合】C3k2融合DWRSeg二次创新C3k2_DWR:扩张式残差分割网络,提高特征提取效率和多尺度信息获取能力,助力小目标检测

【YOLO11改进 - C3k2融合】C3k2DWRSeg二次创新C3k2_DWR:扩张式残差分割网络,提高特征提取效率和多尺度信息获取能力,助力小目标检测

专注于图像领域,主要研究内容包括计算机视觉和深度学习,特别是在图像分类、目标检测和图像生成等方面有深入的研究和实践经验。 1054

【归纳】S3C2440A之ARM学习的所有的问题:

问题1:关于Nor/Nand启动判断的问题:视频讲解是用写0到[0x0],取出还是0则Nand启动,视频例程: mov r1, 0 ldr r0, [r1] str r1, [r1] ldr r2, [r1] cmp r1, r2 //如果r1 != r2, nor启动 ldr sp, =0x40000000 + 4096 //如果r1 == r2, nand启动 moveq sp, #4096 ...

荆楚长铗 2354

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

ARM9(S3C2440) ADC

模拟信号/数字信号    (1)、模拟信号是一种在时间上连续,数值上也连续的物理量,具有无穷多的数值,从自然界感知的大部分物理量都是模拟性质的,如速度,压力,温度,声音等。    (2)、数字信号在时间上和数值上均是离散的,而离散信号的值只有真与假,是或不是,因此可以使用二进制中的0与1来表示 。         ADC驱动流程

SJMP 2461

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

S3C2440和S3C6410性能比较

比较项目   S3C2440   S3C6410   内核   ARM920T   ARM1176JZF-S   主频   400MHZ   533MHZ/667MHZ   处理器类型   16/32-bit RISC   16/32-bit

slj_win的专栏 1649

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

ARM总线架构

S3C2440集成了丰富了外设控制器(LCD控制器、USB Device控制器、USB Host控制器、NAND FLASH控制器、I2C控制器、SPI控制器等)。要控制这些外设就要设置相应控制器的寄存器以产生相应的驱动时序。学习S3C2440,主要是如何配置寄存器。下面是S3C2440特殊功能寄存器地址: #define rBANKCON0 (*(volatileunsign...

weixin_34380948的博客 658

嵌入式开发与ARM基础 s3c2440

总结了一些嵌入式学习遇到的知识点,记录在这里,用于以后的查询。嵌入式系统以应用为中心、以计算机技术为基础、软硬件可裁剪、适应应用系统对功能、可靠性、体积、成本、功耗严格要求的专用计算机系统。系统发展的最高形式-片上系统(SOC)嵌入式处理器处理器一共分为四类 嵌入式处理器 说明 微处理器MCU 典型代表8位单片机如51单片机 数字信号处理DSP 专门用于信号处理的处理器 片

feather(猎羽) 1216

ARM9 S3C2440最小系统

<br />http://blog.sina.com.cn/s/blog_5f5da79a0100gqsg.html<br /> <br /> <br /> <br />前些天一直在过年,沉浸在过年的喜悦中,而且天冷的伸不出手,自然也就不想上网了,每天在看电视剧大丫鬟,感觉是个很不错的电视剧。<br />蒙娜丽莎的设计还得继续,这次进行ARM部分的设计。<br />在蒙娜丽莎系统中,ARM用于控制通讯和人机交互,在系统中处于比较重要的地位。<br />我选择了SANSUNG公司的S3C2440芯片,原因是它

samantha_sun的专栏 3429

Linux下手动安装screen

简单说来就是自己用screen源码编译安装 第一步:下载screen源码并解压 下载地址:http://ftp.gnu.org/gnu/screen/ 第二步:运行配置程序,生成Makefile文件 运行源码目录下的./configure,运行成功会得到如下提示: Now please check the pathnames in the Makefile and in the ...

IT修道者的专栏 1万+
上一篇: ARM9(S3C2440) ADC
下一篇: ARM9(S3C2440) LCD
sjmp
博客等级 码龄15年 56粉丝 104原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值