请数学帮帮忙好的大神帮帮忙,用函数解释一下这三题,易懂一点的。

查看: 567|回复: 9
咔,大神给解释一下这个bittime函数好吗
这两天看stc的例程,下面的函数不懂啊。为什么这样计算啊???
/********************** 模拟串口相关函数************************/
void BitTime(void) //位时间函数
i = ((MAIN_Fosc / 100) * 104) / 140000 - 1;&&//根据主时钟来计算位时间
while(--i);
消灭零回复。自顶。
消灭1回复。帮顶
谢谢楼上。补充说一下:Main_Fosc是单片机主频。
void BitTime(void)是一个用指令周期来延时的函数,他的延时时间不受单片机主频的影响,当单片机选择不同的主频时, BitTime()函数的循环变量会自动修正,从而保证延时时间不变。
BitTime()是位延时函数,他对应9600波特率,延时时间1/us/位。
gxg0000 发表于
void BitTime(void)是一个用指令周期来延时的函数,他的延时时间不受单片机主频的影响,当单片机选择不同的 ...
矿坛果真有大师啊,我知道104的来历了,可是公式还没懂。
我再顶期待透彻讲析
以BitTime() 位时间函数延时104us举例,时钟选择12M,
函数中 i=(( / 100) * 104) / 140000 - 1=89 --------公式
while(--i);在12M主频下语句执行时间1.17us,总的延时是89*1.17us=104.13, 答案是正确的。
很显然,为了保证延时104us,while(--i)语句必须循环89次,即i=89,
公式中MAIN_Fosc和104(或改成位延时变量更合理)可以用参数传入函数,其他常数没有意义,主要在上述条件下保证计数结果89就可以。
RE: 咔,大神给解释一下这个bittime函数好吗
gxg0000 发表于
以BitTime() 位时间函数延时104us举例,时钟选择12M,
函数中 i=(( / 100) * 104) / 140000 - 1=8 ...
谢谢您的回复
gxg0000 发表于
以BitTime() 位时间函数延时104us举例,时钟选择12M,
函数中 i=(( / 100) * 104) / 140000 - 1=8 ...
高.我明白了。
微信:caoyin513 E-mail:
Powered by苹果/安卓/wp
积分 37, 距离下一级还需 8 积分
道具: 彩虹炫, 涂鸦板, 雷达卡, 热点灯, 金钱卡下一级可获得
道具: 显身卡
购买后可立即获得
权限: 隐身
道具: 金钱卡, 彩虹炫, 雷达卡, 热点灯, 涂鸦板
23:35:23 上传
23:35:21 上传
载入中......
一只小菜鸟告诉您:第一幅图大概就是Y对X的扰动立即作出响应,第一期响应大约为-4,第二期达到了峰值且为正向。随后Y对X的扰动持续下降。在第八期左右Y对X的扰动趋向于0。然后再结合具体的Y和X来分析吧~
菜鸟的话不可尽信哦。。。。。
本帖被以下文库推荐
& |主题: 8540, 订阅: 51
本帖最后由 hemit 于
23:51 编辑
一只小菜鸟告诉您:第一幅图大概就是Y对X的扰动立即作出响应,第一期响应大约为-4,第二期达到了峰值且为正向。随后Y对X的扰动持续下降。在第八期左右Y对X的扰动趋向于0。然后再结合具体的Y和X来分析吧~
菜鸟的话不可尽信哦。。。。。
热心帮助其他会员
总评分:&经验 + 10&
论坛币 + 10&
hemit 发表于
一只小菜鸟告诉您:第一幅图大概就是Y对X的扰动立即作出响应,第一期响应大约为-4,第二期达到了峰值且为正 ...还是不太明白,菜鸟大师,我就如一个新手,能举个例子做实际意义解说吗
doubleting1991 发表于
还是不太明白,菜鸟大师,我就如一个新手,能举个例子做实际意义解说吗不就对着您的第一幅图给了解说了吗?
菜鸟大师真是大师
菜鸟很给力
hemit 发表于
一只小菜鸟告诉您:第一幅图大概就是Y对X的扰动立即作出响应,第一期响应大约为-4,第二期达到了峰值且为正 ...果然错了
大磊2014 发表于
菜鸟大师真是大师你们在说反话吧
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
如有投资本站或合作意向,请联系(010-);
邮箱:service@pinggu.org
投诉或不良信息处理:(010-)
论坛法律顾问:王进律师查看:2485|回复:3
本人正在学习oracle,要做一个查询,nvl(pracerea,a.price*0.9)时,pracerea,非空时,能正常显示值,为空时,却显示的仍然为空,没有达到显示预期的a.price*0.9,说明下a.price是有值的。请问,下面哪里写错了呢?
select a.placenid,a.placename,a.goodsid,a.goodsname,a.price,
(select nvl(pracerea,a.price*0.9) from table1
where a.goodsid=goodsid(+) and placenid=110) pracerea
from table2 a
初级工程师
select nvl(pracerea,a.price*0.9) from table1
where a.goodsid=goodsid(+) and placenid=110
你先把这个子查询执行一遍看看出现什么结果。然后再看看整个执行出来是什么结果 。对比下试试
引用:原帖由 aiguo1999 于
21:15 发表
select nvl(pracerea,a.price*0.9) from table1
where a.goodsid=goodsid(+) and placenid=110
你先把这个子查询执行一遍看看出现什么结果。然后再看看整个执行出来是什么结果 。对比下试试 ... select nvl(b.pracerea,a.price*0.9) from table1 b,table2 a
where a.goodsid=b.goodsid(+) and a.placenid=110
检查过子查询没问题,能够返回a.price*0.9值
pracerea 不是NULL吧,你再看看。 是不是空字符啊21ic官方微信-->
后使用快捷导航没有帐号?
请完成以下验证码
查看: 4913|回复: 9
关于xferdatadata()函数,各位大神麻烦帮帮忙
&&未结帖(20)
主题帖子积分
实习生, 积分 12, 距离下一级还需 38 积分
实习生, 积分 12, 距离下一级还需 38 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
实习生, 积分 12, 距离下一级还需 38 积分
实习生, 积分 12, 距离下一级还需 38 积分
本人usb开发方面的菜鸟,最近负责cyusb3014的上位机编程,对于固件的配置完全不熟,这几天利用官方提供的cyusbAPI进行读写usb测试,现在遇到一个问题无法解决,想求教一下xferdata(buf,len)这个函数用于usb数据上行时len的大小有限制吗,本人利用这个函数下行数据时len大小可以从1开始,而上行时的len必须设为16384的整数倍。否则就会出错,usb control centrol显示错误代码为997
, , , , , , ,
主题帖子积分
实习生, 积分 12, 距离下一级还需 38 积分
实习生, 积分 12, 距离下一级还需 38 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
实习生, 积分 12, 距离下一级还需 38 积分
实习生, 积分 12, 距离下一级还需 38 积分
我可能没表达清楚,我利用usb在FPGA和上位机之间进行通信,上位机读USB的数据量不定,最少是一个字节,最多有上G的数据,但是xferdata()函数的len参数随意设置回出错,请问这是硬件配置的问题吗,可是上位机往USB写又可以随意设置,谁能解释一下呢,非常感激!!!
主题帖子积分
高级工程师, 积分 7012, 距离下一级还需 988 积分
高级工程师, 积分 7012, 距离下一级还需 988 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
高级工程师, 积分 7012, 距离下一级还需 988 积分
高级工程师, 积分 7012, 距离下一级还需 988 积分
读写是不一样的,写的时候你可以控制写了多少个字节,这个没问题。读的时候,要看硬件能返回多少字节,这个由不得你。
CY把这个函数包的太严实了,搞不清下边的机理,我没敢用。你试一下有单独的read、write函数,这个会简单明晰一些。
主题帖子积分
实习生, 积分 12, 距离下一级还需 38 积分
实习生, 积分 12, 距离下一级还需 38 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
实习生, 积分 12, 距离下一级还需 38 积分
实习生, 积分 12, 距离下一级还需 38 积分
我做过测试,FPGA持续往USB里发送一组递增的数,上位机调用xferdata()函数时,当len=1024的整数倍时可以正确读取USB数据,当len为其他的数时xferdata函数的返回值一直是false。在实际应用中,要求FPGA返回多少数上位机都能从USB里读出来,所以不知道有什么好的办法。你说的read()函数,我看了cyusb.net手册,上面介绍read()函数只在cycontrolEndPoint里,而且read()函数貌似也是调用xferdata()函数。
主题帖子积分
高级工程师, 积分 7012, 距离下一级还需 988 积分
高级工程师, 积分 7012, 距离下一级还需 988 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
高级工程师, 积分 7012, 距离下一级还需 988 积分
高级工程师, 积分 7012, 距离下一级还需 988 积分
你把xferdata前后的程序发上来
主题帖子积分
实习生, 积分 12, 距离下一级还需 38 积分
实习生, 积分 12, 距离下一级还需 38 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
实习生, 积分 12, 距离下一级还需 38 积分
实习生, 积分 12, 距离下一级还需 38 积分
//////////////////////定义
&&USBDeviceList^ user1;
&&CyUSBDevice^ myD
&&CyBulkEndPoint^
&&CyBulkEndPoint^
&&Int32&&rd_
/////////////////////////初始化
&&user1 = gcnew USBDeviceList(CyUSB::CyConst::DEVICES_CYUSB);
&&myDev =dynamic_cast&CyUSBDevice^& (user1[0x04B4,0x00BC]);
&&if (myDev!=nullptr)
& & MessageBox::Show(L&link success&);
& & MessageBox::Show(L&no device&);
& &bool blssFast = myDev-&bSuperS
& &bool blhsFast = myDev-&bHighS& &
& &if(blhsFast)
& & textBox3-&Text=L&USB is working at usb2.0 mode!&;
& &else if (blssFast)
& & textBox3-&Text=L&USB is working at usb3.0 mode!&;}
&&////////////////////////////////////////////////////
& &inendpoint=dynamic_cast&CyBulkEndPoint^&(myDev-&EndPointOf(0x81));
& &if((inendpoint!=nullptr)&&(inendpoint-&Attributes==2))
& && &&&if (textBox1-&Text==&&)
& & {& &MessageBox::Show(L&Please input the bytes you want to read&);
& &&&rd_bytes=Convert::ToInt32(textBox1-&Text);
& &&&rd_buffer=gcnew array&unsigned char&(16384);
& && && &&&
& &&&success=inendpoint-&XferData(rd_buffer,rd_bytes); }
& & 现象是只有rd_bytes是1024的整数倍时success=1,其他情况success都是0,会不会是因为USB3.0一次传输的最小单位是1024字节,我对固件配置不熟,不知道能不能把一次传输的数据量大小改小一些
主题帖子积分
高级工程师, 积分 7012, 距离下一级还需 988 积分
高级工程师, 积分 7012, 距离下一级还需 988 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
高级工程师, 积分 7012, 距离下一级还需 988 积分
高级工程师, 积分 7012, 距离下一级还需 988 积分
按你的说法,应该是固件凑够了1024才传上来一次。长度小于1024时,固件没传,超时死那了,返回0。
分析固件的行为,应该首先采用CyConsole(USB2.0用这个),用它读不是1024的数据长度,如果它读不出来,上层软件再忙活也白扯。如果确实是如此,就该问下固件工程师,下边是怎么工作的。
还有,cypress有c#的例子,在它的基础上改一下,如果它也不工作,说明固件不支持。
读数据的时候可以试试下面的写法,看看ret返回1还是0,实际bytes返回多少?
Long bytes = 1024 * N;
BOOL ret = XferData(buffer, &bytes);
主题帖子积分
中级技术员, 积分 208, 距离下一级还需 92 积分
中级技术员, 积分 208, 距离下一级还需 92 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
中级技术员, 积分 208, 距离下一级还需 92 积分
中级技术员, 积分 208, 距离下一级还需 92 积分
固件和app要协调工作,你只开发app又不知道固件的工作情况,这样很难找问题的,可以看看你GPIF的接口用的多大的位宽,如果是32bit那么你读取的数据必须是4byte的整数倍。
主题帖子积分
实习生, 积分 6, 距离下一级还需 44 积分
实习生, 积分 6, 距离下一级还需 44 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
实习生, 积分 6, 距离下一级还需 44 积分
实习生, 积分 6, 距离下一级还需 44 积分
我记得 GPIF有一个PKTENDx信号线吧 这个信号可以让你的短数据包可以发送到主机啊
主题帖子积分
实习生, 积分 9, 距离下一级还需 41 积分
实习生, 积分 9, 距离下一级还需 41 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
实习生, 积分 9, 距离下一级还需 41 积分
实习生, 积分 9, 距离下一级还需 41 积分
楼主,你的问题解决了吗!想和你请教一下!
无冕之王奖章
等级类勋章
奔腾之江水
发帖类勋章
时间类勋章
技术导师奖章
人才类勋章
时间类勋章
技术高手奖章
人才类勋章
技术新星奖章
人才类勋章通过调用HID.dll编写USB HID的数据读写,请大神们帮忙提示一下调用哪些HID的原型函数及函数调用顺序! - LabVIEW论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
通过调用HID.dll编写USB HID的数据读写,请大神们帮忙提示一下调用哪些HID的原型函数及函数调用顺序!
16:30:57  
通过调用HID.dll编写USB HID的数据读写,请大神们帮忙提示一下调用哪些HID的原型函数及函数调用顺序!
16:31:39  
最近急用于这种方法,好痛苦!
17:37:04  
PCB在线计价下单
板子大小:
板子数量:
PCB 在线计价
哪位大神有用过类似的方法吗?跪谢!!!
Powered by
供应链服务
商务及广告合作
Jeffery Guo
关注我们的微信
供应链服务 PCB/IC/PCBA
版权所有 (C) 深圳华强聚丰电子科技有限公司

我要回帖

更多关于 数学帮帮忙 pdf 的文章

 

随机推荐