历史上的今天
返回首页

历史上的今天

今天是:2025年03月24日(星期一)

正在发生

2020年03月24日 | 第018课 ADC和触摸屏硬件原理详解及裸机编程

2020-03-24 来源:eefocus

第001节_ADC硬件原理

模数转换器即A/D转换器,或简称ADC,通常是指一个将模拟信号转变为数字信号的电子元件。


通常的模数转换器是把经过与标准量比较处理后的模拟量转换成以二进制数值表示的离散信号的转换器。 


故任何一个模数转换器都需要一个参考模拟量作为转换的标准,比较常见的参考标准为最大的可转换信号大小。而输出的数字量则表示输入信号相对于参考信号的大小。


如图,是把可变电阻上的电压值变换的模拟信号通过ADC转换,输出数字信号。

这里写图片描述

对于数字信号我们需要得到它的几个属性


*用多少位来存储这个数据(假设10bit)。 

*最大值0b111111111 

*它对应的电压是多少伏(模拟信号输入的最大值是多少)我们就可以根据模拟信号(电压)的最大值,来计算出对应的数值。 

*采样/转换速度。


对于程序员,我们不关心ADC的内部机制,我们只关心:


*怎么启动ADC 

*启动之后怎么得到数据, 

总之:我们都是通过寄存器操作的。

这里写图片描述

从图1-1-1可以看出ADC有8个多路选择器,显然,以后我们写程序的时候,我们可以8个多路选择之一, 

下面是编写程序要做的步骤:


确定是哪一路信号:设置8:1MUX,选择要测量哪一个引脚,(看原理图选择要测量的引脚)

设置工作时钟(从工作室中,可以算出转换一次,需要多长时间)

启动

读状态,判断ADC转换是否成功。

读数据

ADC寄存器介绍

1.ADC 控制寄存器(ADCCON)


ADCCON控制寄存器,用于标志转换是否完成,控制是否使能预分频器,输入通道选择,工作模式,ADC是否启动。它的各位含义如下图所示。

这里写图片描述

2.ADC 启动延时寄存器(ADCDLY)


ADCDLY 启动延时寄存器用于启动或初始化延时寄存器。它的各位含义如下图所示

这里写图片描述

3.ADC 转换数据寄存器(ADCDAT0)


ADCDAT0转换数据寄存器,本节中只用到该寄存器的前10位(用于保存转换后的结果)。

这里写图片描述

第002节_ADC编程

编程步骤:


初始化ADC

读数据,

在串口上显示出来。 


一.初始化ADC


下面的函数实现对ADC的初始化。


03  void adc_init(void)

04  {

05  /* [15] : ECFLG,  1 = End of A/D conversion

06      * [14] : PRSCEN, 1 = A/D converter prescaler enable

07      * [13:6]: PRSCVL, adc clk = PCLK / (PRSCVL + 1)

08      * [5:3] : SEL_MUX, 000 = AIN 0

09       * [2]   : STDBM

10      * [0]   : 1 = A/D conversion starts and this bit is cleared after the startup.

11      */

12      ADCCON = (1<<14) | (49<<6) | (0<<3);

13

14      ADCDLY = 0xff;  

15  }


第12行:配置ADCCON寄存器,使能A/D 转换器预分频器,设置A/D 转换器预分频值,上拉使能。

第14行:设置ADC 转换启动延时值。

二.读数据


在这个读函数中启动ADC,并且等待ADC转换成功。然后返回数据,



17  int adc_read_ain0(void)

18  {

19          /* 启动ADC */

20      ADCCON |= (1<<0);

21

22      while (!(ADCCON & (1<<15)));  /* 等待ADC结束 */

23

24      return ADCDAT0 & 0x3ff;

25  }


第20行:启动ADC。

第22行:等待A/D转换结束(ADCCON第15位置1),

第24行:返回转换的值。(ADCDAT0寄存器的前10位,是保存转换后的值)。

三.ADC测试


函数代码如下: 函数功能:在串口/LCD上打印ADC转换后的结果。


04  void adc_test(void)

