天天看点

(1)mifare卡读写器开发心得『转』--整理重发贴

呵呵,别人的帖子,原主贴被删了,无法用BBS方式浏览,整理重新转发一下

确实太大,估计要分十几贴才能转完:-(

【侃单片机】:mifare卡读写器开发心得

发信人: jiangbo123 发表时间: 2002-11-20 10:21:50

--------------------------------------------------------------------------------

坛子里好像越来越多的人对此产生了兴趣。

我最初的读卡器是用CM200开发的,硬件开发没有什么特别的,CM200内部带地址锁存,接口很方便,其它的按照 datasheet照搬就行了。关键是天线板的设计,尺寸形状都会影响,而我觉得这些定了之后,设计的关键又是天线板上的电容电阻参数的选择,选择不对,大大的影响寻卡距离,甚至导致不能寻到卡。

datasheet上提供的操作距离可以达到2.5cm,后来我后来发消息实际上距离最远的可以达到4cm左右。软件的开发方面,如果能够得到philips的相关光盘,开发是非常容易的,因为它几乎提供了所有的函数源码,并且都是51的,几乎可以不做任何改动。CM200很稳定,可以放心的操作,不像RC500,容易损坏。  

发信人: jiangbo123 发表时间: 2002-11-20 10:52:24

--------------------------------------------------------------------------------

RC500芯片支持最远10cm读写,但是你的天线也必须做得比较大。RC500最大的不爽就是它在操作不对时容易坏,特别是使用仿真器调试的老兄一定要注意,千万不要在对RC500进行操作的过程中设置断点,这种情况下非常容易损坏RC500,如果你原来调试好的程序突然不能用了,你不要反复的重试,先拿示波器看看rc500的tx1和tx2脚是不是还有波行输出,如果晶振有信号但是tx1和tx2没有输出,很不幸,你的rc500已经损坏,并且是不可修复的。另外一种情况是你的程序里有bug,在调试系统的其它模块时对rc500进行了误操作,这也非常容易损坏。所以我的经验是先调试好其它所有的模块再焊上RC500芯片。呵呵,每片可都是一百好几十大洋哟。

发信人: jiangbo123 发表时间: 2002-11-20 11:18:51

--------------------------------------------------------------------------------

同样的,你也可以从philips公司获得该芯片的源码示例,并且提供51单片机和16位单片机的两种源码,但是这次提供的源码就没有CM200那次的爽了,绝大多数仍然是可以直接用的,但是有个别的地方需要修改,甚至有bug,而这些地方就足够你头痛的了,因为你根本不知道问题出在哪里,是你操作不对,还是程序有问题。首先出现问题最大的地方就是变量的定义的问题,在进行下载密码操作(loadkeyE2)时,实际上是将密码进行格式转换之后写到相应地址的EPROM中,最后调用的实际是WriteE2,这时候你要注意写进去地址的计算,我看到的是 unsigned char idata e2addr = 0x80 sector * 0x18;这样你马上就会发现一旦扇区号超过5,计算的地址就会溢出,导致出错。类似情况好像还有,具体我不记得了。

发信人: 修哥 发表时间: 2002-11-20 11:23:07

--------------------------------------------------------------------------------

我们正准备采用RC500模块,天线自己设计,首先谢谢你的指点,另外在天线设计上能提供更详细的说明吗?

发信人: jiangbo123 发表时间: 2002-11-20 11:24:11

--------------------------------------------------------------------------------

另外,在对rc500进行复位的时候原来有这样的语句:

while (((ReadRawIO(RegCommand) & 0x3F) != 0x3F) && !T2IR);

    // while reset sequence in progress

while ((ReadRawIO(RegCommand) & 0x3F) && !T2IR);

后来我反复试验发现经常在第一个 while语句处出现超时错误(由于T2IR退出循环),于是我将第一个 while去掉,一切ok,rc500也可以复位成功。不知道有没有老兄有不同的情况,欢迎交流。

发信人: jiangbo123 发表时间: 2002-11-20 11:33:54

--------------------------------------------------------------------------------

总之,采用rc500开发读卡器,如果没能从philips公司获得源码,开发难度个人认为非常之大,因为你很难从 datasheet中非常详细的了解每个操作的前前后后的细节,你也不知道应该在什么时候判断随时出现的那些错误,你不可能不停的监视错误寄存器。而如果你有了源码的话,你就是多费心调试了。而最痛苦的时你不单步执行就很难发现问题在哪里,而单步执行又很容易损坏芯片。我从开始到开发成功两款读卡设备(一个51系统的,一个龙珠系统的)一共坏了5块芯片,六七百大洋飞了。呵呵,各位要小心行事的好。

发信人: jiangbo123 发表时间: 2002-11-20 11:42:53

--------------------------------------------------------------------------------

其实RC500和CM200的天线设计的文档只有很小的区别,在文档的最后甚至都给出了PCB板的图,所以你只需依葫芦画瓢就可以了。而其实CM200的天线可以原封不动的用在rc500上,我的rc500的天线就是直接用的原来cm200的。一旦天线的pcb定了之后,电容电阻参数的选择就要费一点功夫了,我不懂RF,所以我的参数都是根据文档的原则然后一点点试出来的,文档里说到的计算电感等东东,我都没有搞(也不会搞,呵呵)。另外文档提到,天线板和主板之间有两种匹配方式,如果连线长度小于3cm,可以直接连接;如果长度大于3cm,好像要用什么同轴电缆,还什么50欧姆电阻匹配,我没有用过,也忘了。

RC500的接收电路按照文档来就可以了,上面电路图,参数都有。

发信人: 修哥 发表时间: 2002-11-20 14:30:40

--------------------------------------------------------------------------------

发信人: lvsejingdian 发表时间: 2002-11-20 14:40:11

--------------------------------------------------------------------------------

请问:输出何种数据格式,如是维根码,如何读取?

发信人: zhugn 发表时间: 2002-11-20 14:48:43

--------------------------------------------------------------------------------

发信人: jiangbo123 发表时间: 2002-11-20 15:45:43

--------------------------------------------------------------------------------

支持mifare light卡,RC500支持所有mifare系列的甚至ISO14443A标准的卡,但是mifare light卡已经停产,它的容量太小,现在在简单应用上可以采用ultral light卡。

发信人: jiangbo123 发表时间: 2002-11-20 15:49:17

--------------------------------------------------------------------------------

S70卡和mifare 1卡类似,仅仅是容量大了,共有49个扇区,并且33~49扇区每个扇区都有16块,最后一块是密码,其它块用户都可以保存数据。每块同样是16字节。

发信人: jiangbo123 发表时间: 2002-11-20 16:04:41

--------------------------------------------------------------------------------

发现原来没人感兴趣。呵呵。

发信人: 阳_xu 发表时间: 2002-11-20 16:32:55

--------------------------------------------------------------------------------

发信人: 修哥 发表时间: 2002-11-21 11:20:18

--------------------------------------------------------------------------------

虽然我们暂时只是采用模块,但对我们还是很有帮助的。

发信人: cbx2 发表时间: 2002-11-21 11:33:43

--------------------------------------------------------------------------------

资料上的天线是四层板做的,是否可以用两层板就可以了?

发信人: yzx8069 发表时间: 2002-11-21 21:23:04

--------------------------------------------------------------------------------

我一不小心把+12V电源接数据线上就烧了一个读卡器。请jiangbo123继续发言。  

发信人: jiangbo123 发表时间: 2002-11-21 21:35:52

--------------------------------------------------------------------------------

to cbx2 :双面板可以的。

发信人: yzx8069 发表时间: 2002-11-21 22:05:16

--------------------------------------------------------------------------------

一般用什么进行保护,工程商接线时也常将电源线接于维根输出线上,有好几个读卡器送回来了。如何解决?

发信人: jiangbo123 发表时间: 2002-11-22 09:38:25

--------------------------------------------------------------------------------

不好意思,昨天我说错了。

s70卡的容量应该是4k字节,一共是256块,每块16字节。一共40扇区,前32扇区每个扇区4块,最后一块是密码,后面的扇区,每个扇区16块,最后一块是密码。呵呵。

发信人: 傲气雄鹰 发表时间: 2002-11-22 09:52:24

--------------------------------------------------------------------------------

发信人: srz 发表时间: 2002-11-25 18:00:45

--------------------------------------------------------------------------------

表现为TX1,TX2无信号输出。一直不知为何?问周立功公司答复说RC500不容易坏,可能天线设计不好。

jiangbo123你坏的现象是怎样?单步执行很容易损坏芯片那你开发

是如何调试呢?

发信人: jiangbo123 发表时间: 2002-11-26 09:16:20

--------------------------------------------------------------------------------

他怕你不用他们的rc500,我咨询过philips公司的上海技术支持,就是他告诉我RC500的毛病的,我一直也以为是我的程序或者硬件设计不对导致的。所以调试的时候千万不要在操作RC500的过程中随便设置断点,更不要对一些无关的寄存器(标记为RFU)进行读写操作,呵呵,很容易坏的,你只坏了2片,已经不错了。调试时最好不要在philips公司提供的函数中设断点,发现结果不对,只好自己读函数代码,靠眼力发现bug了。呵呵。

发信人: jiangbo123 发表时间: 2002-11-26 09:28:48

--------------------------------------------------------------------------------

现在发现很多公司提供所谓的RC500读卡模块,其实就是购买RC500芯片加上晶振和几个电容电阻,做成DIP封装,然后将从philips公司拿到的代码封装成库提供给用户,这样每片就净赚进百块。真的是不错,呵呵,如果你对产品成本敏感的话还是自己做吧。

发信人: srz 发表时间: 2002-11-26 09:43:57

--------------------------------------------------------------------------------

我将RegRxThreshold赋值为0FFH收不到值,如赋为00H,RegFIFO data没有卡也能读读到00值,RegRxThreshold最佳值为多少呢?

                    再次感谢jiangbo123。  

发信人: rdeng 发表时间: 2002-11-27 09:04:43

--------------------------------------------------------------------------------

Pls mail your contact and detailed in formation. my mail:[email protected]

发信人: jiangbo123 发表时间: 2002-11-27 12:26:10

--------------------------------------------------------------------------------

to rdeng:

   qq:24280715    email:[email protected]

发信人: zhugn 发表时间: 2002-11-27 15:32:01

--------------------------------------------------------------------------------

发信人: CBX2 发表时间: 2002-11-28 12:40:02

--------------------------------------------------------------------------------

我照PHILIP的DEMO搭的电路不起振,其中32脚是高电平,1脚是低电平

请问知道哪里有问题?该不会是芯片坏了吧。

还有,我现在没接天线不知道有没有关系?

//bow

还有请问用过周立功模块的大虾,你们购买的是读写模块还是开发系统,

要多少M啊?

发信人: jiangbo123 发表时间: 2002-11-28 13:44:51

--------------------------------------------------------------------------------

系统上电后,RC500的晶振并不起振,只有对其寄存器进行了初始化操作之后才可以测到晶振信号。接没接天线和晶振没有关系。买别人的模块或开发系统都不会便宜的,我认为。呵呵。

发信人: tpu 发表时间: 2002-11-28 22:07:11

--------------------------------------------------------------------------------

我费劲心机,总算将type A搞出来,接下来要搞type B了。

type B的天线与type A有区别没有?可不可以直接用呢?

type B的寄存器怎样配置呢?有没有大虾搞过的?

发信人: jiangbo123 发表时间: 2002-12-02 15:51:28

--------------------------------------------------------------------------------

国家推行的ic卡身份识别就用的是TYPE B的卡。

发信人: wangkj 发表时间: 2002-12-04 16:44:53

--------------------------------------------------------------------------------

是单独购买 软件还是买硬件送的,或是下载?

发信人: littony 发表时间: 2002-12-05 22:49:15

--------------------------------------------------------------------------------

发信人: littony 发表时间: 2002-12-05 22:49:50

--------------------------------------------------------------------------------

发信人: littony 发表时间: 2002-12-05 22:51:49

--------------------------------------------------------------------------------

发信人: jiangbo123 发表时间: 2002-12-06 09:02:45

--------------------------------------------------------------------------------

呵呵,有cpu卡,memory卡,mifare卡等等,你用的那种卡呢?

发信人: majin1979 发表时间: 2002-12-10 16:59:49

--------------------------------------------------------------------------------

我手头有飞利浦公司的源程序及开发文档,但是文档是针对开发好的Demo的,没有芯片寄存器地址及位定义的资料,希望有此资料的同仁能提供  [email protected]  不胜感激,本人有比较详细的其他资料,可以与有意者合作。

发信人: majin1979 发表时间: 2002-12-10 17:38:33

--------------------------------------------------------------------------------

jiangbo123,你遇到的 while问题我也遇到,发现似乎跟编译器有关,原始代码为

while (((ReadRawIO(RegCommand) & 0x3F) != 0x3F) && !T2IR);

总是出错,改为

temp=(((ReadRawIO(RegCommand) & 0x3F) != 0x3F) && !T2IR);

while(temp);

OK了,晕~~有鬼!

请问一个问题:

当cmd==0x41,MODE==ALL时,进行request all操作,RC500得到的MF卡类型存放在何处?程序中是如何得到的?我看了许久都没发现M500PcdCmd()中有用到点子上的ReadIO(),全是WriteIO().(手头没有RC500的寄存器资料,jiangbo123你那里有没有?)可以给我说一下吗?被它的全局变量搞晕了!PiccCommonRequest()的最后有句

memcpy(atq,MRcvBuffer,2);

可是没见到MRcvBuffer在哪被赋值呀,谁可以救救我,jiangbo123,救命呀!

发信人: tpu 发表时间: 2002-12-10 22:10:07

--------------------------------------------------------------------------------

接受数据是在中断处理中作的。

发信人: jiangbo123 发表时间: 2002-12-11 08:46:48

--------------------------------------------------------------------------------

所以的数据接收都是在中断处理中完成的,每执行一条指令就会申请一次中断,取得RC500的回复。你可以注意看看M500PcdCmd函数传入的参数是指针,并且调用的时候传入的是MRcvBuffer,然后在该函数的开始就利用传入的地址对中断中用到的指针进行初始化:

   MpIsrInfo = info;  

   MpIsrOut   = rcv;

这样在中断中的语句接收到的数据其实就保存到了MRcvBuffer:

MpIsrOut[MpIsrInfo->nBytesReceived] = ReadRawIO(RegFIFO data);

发信人: jiangbo123 发表时间: 2002-12-11 08:51:14

--------------------------------------------------------------------------------

如果你调用的是寻卡,那么返回到MRcvBuffer里的数据就是卡的类型码,这个时候PiccCommonRequest()的最后的那句memcpy(atq,MRcvBuffer,2),就将卡类型码返回给你最初传入的参数atq,于是寻卡操作结束,函数最终返回。

其实如果看的累的话,可以不管细节直接将函数提出来用就可以了。呵呵。

发信人: brair 发表时间: 2002-12-11 09:04:21

--------------------------------------------------------------------------------

各位大虾,我在用RC500芯片对其操作时,在WriteE2结果正确(无ACCESSERR标志置位,且我在用LOADCONFIG进行装入配置操作时,各寄存器的值也都是我所期望的值),而在用ReadE2(代码03H)命令进行读取操作时读出的数据总是不全正确,且每次读出数据都不全相同,每次都只有部分是正确的,且读出的FIFOLENGTH也是我所期望的值,不知是什么原因,还请各位大虾多多指教!不胜感激!!!

发信人: majin1979 发表时间: 2002-12-11 09:16:28

--------------------------------------------------------------------------------

jiangbo123:早上好,你那里应该也有我手头的这个官方Demo代码吧,你的建议我也不是没想到过,可是开发不是个一蹴而就的事情,为了以后的开发着想,我还是想搞懂为上,一通百通嘛。

这里有了一个基本的问题:

当PiccCommonRequest()中

使用status = M500PcdCmdPCD_TRANSCEIVE,

                      MSndBuffer,

                      MRcvBuffer,

                      &MInfo);

