S3C2440裸机------触摸屏_定时候程序优化

发布者:CaptivatingEyes最新更新时间:2021-09-30 来源: eefocus关键字:触摸屏 手机看文章 扫描二维码
随时随地手机看文章

我们前面的触摸屏代码中,当我们短按一次会有一个数据输出,但是当我们长按或者滑动时并没有数据输出,我们用定时器使触摸屏支持长按,在按下时我们启动定时器,定时器间隔一段时间中断一次,然后在中断函数里面再去测量触点的XY坐标。


我们前面的定时器代码是直接在定时器中断函数里面点灯,我们应该用一个数组去做处理,当定时器中断发生时分别进入不同的函数做不同的处理。


1. timer.c

 

#include "s3c2440_soc.h"

 

#define TIMER_NUM  32

#define NULL  ((void *)0)

 

typedef void(*timer_func)(void);

 

typedef struct timer_desc {

char *name;

timer_func fp;

}timer_desc, *p_timer_desc;

 

timer_desc timer_array[TIMER_NUM];

 

 

int register_timer(char *name, timer_func fp)

{

int i;

for (i = 0; i < TIMER_NUM; i++)

{

if (!timer_array[i].fp)

{

timer_array[i].name = name;

timer_array[i].fp   = fp;

return 0;

}

}

return -1;

}

 

void unregister_timer(char *name)

{

int i;

for (i = 0; i < TIMER_NUM; i++)

{

if (!strcmp(timer_array[i].name, name))

{

timer_array[i].name = NULL;

timer_array[i].fp   = NULL;

return 0;

}

}

return -1;

}

 

 

void timer_irq(void)

{

int i;

for (i = 0; i < TIMER_NUM; i++)

{

if (timer_array[i].fp)

{

timer_array[i].fp();

}

}

}

 

 

void timer_init(void)

{

/* 设置TIMER0的时钟 */

/* Timer clk = PCLK / {prescaler value+1} / {divider value} 

             = 50000000/(49+1)/16

             = 62500

*/

TCFG0 = 49;  /* Prescaler 0 = 49, 用于timer0,1 */

TCFG1 &= ~0xf;

TCFG1 |= 3;  /* MUX0 : 1/16 */

 

/* 设置TIMER0的初值 */

TCNTB0 = 625;  /* 10Ms中断一次 */

 

/* 加载初值, 启动timer0 */

TCON |= (1<<1);   /* Update from TCNTB0 & TCMPB0 */

 

/* 设置为自动加载并启动 */

TCON &= ~(1<<1);

TCON |= (1<<0) | (1<<3);  /* bit0: start, bit3: auto reload */

 

/* 设置中断 */

register_irq(10, timer_irq);

}


2. led.c

 

#include "s3c2440_soc.h"

 

void delay(volatile int d)

{

while (d--);

}

 

 

/* 每10ms该函数被调用一次 

 * 每500ms操作一下LED实现计数

 */

void led_timer_irq(void)

{

/* 点灯计数 */

static int timer_num = 0;

static int cnt = 0;

int tmp;

 

timer_num++;

if (timer_num < 50)

return;

timer_num = 0;

 

cnt++;

 

tmp = ~cnt;

tmp &= 7;

GPFDAT &= ~(7<<4);

GPFDAT |= (tmp<<4);

}

 

int led_init(void)

{

/* 设置GPFCON让GPF4/5/6配置为输出引脚 */

GPFCON &= ~((3<<8) | (3<<10) | (3<<12));

GPFCON |=  ((1<<8) | (1<<10) | (1<<12));

 

register_timer("led", led_timer_irq);

}

 

int led_test(void)