05  {

06      int val;

07      double vol;

08      int m; /* 整数部分 */

09      int n; /* 小数部分 */

10  

11      adc_init();

12

13      while (1)

14      {

15          val = adc_read_ain0();

16          vol = (double)val/1023*3.3;   /* 1023----3.3v */

17          m = (int)vol;   /* 3.01, m = 3 */

18          vol = vol - m;  /* 小数部分: 0.01 */

19          n = vol * 1000;  /* 10 */

20

21          /* 在串口上打印 */

22          printf("vol: %d.%03dv", m, n);  /* 3.010v */

23

24          /* 在LCD上打印 */

25          //fb_print_string();

26          }

27  }


*第11行:初始化ADC. 

*第15行:把ADC转换得到的值赋值给变量val. 

*第16行:把变量val的值转化为电压值。 

*第17行:取vol整数部分赋值给变量m。 

*第18行:取vol的小数部分赋值给vol。


测试


把生成的二进制文件烧录到开发板上,接上SPI模块,旋转可变电阻就可以在串口上看到电压值发生变化。


第003节_电阻触摸屏硬件原

这节课我们来讲电阻触摸屏的硬件原理


假设有一个比较长的电阻,电阻是R 上面接3.3V电压,下面接地

这里写图片描述

假设整个电阻的阻值是R某一个触电它的阻值是R1 

根据欧姆定律


3.3v/R = V/R1 

V=3.3 *(R1/R)


假设R1是x坐标 

R的长度是l 

这个电阻非常的均匀,那么这个电压就等于 3.3V * (x / l) 

这个电压和这个触电的x坐标有一个线性关系 

我使用ADC把这个电压算出来,就可以间接得到这个触电的x坐标 

电阻触摸屏就是使用欧姆定律使用电阻原理作出来的


可以上百度图片搜索触摸屏,就知道了触摸屏的样子,它是一个透明的薄膜,注意 LCD是LCD 触摸屏是触摸屏它是两个设备, 

我们只不过是把触摸屏做的和LCD大小一样,粘在LCD上面, 

实际上触摸屏是由两层膜组成,他们靠的非常近

上面这层右边引出来,代表xp ,p代表正极

上面这层左边引出来,代表xm, m代表负极

这里写图片描述

下面这层膜 前面这条边引出来为yp,后面这层边为ym


假设我们手指要点击触摸屏,那么上下就会粘贴在一起,我怎么算出这个 x y点的坐标呢? 

测量触电x坐标: 

xp接3.3v,xm接GND

这里写图片描述

yp,ym不接电源


2 测yp电压 

上下膜连接在一起,我就可以通过yp测量这个触电的电压 

这个yp就像探测一样,从前面的原理我们可以知道,当这个触电越靠近左边这个电压越小,越靠近右边电压越大 

这个yp的电压就可以认为是这个触电的坐标(x坐标)


类似的我们怎么测量触电y坐标 

类似的xp xm不接电源,同样yp接3.3v, ym接GND,这时候电流就从 yp这里流向ym,让后我们就可以测量xp电压 

当按下屏幕时,上下两层膜链接在一起,这个xp就像探针一样,这个触电越靠近yp电压值越大,越靠近ym电压值越小

这里写图片描述

yp接3.3V ym接GND,xp xm不接电源 

测量xp电压,就是y坐标

注意 x y坐标都是电压值,不是屏幕上480 * 272 这些值,我们需要把电压值转换为坐标值,这需要经过一些转换


我们测量xp yp可以得到触点的两个方向的电压值,这些电压值和坐标是线性关系 

我们现在总结下使用触摸屏的流程

<1>按下触摸屏 按下触摸屏时,对于一个高效的系统,产生中断,这是触摸屏中断

<2>在触摸中断程序中 启动ADC,(获得数据,xy坐标)启动ADC就开始模数转换,不可能瞬间完成,

<3>ADC完成, 产生中断

<4>ADC中断中读取x y坐标,我们来想想,在这个流程里,启动触摸屏的源头是按下触摸屏,那如果长按触摸屏,我按下之后一直不松开 滑动手指呢