进行寻卡功能调用时,被调用的函数为

char M500PcdCmd( unsigned char cmd,

                 volatile unsigned char* send,

                 volatile unsigned char* rcv,

                 volatile MfCmdInfo *info);

此函数返回的只有 status

那么我需要的MRcvBuffer的值会随着被调用函数中的rcv的值改变而改变吗?我想应该不会吧?

那么在

memcpy(atq,MRcvBuffer,2);

中的MRcvBuffer中的值从何而来?搞懂了这个问题,我就基本上没问题了。

能给点指点吗?

发信人: majin1979 发表时间: 2002-12-11 09:25:16

--------------------------------------------------------------------------------

看了看,似乎有点懂了,谢谢了,jiangbo123。不懂再问!

发信人: jiangbo123 发表时间: 2002-12-11 09:30:28

--------------------------------------------------------------------------------

老兄,在哪高就呢?我们应该是同龄人哟。呵呵。

发信人: brair 发表时间: 2002-12-11 09:37:00

--------------------------------------------------------------------------------

是1979吧!看来我们也是同龄人啊,不知老兄能否帮小弟一把呢,我是初入此门,不懂的实在是太多了,这不,我在发送TRANSCEIVE命令后,时而能收到错误的数据,时而又发生超时错误,真不知是什么原因造成的,还请兄台多多指导啊!!!