{

int val = 0;  /* val: 0b000, 0b111 */

int tmp;

 

/* 设置GPFCON让GPF4/5/6配置为输出引脚 */

GPFCON &= ~((3<<8) | (3<<10) | (3<<12));

GPFCON |=  ((1<<8) | (1<<10) | (1<<12));

 

/* 循环点亮 */

while (1)

{

tmp = ~val;

tmp &= 7;

GPFDAT &= ~(7<<4);

GPFDAT |= (tmp<<4);

delay(100000);

val++;

if (val == 8)

val =0;

}

 

return 0;

}

关键字:触摸屏 引用地址:S3C2440裸机------触摸屏_定时候程序优化

上一篇:S3C2440裸机------触摸屏_使用定时器支持长按
下一篇:S3C2440裸机------触摸屏_利用ADC读取触摸屏坐标

推荐阅读最新更新时间:2024-11-07 17:12

NA200 PLC 在超滤净水机中的应用
一、 概述   超滤净水机,可适用于工业净化、食品饮料行业用水净化、农村饮水安全等工程。采用超滤膜过滤技术,结合精心设计全自动的过滤,吸附系统,能有效去除水中的泥沙、胶体悬浮物、有机物、无机物、细菌、铁锈、重金属残留物等有害健康的物质。主机采用PLC+触摸屏控制系统,全自动运行和正反冲洗,维护和保养方便快捷。   二、系统配置   该套滤水器设备选用南大傲拓NA200系列PLC及其触摸屏作为控制核心,PLC配置如下图所示。   2010-5-31 14:59:59 南大傲拓科技有限公司 供稿   图1 PLC模块配置   图2 运行主界面   三、NA200Pro编程软件   NA200Pro
[工业控制]
浅析触摸屏显示技术原理及其应用前景
    如今,在各种手持消费电子设备、医疗应用设备、自动售货机/售票机/ATM机、销售终端(POS),工业和过程控制设备中都可以看到触摸显示屏。触摸屏显示器正逐渐进入办公自动化,汽车和船舶仪表,家电和游戏机应用领域。     影响选择触摸屏技术的各种因素     可以用各种方式实现触摸屏。除了成本之外,技术方面的选择取决于以下几个因素:     性能 :性能包括诸如速度、灵敏度、精确度、分辨率、拖动、Z轴、双/多触摸方式,视差角度和校准的稳定性。     输入灵活性: 输入灵活性参数影响着人机交互的方式,诸如手套、手套材料、指甲、触笔,手写识别和获取签名。     环境: 环境因素为温度、湿度、耐化学性、耐划伤
[嵌入式]
2009移动显示技术大会展现触摸屏的未来
随着苹果IPhone手机的成功,一股开发全屏触控手机的热潮正在席卷全球,各大手机巨头为面对苹果的冲击,纷纷推出功能强大的全屏触控手机,手机操控界面进入了全新的发展阶段。6月18~19日,由创意时代主办,国内最具影响力的中小尺寸显示技术盛会——2009移动手持显示技术大会将于深圳盛大召开,来自诺基亚、矽创电子、天马微电子、Solomon、Leadis、Henkel、Synaptics等公司以及iSuppli、DisplaySearch等知名分析机构的专家将登台亮相,围绕手机及手持设备显示技术革新,以及当前炙手可热的手机触控技术及应用展开讨论,共同探讨中小尺寸显示的最新技术与应用、产业链如何通过创新技术和市场策略全面提升竞争力,
[手机便携]
用户体验成风向标 高性能模拟显风流
  2007年1月初,美国苹果公司的iPhone手机在全世界的惊艳目光中闪亮登台。尽管竞争对手对之不乏微辞,但简洁时尚的外形、3.5英寸1,670万色的TFT触摸屏、4GB/8GB的内存容量、200万像素的摄像头、支持Wi-Fi和蓝牙无线传输,以及最长16小时的音乐播放时间和最长5小时的视频播放时间等,还是紧紧扣住了用户的心,从多方面满足了用户对手机的外观设计、方便视频观看的大屏幕、更大的存储容量、方便的拍照和内容传输以及较长电池使用时间的需求。   简而言之,iPhone可为用户提供前所未有的应用体验。这既是从计算机、通信到消费电子等领域的数字设备近年来不断强调以用户体验为本的必然结果,也将这股浪潮推向了一个新高。从更广的角度