那么谁来触发后续的多次ADC转换呢 不可能只启动一次吧, 

为了支持 长按 滑动操作,我们需要启用定时器. 

<5> 启动定时器

<6> 定时器中断发生,判断触摸屏是否仍被按下,如果按下就循环上述过程

<6.1>在触摸中断程序中 启动ADC,(获得数据,xy坐标)启动ADC就开始模数转换,不可能瞬间完成

<6.2>ADC完成, 产生中断

<6.3>ADC中断中读取x y坐标,)

<7> 松开结束一个流程

这就是整个触摸屏的使用流程


在14章里讲解了触摸屏,他抽象了几张图


平时的时候上下两层膜并不连接,我们按下触摸屏的时候就会产生中断,那么你怎么知道产生中断,肯定是由某个引脚的电平发生变化,平时 Y_ADC/xp是高电平,按下之后Y_ADC就接地了,就是被拉低了,就产生了低电平

这里写图片描述

产生低电平后就知道触摸屏被按下了,这个时候就需要测量电压值读取x坐标,XP XM通电我就测量YP的电压,这不就是 x 点的坐标

这里写图片描述

读取Y坐标

YP YM 通电,按下后XP通电,这不就是y点的坐标么

这里写图片描述

第004节_S3C2440触摸屏接口

回顾上节触摸屏使用原理

这里写图片描述

在不使用触摸屏的时候,必须要把 S1 S2 S3断开,S4 S5闭合,只有这样当我按下触摸屏,上面的电平才能从高变低,会产生一个中断信号,而当我去读取X坐标的值时


这里写图片描述

必须让S1 S3闭合,这样电流才可以通过,同时让S2 S4 S5断开,这时候YP这层膜就相当于探针一样去测量电压


当我读取y坐标值

这里写图片描述

必须让S2 S4闭合,这样电流才可以流 下来,同时S1 S3 S5断开,这个时候XP这层膜就相当于探针一样,我可以来测量这里的电压,从而得到Y坐标的电压值


在测量x y坐标时,这个S5上拉电阻都要断开, 

我们需要控制这几个开关,实际上2440就提供了这几个开关的控制方法, 

打开2440的芯片手册看触摸屏时怎么操作的, 

从440到450总共10页不到, 

我们看有一个8:1 MUX的多路选择器,以及XP YP

这里写图片描述

442页触摸屏接口模式

这里写图片描述

正常模式,在上节视频中我们有讲解过

x y分离转换模式,

看看我们的X Y坐标原理图,可以单独转换X坐标 单独转换Y坐标

换句话说就是逐个去测量X Y坐标,

他首先会启动X坐标的ADC转换,转换成功后数据会保存在ADCDAT0里,同时会产生一个中断,在这个中断服务程序里,就可以把X坐标读取出来,让后可以启动Y坐标的转换,转换成功后数据会保存在ADCDAT,同时会产生一个中断,进入这个中断把Y坐标读取出来 

测量一次会产生2个中断,一个时X坐标中断,一个是Y坐标中断


自动的或连续的X/Y坐标转换模式

也就是说不需要单独控制,不需要单独去读取X坐标Y坐标,可以设置寄存器,让它一次性的测量X坐标测量Y坐标,X坐标保存在ADCDAT0 Y坐标保存在ADCDAT1,最后产生一个中断,也就是读取X/Y坐标只需要产生一次中断


等待中断模式

所谓等待中断模式,就是等待按下或者等待松开

对于下面这幅图,我按下的时候XP从高电平变为低电平,松开时,XP从低电平变为高电平,这就是按下松开都可以检测到


我们要等待按下或者松开时 需要设置rADCTSC =0xd3这个值


Standby Mode静默模式/省电模式(我们不关心这个)

这里写图片描述

443页编程要点

这里写图片描述

*AD转换数据时可以通过中断或者查询模式来得到数据,使用中断模式时,从AD转换开始,到得到数据可能会有些延迟,因为中断服务程序的进入和退出需要一定的时间,(也就是说,如果你对数据转换的速度要求的非常高,就可以使用查询方式),可以查询ADCCON[15]来判断是否转换结束


444页 

剩下就是寄存器操作

这里写图片描述

ECFLG状态位 AD转换是否结束 

PRSCEN 使能ADC转换 

PRSCVL 设置A/D转换预分频值 

SEL_MUX选择输入通道,后面我们使用自动转换XY坐标,所以这里不需要设置 

ENABLE_START 启动转换


445页 

ADCTSC这个寄存器是重要的 

这里写图片描述

UD_SEN Bit8是用来判断触摸屏是被按下还是被松开 

0表明被按下,1表明被松开 

YM_SEN Bit7 YM开关使能控制S4

这里写图片描述

0表示断开 1闭合


YP_SEN Bit6 YP开关 

0表示闭合 1 表示断开


*寄存器位的含义不同 

XM_SEN Bit5 XM开关 

0 断开 1 闭合


XP_SEN Bit4 XP开关 

0 闭合 1 断开


PULL_UP Bit3 控制S5开关 

0 上拉(闭合) 

1 断开


AUTO_PST Bit2 自动连续转换X坐标Y坐标


上节视频里我们设置是 0 正常的ADC转换

如果需要连续转换ADC坐标的话,需要设置为1 ,如果需要手动转换ADC坐标的话,需要设置为0


XY_PST Bit[1:0] 

对于手动转换X Y坐标我们需要手动设置XY_PST 里面的位,是测量X坐标还是测量Y坐标, 

也可以设置这两位等于11 让其等于等待模式, 

也就是等待触摸屏被按下或者被松开.


如果设置自动连续转换的话,Bit2 AUTO_PST设置为1 

XY_PST设置为00


如果使用手动转换的话设置AUTO_PST为0 

XY_PST设置为01 手动转换X坐标模式 

或者设置为10 Y坐标转换模式


447页ADCDATA0 ADC数据寄存器

这里写图片描述

 UPDOWN Bit15 可以读取这一位去判断触摸屏是按下还是松开

 AUTO_PST Bit14 自动测量

 XY_PST Bit[13:12] 和上面ADCTSC寄存器中 AUTO_PST Bit2   XY_PST Bit[1:0]原理相同

 XPDATA Bit[9:0]最低10位用来保存ADC的值


448页‘ADCDAT1寄存器 和ADCDAT0功能一样的,只不过保存的数据不同

这里写图片描述

这个的低10位是用来保存 Y坐标的值


接下来是ADCUPDN触摸屏按下或者松开检查寄存器

这里写图片描述

TST_UP Bit1 触摸屏松开中断产生 

TST_DN Bit0 触摸屏按下中断产生


手册看完了,涉及到中断,我们看下这个图

这里写图片描述

它会涉及两个中断,按下或者松开,触摸笔的状态中断,另外一个启动ADC以后,ADC结束时也会产生一个中断,但是这个手册里没有看到中断的是能寄存器


那我们猜测一下,ADC模块或者触摸屏模块一定会发出中断

首先是ADC或者触摸屏产生中断,通过中断控制器发送中断给CPU

这里写图片描述

肯定有寄存器禁止/使能ADC或者触摸屏中断


我们看看中断控制器芯片手册中都需要设置什么

这里写图片描述

ADC中断源

这里写图片描述

ADC结束中断或者触摸屏中断,看来他们合起来用一个中断 

既然合并必然还会有一个寄存器来分辨到底是ADC还是触摸屏发生的中断变化


SRCPND寄存器 

31位为ADC中断

这里写图片描述

这里写图片描述

设置Bit[31]


INTMOD寄存器 

来决定是普通中断还是快中断模式

这里写图片描述

设置Bit[31]

这里写图片描述

INTMSK寄存器 

用来表示是否屏蔽这个中断

这里写图片描述

设置Bit[31]

这里写图片描述

优先级我们不需要设置


INTPND

这里写图片描述

设置Bit[31]表示中断是否正在处理

这里写图片描述

INTOFFSET 

设置Bit[31]

这里写图片描述