发信人: srz 发表时间: 2002-12-11 10:05:19

--------------------------------------------------------------------------------

发信人: brair 发表时间: 2002-12-11 10:08:11

--------------------------------------------------------------------------------

我正在用汇编啊,可是总有一些莫名其妙的问题如上所提,不知你是不是也用汇编呢?多多交流啊!!

发信人: levis 发表时间: 2002-12-11 11:28:35

--------------------------------------------------------------------------------

我们是飞利浦半导体MIFARE产品总代理。

请联系香港飞环电子上海办事处                          

李万胜 (技术及销售工程师)

地址:上海市中山西路1800号兆丰环球大厦9D        

邮编: 200233

电话:(86-21)64401506  64401629  64401743          

传真:(86-21)64401629  64401743

E-mail:[email protected]    [email protected]

发信人: stevenson 发表时间: 2002-12-11 15:21:37

--------------------------------------------------------------------------------

不过需要与我司签订NDA协议,若有需要,请来电联系。

021-64401629

发信人: stevenson 发表时间: 2002-12-11 15:26:10

--------------------------------------------------------------------------------

因为它同时支持iso14443 TypeA和Type B协议  

发信人: stevenson 发表时间: 2002-12-11 15:31:39

--------------------------------------------------------------------------------

需要的话,可与我联系。

021-64401629

飞环电子 Mr.zhou

发信人: stevenson 发表时间: 2002-12-11 15:34:05

--------------------------------------------------------------------------------

发信人: stevenson 发表时间: 2002-12-11 17:20:55

--------------------------------------------------------------------------------

你为philips 一级代理商,为你提供完整的方案,sch/pcb and code

发信人: jiangbo123 发表时间: 2002-12-12 09:34:47

--------------------------------------------------------------------------------

居然引来了一堆代理,哈哈。各位以后不用和我联系了,直接和代理联系好了。上海飞环的有个周先生,人很好的,我的资料就是从他那里拿到的,各位找他吧,不错的。

发信人: yaoji104 发表时间: 2002-12-12 14:28:08

--------------------------------------------------------------------------------

你读E2 时吧 TX1、TX2关闭试试。有人成功过。

发信人: cxshj 发表时间: 2002-12-12 14:32:11

--------------------------------------------------------------------------------

用示波器测波形,波形也有的,不知如何稳定,使每块板都稳定工作?

当初用烙铁焊rc500,报废了一片,rc500的晶振时振时不振。

难啊。

发信人: brair 发表时间: 2002-12-12 14:48:51

--------------------------------------------------------------------------------

今天上午,我已经关闭TX1,TX2试过了,也已经成功了!谢谢!

发信人: cxshj 发表时间: 2002-12-12 15:13:17

--------------------------------------------------------------------------------

用示波器测波形,波形也有的,不知如何稳定,使每块板都稳定工作?

当初用烙铁焊rc500,报废了一片,rc500的晶振时振时不振。

难啊。

发信人: jiangbo123 发表时间: 2002-12-12 16:35:13

--------------------------------------------------------------------------------

测试RC500是否损坏时,应该先对芯片进行初始化,然后在测试TX2,TX1引脚。因为一上电之后,如果没有初始化,rc500不仅tx1和tx2没有输出,甚至连晶振信号都没有。

发信人: cxshj 发表时间: 2002-12-12 17:13:19

--------------------------------------------------------------------------------

发信人: cxshj 发表时间: 2002-12-12 17:16:08

--------------------------------------------------------------------------------

发信人: cbx2 发表时间: 2002-12-12 17:23:04

--------------------------------------------------------------------------------

不知道是什么问题。

是不是芯片坏了?RC500各个脚我是用线飞出来到插座上的,估计

是已经焊坏了。

贴片以前没做过,换起来有点难,对我来说。

不知道各位开发贴片芯片时是怎么做的?

发信人: lgxygcg 发表时间: 2002-12-12 18:43:29

--------------------------------------------------------------------------------

我调试程序的时候,没有出现坏片子的情况啊。我也跟踪过一些函数和中断,也没出现过坏片的情况。就是感觉给的DEMO程序中的初始化函数中,有一个 while(),不知道怎么回事就是下不去。看了也感觉不太对,所以改成了延时,程序就过了,没发现什么问题。不知道大家有没有见这个现象。

发信人: cxshj 发表时间: 2002-12-12 18:50:41

--------------------------------------------------------------------------------

我现在正头大,同一批板,同样的程序,有好几块经常上电后,rc500晶振不起振。

发信人: lgxygcg 发表时间: 2002-12-12 19:35:43

--------------------------------------------------------------------------------

在初始化中,往一个什么命令寄存器写一个命令。等待几个毫秒。

就应该有型号了,具体我也记不清楚了。搞过的时间比较长了。

发信人: lgxygcg 发表时间: 2002-12-12 19:38:03

--------------------------------------------------------------------------------

发信人: jiangbo123 发表时间: 2002-12-13 08:29:57

--------------------------------------------------------------------------------

关于初始化函数里的 while()语句,请参考我前几次发的帖子。我也遇到了同样的问题。

发信人: cxshj 发表时间: 2002-12-13 09:01:36

--------------------------------------------------------------------------------

用rc500做了几块板子,有好些板经常读不出卡号     后用示波器查看,发现rc500的晶振没起振,有时一上电就不起振,有时工作几秒后停振了。    但其中2块板很正常。

程序是一样的,线路板是同一批,我想不通。

发信人: qin_peng 发表时间: 2002-12-13 09:08:47

--------------------------------------------------------------------------------

你的T2IR有问题。如果用temp=(((ReadRawIO(RegCommand) & 0x3F) != 0x3F) && !T2IR);后面的操作极可能不成功

发信人: qin_peng 发表时间: 2002-12-13 09:26:19

--------------------------------------------------------------------------------

PHILIPS提供的DEMO程序是在22MHZ上的,如果你用其他的晶振要重新计算延时,并且你的主板有没有WATCH doG如果有在 while语句里面加复位WATCH doG

发信人: stevenson 发表时间: 2002-12-13 09:42:38

--------------------------------------------------------------------------------

各位mifare Pro的客户们:

  基于0.6微米技术的mifare Pro 双界面卡(MFD80)将会结束它的生命周期。

  2003年1月1日起,philips将停止生产mifare Pro,接受订单最后日期将在2003年9月。

  取而代之的是基于0.35微米技术的mifare ProX P8RF6008.

性能如下:8K BYTE EEPROM,48K BYTE ROM,1.3K BYTE RAM,3 DES coprocessor,Memory management unit,and optionally 1K or 4K mifare emulation mode

发信人: lgxygcg 发表时间: 2002-12-13 10:44:43

--------------------------------------------------------------------------------

发信人: stevenson 发表时间: 2002-12-13 15:49:16

--------------------------------------------------------------------------------

当然还与外部环境因素有很大关系。

发信人: stevenson 发表时间: 2002-12-13 16:20:44

--------------------------------------------------------------------------------

完全兼容RC500,而且不用作任何改动(软件和硬件)。正如jiangbo123说的那样,RC500对EEPROM进行了误操作时,很容易发生硬件损伤,而RC531则不会。只是由于目前推广的原因,RC531很昂贵,但相信随着二代身份证的应用,价格只是时间问题。

发信人: cxshj 发表时间: 2002-12-13 17:07:40

--------------------------------------------------------------------------------

发信人: stevenson 发表时间: 2002-12-13 18:21:51

--------------------------------------------------------------------------------

非普通的数字逻辑电路,由于它内部集成了RF电路,而这部分正是比较脆弱的地方,所以才会在你发生误操作时出现损伤。这也是工程师在开发过程需要特别注意的地方,但却是很难避免的,就算是交点学费啦

发信人: cxshj 发表时间: 2002-12-13 18:30:08

--------------------------------------------------------------------------------

发信人: 爬到最顶峰 发表时间: 2002-12-14 14:15:12

--------------------------------------------------------------------------------

发信人: brair 发表时间: 2002-12-16 14:39:09

--------------------------------------------------------------------------------

请问各位大虾,在start_timeout( unsigned   int_50us)函数中为什么赋值语句Count down=_50us总是错误的呢,调试时,_50us的值是42000,而这条语句执行后Count down的值则是1280,一直是这样,且在T2中断服务程序中Count down的值一直是1280,不知是什么原因,还请各位给点指导啊!谢谢!!!

继续阅读