阅读:1765回复:9
关于FIRMWARE 问题
各位好:
我看了CY自带的FIRMWARE的程序匡架,关于电源管理我有几个问题想不通,想请教一下. if (Sleep) { if(TD_Suspend()) { Sleep = FALSE; do { EZUSB_Susp(); } while(!Rwuen && EZUSB_EXTWAKEUP()); . EZUSB_Resume(); TD_Resume(); } } 上述程序就是电源管理程序,SLEEP是通过Suspend中断来置1的,表示将进入挂起状态,但是下面if(TD_Suspend())里面的TD_Suspend()这个函数在CY的程序总什么都没做.直接返回1.我知道这个函数还有什么作用呢,还有EZUSB_Susp();这个函数,我没有找到它的原程序.USB资料上说,要把进入Suspend状态必须SETB PCON.0操作,那么这个操作是在上面哪个函数完成的呢????????? 还有下面的Resume,EZUSB_Resume();TD_Resume();两个函数好象也什么事都没做.Resume所发生的中断也就是把中断清了. 那么USB是怎样从Suspend跳出来的呢????? 真实把我弄糊涂了,请高手给指点一下吧 |
|
沙发#
发布于:2002-08-20 18:01
关注
|
|
板凳#
发布于:2002-08-20 11:34
做电源管理也没啥呀,你把自定义的两个函数添上代码就行乐,其他的也不要自己做,库函数替你做了
|
|
地板#
发布于:2002-08-20 11:27
好象我问的这些问题大家都不太注意,但是这些应该是后期开发比较重要的呀.SUNKAI,我做的就是便协式的.
|
|
地下室#
发布于:2002-08-20 10:38
SUNKAI:谢谢你的回答,可是不用管那就少了一些功能呀! 有电源管理当然好,没有也行,一般情况禁止挂起应该可以吧,除非便携式系统或者要求必须做.代码一段我好像也见过,但是找不着了,没有上下文我也不好说. |
|
5楼#
发布于:2002-08-20 08:58
库函数源代码在:\\Cypress\\USB\\Target\\Lib\\下.EZUSB_Resume(),EZUSB_Susp()是库函数.
TD_Suspend(),TD_Resume()是自定义函数,是空非空由你决定,表示在挂起之前和恢复之后你想要做什么,也可以什么也不做,不难理解. |
|
6楼#
发布于:2002-08-19 17:16
SUNKAI:谢谢你的回答,可是不用管那就少了一些功能呀!
还有我正想请教你一个问题呢! 就是关于DATA0,DATA1,的问题.我有点一知半解的. 我看底层代码是这样写的. if (EPIO[IN3BUF_ID].cntrl & bmEPBUSY) { TOGCTL = 0x08 | IN3BUF_ID; WRITEDELAY(); if (TOGCTL & 0x80) TOGCTL |= 0x20; else TOGCTL |= 0x40; } 我也能看懂,这段代码是不是传输出错后由主机来调用呢! |
|
7楼#
发布于:2002-08-19 16:53
不用管也行,不相信?试试就知道了。
|
|
8楼#
发布于:2002-08-19 14:13
那电源管理怎么处理呢!!
|
|
9楼#
发布于:2002-08-19 11:59
这一整段可以统统不要,去掉
|
|