到底是ADC中断还是触摸屏中断,肯定有其他寄存器可以设置


SUBSOURCE PENDING寄存器 

INT_ADC_S Bit[10]表示ADC中断 

INT_TC Bit[9]表示触摸屏中断

这里写图片描述

INTSUBMSK 

应该也是同样的位 

INT_ADC_S Bit[10]表示ADC中断激活/屏蔽 

INT_TC Bit[9]表示触摸屏中断激活/屏蔽


这里写图片描述

我们可以通过INTSUBMSK来屏蔽ADC中断或者TouchScreen中断 

当然也可以是能某个中断 

可以通过SUBSRCPND来分辨到底产生那个中断 

INTSUBMSK 和SUBSOURCPND这两个寄存器都会汇集到一起 

变成一个叫做INT_ADC的中断来发送给CPU


框图就是这样

这里写图片描述

我们怎么写程序? 

写出一个框架 

1 初始化ADC/TouchScreen接口ADCCON时钟接口 

2 一开始触摸屏是没有被按下的,设置TS处于等待中断模式 

3 设置中断 

INTSUBMSK使能ADC中断和触摸屏中断,还有INTMSK设置这个寄存器使能ANT_ADC让他能够发给CPU 

4 按下触摸屏,进入TS中断 

4.1 进入自动采集模式(自动转换XY坐标) 

4.2 启动ADC 

5.转换完之后产生ADC中断 

5.1 读数据 

5.2 再次进入 “’等待中断”’模式 

5.3 启动定时器,处理长按或者滑动 

6 定时器中断 

6.1 判断是否松开,若松开结束 

6.2 若按下重新执行 4.2启动ADC步骤


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

开始触摸屏编程,关于触摸屏编程大概会分为3个小节

第006节_触摸屏编程_ADC中断

第007节触摸屏编程定时器程序优化

参考《嵌入式Linux应用开发完全手册》第14章 ADC和触摸屏接口

可以参考下面这张图

这里写图片描述

看懂这张图的关键点在于 

里面有个中断程序 AdcTsIntHandle 

它是总的中断,这里面要分辨 

if, 

如果是ADC中断 那么就调用Isr_adc来处理中段 

else if, 

如果是触摸屏中断,那么就调用Isr_tc中断, 

这些都是总中断具体的中断.


我们看看是怎么做的 

*一开始设置中断 

*初始化触摸屏控制器,进入等待中断模式 

*这个时候如果按下触摸屏就会进入Pen Down中断 

*就会进入AdcTsIntHandle这个总中断函数 

*这里面分辨是按下触摸屏 

*进入自动(连续) X/Y轴坐标转换模式,启动ADC, 

*ADC结束之后会产生一个ADC中断 

*又再次进入这个AdcTsIntHandle总中断 

*这里面分辨是ADC中断,这里面调用Isr_Adc 

*我可以读出这里面的数据,再次设置寄存器 

*进入等待Pen UP中断模式 

*松开触摸笔会再次产生一个中断 

*进入总中断AdcTsIntHandle这里面分辨,原来是松开了触摸笔,再次调用Isr_tc 

*这里面又会设置进入等待Pen Down中断模式


我们开始写代码,再上一个视频ADC代码上进行修改 

002_touchscreen_018_005/adc_touchscreen 

我们在adc_touchscreen目录下添加几个文件 

touchscreen_test.c 

touchscreen.c


我们打开touchscreen.c文件


void touchscreen_init(void)

{

    看看上面流程图

    /*1设置触摸屏接口:也就是寄存器 */


    /*2 设置中断我们需要提供中断处理函数 */


    /*3 让触摸屏控制器进入"等待中断模式" */


}


我们设置中断处理函数

void AdcTsIntHandle(void)

{

}

看一下之前我们是怎么写中断的,看一下interrupt.c文件

void key_eint_irq(int irq)

有个中断号


那么我们也定义个int irq参数

void AdcTsIntHandle(int irq)

我们在这个里面分辨一下

if (SUBSRCPND & (1</*调用*/  

    Isr_Tc();


else if //如果是ADC中断

//调用

    Isr_Adc();

我们等会实现这两个函数


我们继续写代码

void touchscreen_init(void)

{

    看看上面流程图


    /*1 设置中断我们需要提供中断处理函数 */

    adc_ts_int_init();


    /*2 设置触摸屏接口:也就是寄存器 */

    adc_ts_reg_init();


    /*3 让触摸屏控制器进入"等待中断模式" */

    enter_wait_pen_down_mode();


}


//我们先来实现 adc_ts_int_init


void adc_ts_int_init(void)

{

    /*注册中断处理函数*/

//怎么注册看之前的代码

    register_irq(irq, irq_handle);  


中断号是多少?

打开芯片手册,找到中断控制器

这里写图片描述
这里写图片描述

我们是31号中断 

register_irq(31, AdcTsIntHandle);


怎么使能中断?


我们需要把 INTSUBMISK寄存器的Bit9 Bit10设置为0 

宏定义


 #define ADC_INT_BIT (10)

 #define TC_INT_BIT  (9)

推荐阅读

史海拾趣

HALO Electronics公司的发展小趣事

鸿展光电(GPO)公司的发展故事

故事一:初创与定位

深圳市鸿展光电有限公司(GPO)成立于2009年6月12日,起初便定位于高端显示技术的研发与生产。公司创始人凭借对电子行业未来趋势的敏锐洞察,决定专注于玻璃盖板(CG)、外挂式液晶显示模组(LCM)、外挂式触控模组(TP)等产品的研发与生产。在成立初期,面对激烈的市场竞争,鸿展光电凭借高质量的产品和优质的服务,逐步在行业内站稳脚跟。随着技术团队的不断壮大和产品的持续优化,公司迅速成长为一家集研发、生产、销售于一体的国家级高新技术企业。

故事二:技术突破与创新

在发展过程中,鸿展光电始终将技术创新视为企业发展的核心动力。公司不断加大研发投入,积极引进国内外先进技术和设备,致力于提升产品的技术含量和附加值。特别是在内嵌式触控显示一体化模组(INCELL、ONCELL)以及新一代触控显示模组(MiniLED、MicroLED、AMOLED)等领域,鸿展光电取得了多项关键性技术突破,并成功将这些技术应用于实际生产中,进一步巩固了公司在行业内的领先地位。

故事三:市场拓展与品牌建设

随着产品线的不断丰富和技术实力的不断提升,鸿展光电开始积极拓展国内外市场。公司通过参加各类行业展会、举办技术交流会等方式,不断提升品牌知名度和影响力。同时,鸿展光电还积极与国内外知名企业建立合作关系,共同开发新产品、新技术,实现互利共赢。这些举措不仅为公司带来了更多的商业机会,也进一步提升了公司的市场地位和品牌价值。

故事四:产能扩大与效率提升

为了满足日益增长的市场需求,鸿展光电在扩大产能方面进行了不懈努力。公司通过优化生产流程、引进先进生产设备、提升员工技能水平等措施,不断提升生产效率和产品质量。同时,公司还加强了供应链管理,确保原材料的稳定供应和成品的及时交付。这些举措不仅有效提升了公司的产能和竞争力,也为公司的长期发展奠定了坚实基础。

故事五:社会责任与可持续发展

在追求经济效益的同时,鸿展光电也积极履行社会责任,推动企业的可持续发展。公司注重环境保护和节能减排工作,通过采用环保材料和节能技术、加强废水废气处理等措施,降低生产过程中的环境污染和资源消耗。此外,鸿展光电还积极参与公益事业和社会活动,为社会做出积极贡献。这些举措不仅提升了公司的社会形象和声誉,也为企业的长期发展注入了新的动力。

台湾富晶(FORTUNE)公司的发展小趣事
使用示波器等工具检查时钟信号的波形和频率是否正常。
Austek Microsystems公司的发展小趣事

随着业务的发展,Austek Microsystems逐渐意识到,单凭自身的力量难以在市场中取得长远的发展。因此,公司开始积极寻求与业内知名企业的合作。通过与这些企业的深入合作,Austek Microsystems不仅获得了更多的技术支持和市场资源,还成功将自身的产品推向了更广阔的市场。

Chyao Shiunn Electronic Industrial Ltd公司的发展小趣事

在追求经济效益的同时,Chyao Shiunn也注重履行社会责任。公司积极参与公益事业,为当地社区的发展做出贡献。同时,公司还注重环境保护和可持续发展,通过采用环保材料和节能减排技术等方式降低生产过程中的环境污染。这些举措不仅提升了公司的社会形象,也为公司的长远发展奠定了坚实基础。

请注意,这些故事都是虚构的,并不针对任何真实存在的公司。在现实中,每个公司的成长和发展都有其独特的故事和经历。如果您需要了解特定公司的真实发展历程,建议查阅相关资料或咨询相关人士。

南京中科微公司的发展小趣事

CSM成立以来,一直致力于研发具有自主知识产权的射频/模拟关键芯片。经过数年的辛勤耕耘,团队成功开发出了多款高性能的集成电路芯片与模块,其中不乏在功耗、成本、性能等方面达到国际先进水平的产品。这些技术突破不仅为公司赢得了市场的认可,也为国内电子行业的发展注入了新的活力。

DEMMELPRODUCTS公司的发展小趣事

DEMMELPRODUCTS公司深知人才是企业发展的根本。因此,公司始终注重人才培养和团队建设。通过制定科学的培训计划和激励机制,公司吸引了一批优秀的研发、生产和销售人才。同时,公司还鼓励员工之间进行知识和经验的分享与交流,形成了积极向上的团队氛围。这些优秀的人才和团队为公司的发展提供了有力的支持。

问答坊 | AI 解惑

机动车尾号限行提示器

机动车尾号限行提示器…

查看全部问答>

PSDSoft Express软件生成的编程文件obj格式解析

各位好:     最近用到PSDSoft Express软件,其生成的编程文件obj中,包含:PLD映射,SRAM数据,EPROM数据,不知如何划分!因为编程PSD501芯片要用到这个文件.    另外,发现此软件生成的项目中,在生成obj文件之前,会自动 ...…

查看全部问答>

谁能给我讲下SPI总线是如何识别相同设备优先级的?

就是在一个SPI总线上我有两个一样的IC,A,B;现在SPI总线是如何识别他们两个呢?怎样确定他们的优先级呢?比如说要把A的那个信号切换到什么状态的方法? 请高手指教!…

查看全部问答>

北桥坏了?

哪个兄弟知道北桥坏了 电脑是什么症状? …

查看全部问答>

pc的串口中断

最近搞单片机和pc通信    想问pc机的串口如果有接受中断 用c 在dos下怎么编呢? 比如说在keil中有 void serial(void) interrupt 4 这样有中断就可以进入中断服务程序 但是用c 在tubor c下如何实现其进入中断服务程序呢? 不啬赐教!…

查看全部问答>

51系列单片机驱动彩色液晶显示模块

51系列单片机驱动彩色液晶显示模块 关键字:51系列单片机,驱动,彩色液晶,显示,模块 其核心电路均采用大规模可编程逻辑器件设计,全硬件实现,性能稳定可靠,产品一致性好。采用简单的并行总线方式与51 单片机、AVR、DSP、PIC、ARM等CPU 直接 ...…

查看全部问答>

DSP应用系统设计

我帮老师扫描的第三本书…

查看全部问答>

几年来学习的过程的体会

       很早的时候知道嵌入式很火,自己也很喜欢。于是自己抱着书看,看51、arm... ,最后还学linux,学习移植,编译内核,都是蒙着头过河。一味的追求想象中的 高科技,现在才发现自己的学习之路走的有点偏。 &n ...…

查看全部问答>

手机游戏 触摸屏 知识

本帖最后由 jameswangsynnex 于 2015-3-3 19:57 编辑  请问:触摸屏手机游戏的设计原理是什么?具体的部件和步骤是什么?需要用到哪些相关知识? …

查看全部问答>