[焦点新闻]
触摸技术与设计技巧
  从电话机,办公设备,扬声器,数码相框,电视机控制键,遥控器, GPS 系统,汽车无钥控制,到医疗监控设备,到处都是触摸设备!每一个行业,每个产品类型,各种尺寸,每一种应用,甚至是每个价格点上,都离不开触摸技术。可以说,触摸技术无处不在。   实际上,如果产品上有一个 LCD 或键盘,设计师可能就需要考虑如何才能设计出一个利用触摸技术的产品。但对于设计师不幸的是,当设计触摸屏时,有许多种不同的解决方式,有各式各样的性能,当然也需要各种不同的设计考虑。故现在是需要深入理解该技术,并对你的产品系列进行评估的时候了。只有这样,才能成为市场上的领先者,而良好的外观设计是设计的出发点。   触摸技术的深入剖析   搞清设计所
[电源管理]
触摸技术与设计技巧
用Gen4消除电容触摸屏设计屏障
  将电容式触摸屏设计到产品并不是一项简单的任务。这个复杂的机电系统面临着许多集成方面的严峻挑战。终端用户希望他们的产品轻薄,市场需要长电池寿命。对触摸性能的预期相当惊人:4mm手指,防手掌误触,1毫米触控笔以及悬停。系统需要与低成本的通用USB电池充电器配合工作,抑制来自不断增长的大量无线噪声源的噪声,以及忽视水的影响。还需注意,其价格必须便宜。解决这些问题并不容易。幸运的是,赛普拉斯(Cypress)公司推出了Gen4(图1)。   速度   从设计之初,Gen4旨在逐一解决这些设计问题。第一个挑战是性能。虽然市场上一些触摸屏声称高达250Hz,但在存在噪声的现实应用中却不可能达到。这是由于这些器件中的8位MCU核能力
[电源管理]
用Gen4消除电容<font color='red'>触摸屏</font>设计屏障
S3C2440裸机复习------GPIO
第一遍看完S3C2440裸机后,有些遗忘了,再挑选几个复习一下,首先是GPIO。 1 原理图 首先需要看一下原理图,可以看到我们把GPF4设置为低电平就可以让LED1点亮。 2 芯片手册 从芯片手册可以看到,我们要把GPFCON寄存器的 设置为01,然后GPFDAT的 设置为0. 3 汇编语言点亮LED 3.1 start.S .test .global _start mov 0x56000050 #0x100 mov ox56000054 #0x10 .halt b halt 3.2 makefile all: arm-linux-gcc -c start.S -o start.o
[单片机]
<font color='red'>S3C2440</font><font color='red'>裸机</font>复习------GPIO
水对电容触摸屏的影响及设计中的防水策略
一、引言   防水性能是衡量多点电容触摸屏设计性能的标志性指标。似乎使用互电容扫描的多点电容触摸屏具有天然的防水能力,它并不构成一个设计挑战。为什么这样说呢?因为使用自电容扫描的触摸屏,水滴和手指触摸产生的信号变化的方向是相同的,要将水滴从手指触摸中分辨出来颇费周折。而互电容扫描的触摸屏水滴和手指触摸产生的信号变化的方向正好是相反的,因为手指触摸使互电容减少,水滴却使互电容增加。这就给人这样一个感觉,使用互电容扫描的多点电容触摸屏具有天然的防水能力而不需要采用特别的措施去做防水处理。真实的情况并非如此简单,当水滴滴到互电容屏上时,确实不会也没有产生误触发,但当水滴被擦掉以后再用手指触摸原来的地方就不灵了,或者在没有手指触摸时会不
[家用电子]
水对电容<font color='red'>触摸屏</font>的影响及设计中的防水策略
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved