-
基于ADAMS的仿生六足机器人运动仿真
使用Adams软件对机器人进行仿真,通过仿真得到了整个机构的重心运动轨迹
- 2021-05-06下载
- 积分:1
-
mfc对话框做一个简易的ffmpeg视频播放器
mfc对话框做一个简易的ffmpeg视频播放器
- 2021-05-06下载
- 积分:1
-
capon算法的DOA估计MATLAB代码
基于Capon算法的DOA估计,用MATLAB语言仿真出来的
- 2020-12-11下载
- 积分:1
-
单相锁相环PFC simulink仿真
- 2021-07-28 00:31:18下载
- 积分:1
-
非常详细步进电机控制原理图,和完整的控制程序,安装PROTEUS后就可以看到仿真的结果
本文介绍了单片机控制步进电机的系统。在电气时代的今天,电动机一直在现代化的生产和生活中起着十分重要的作用。步进电机是机电控制中一种常用的执行机构, 其原理是通过对它每相线圈中的电流和顺序切换来使电机作步进式旋转。本系统的硬件组成主要有:51系列单片机、L298N驱动电路、直流电压源等。同时对系统设计中所用到的一些软件都进行了介绍。本系统用51系列单片机和L298N电机驱动芯片并加入了键盘来控制步进电机实现转向、转速等。系统中使用的是永磁式二相步进电机,相应的驱动和控制电路对于其整体性能起着非常重要的作用。经系统调试,能够很好的控制步进电机的正反转、加减速、急停,从而达到预期目的。整个系统具
- 2021-05-06下载
- 积分:1
-
逼近拟合+n种插值方法+数值微分+解线性方程组的直接方法.rar
【实例简介】函数逼近与曲线(面)拟合:曲线拟合的线性最小二乘法及其MATLAB程序,多项式拟合及其MATLAB程序,
拟合曲线的线性变换及其MATLAB程序,函数逼近及其MATLAB程序,三角多项式逼近及其MATLAB程序,
随机数据点上的二元拟合及其MATLAB程序,
随机数据点上的 元拟合及其MATLAB程序
+n种插值方法:拉格朗日(Lagrange)插值及其MATLAB程序,牛顿(Newton)插值及其MATLAB程序,埃尔米特(Hermite)插值及其MATLAB程序,
分段插值及其MATLAB程序,分段埃尔米特插值及其MATLAB程序,三次样条(Spline)及其MATLAB程序,
高元插值及其MATLAB程序,三元插值及其MATLAB程序
+数值微分:一阶导数的数值计算及其MATLAB程序(差商求导,中心差商公式,理查森外推法求导等等,不再赘述)[
+解线性方程组的直接方法:方程组的逆矩阵解法及其MATLAB程序,三角形方程组的解法及其MATLAB程序,高斯(Gauss)消元法和列主元消元法及其MATLAB程序,
LU分解法及其MATLAB程序,误差分析及其两种MATLAB程序,求解线性方程组的LU方法及其MATLAB程序
- 2021-12-14 00:45:03下载
- 积分:1
-
Android的网络APP开发,二手市场交易
Android的二手市场网络APP开发,是一个写个武汉理工的二手市场APP开发,关于登录注册,找回密码,查找商品,更新商品,上传商品,网络云平台是用的Bmob云平台!!
- 2020-11-27下载
- 积分:1
-
内存乒乓缓存机制和消息分发机制的C代码实现
用C代码实现乒乓内存缓冲机制,具体实用价值,帮助您提高内存响应速度与及时数据的处理。unsigned long writeunsigned long greadunsigned long overflowST TWTMSG QUEUE:/ Helper macros for accessing Msg queues. *#define tWt QUEUE EMPty(a)(((g->write==(q)->gread)? 1: 0)#define twt_ QUeUe full(a)(((((q)->qwrite +1% TIMEWEIGHT TASKQUEUE SIZED)==(q)->gread)?1: 0)米 generate a Msg entity*正常返回消息体的指针,异常返回NULLT TWTMSG* generateMsg(tT-TWTMSG* pmSg=nULL,if(NULL =-(ptMsg malloc(sizeof(T TWTMSG)))return NULL;memset(ptMsg, 0, sizeof(T TWTMSG)return pmSg;destroy a Msgvoid destroy Msg(t TWTMSG ptMsgif(NULL ptMsg->pfDestroyMsg)pt Msg->pfDestroy Msg(ptMsg->pvMsg)if (NULL != pt Msg)free(pmSgfree a Msg Queuevoid freeTWTMsg Que(T TWTMSG QUEUE* ptMsgQif(NULL =ptMsg Afree(ptMsg Q);Init a Msg QT TWTMSG QUEUE* initTWTMsg QueoT TWTMSG QUEUE pmSg Q= NULlif (NULL ==(ptMsgQ malloc(sizeof(T_ TWTMSG QUeue)goto ErrRetmemset(ptMsgQ, 0, sizeof(T TWTMSG QUEUE))return pmSg Q;Errretprintf( initTWTMsg Que Fail! ")freeTWTMsgQue(ptMsg Q)return nullPop a pvMsg packet from a msg packet queues param g is the packet queue from which to pop the pbuf@return pointer to pvMsg packet if available, NULl otherwiseT TWTMSG* TWTMsg Get(T_ TWTMSG QUEUE aT TWTMSG*//*加锁if(TWT_ QUEUE_ EMPTY(a))iReturn a NUll pointer if the queue is emptypmSg=NULL;else is The queue is not empty so return the next frame from itand adjust the read pointer accordinglypmSg=g->pvMsglq >greadg->gread =((q->gread +1)% TIMEWEIGHT_TASKQUEUE_ SIZE)/*解锁return(pmSg);Push a pmSg packet onto a pvMsg packet queue@param p is the pmsg to push onto the packet queue@param g is the packet queue.W @return 0 if successful, -1 if q is fullnt TWTMsg Send(T tWTMSg*p, T TWTMSG QUEUE *qint ret/if(!TWT_ QUEUE FULL(al)iThe queue isn t full so we add the new frame at the currentw write position and move the write pointer.g->pvMsgla->write]=pg- >write =((q->qwrite+1)% TIMEWEIGHT TASKQUEUE SIZE;ret =oThe stack is full so we are throwing away this value. Keep trackof the number of times this happensg->overflow++ret =-1://*解锁return(ret)**米**米来米***来米*半米*米*半米*米求***半*米米求半**米求半**半求半和*米*//消息分发机制//*算法是//*正常返回0,出错返回-1水米米******水*米*水**米*半*水米米冰半**水水*水米米半米冰水*米水水*水*米水水extern int RecToFile MsgProc(T_ MSG_ REC2 FILE* ptMsg);int DispatchMsg(T TWTMSG *ptMsgitif(NULl = ptMsg goto ErrRet/*dispatch msg*/switch(ptMsg->en Msg Type)case TWT PINgPoNgBuff recRecTo File Msg Procl(TMSG_REC2FE) (pmSg->pMsg);/*处理消息*/destroy Msg( pmSg;/*消毁消息breakdefault.printf("Dispatch Msg Msgtype Error! n")break.return 0ErrRetprintf("Dispatch Msg Fail! ";return-1./*buff size*/#defineP| NGPONG_ BUFF BSIZE0X20000//10*1024*1024/*10M*/*ping pong buff*///chargacPINGBUFF[PINGPONG BUFF BSIZE]; /* Ping Buff*///chargacPONGBUFF[PINGPONG_ BUFF BSIZE] *Pong Buff*/水米米*********米*水**米*半*水米米水**冰水*水米米半半水半米冰水*米水水*水*米米//*释放 ping pong buff/必然成功//*无返回木***木*水****本**水*水水*水****本水**水水****水水***本***米*水void Destroy Ping Pong Butt(T PINGPONGBUFF USE DES ptPing Pong Butt)nLoopif (NULL = pt Ping pong buffreturnfor (nLoop=0; nLooptIng BuffUse[nLoop]. pcHeadAddr)free(ptPing Pong ->t Ping BuffUse[nLoop]. pcHeadAddr)free(pt Ping pong Buff)/初始化 ping pong buff返回 pign pong buff的描述指针//*正常返回0,出错返回-1水水水水水水水水水木水木水水水水水木水木水水水水水水水水本水水水水水水水水水本水水水水水水水水水水水水水T PINGPONGBUFF USE DES InitPing Pong Buff(unsigned int n BuffSizeT PINGPONGBUFF USE DES* ptBuffDes=NULLintnLoop/*获取buf描述*if NULL==(ptBuffDes=malloc(sizeof(T PINGPONGBUFF USE DES))))goto ErrRetmemset(pt BuffDes, 0, sizeof(T_PINGPONGBUFF USE_ DES));/*分别初始化ping和pong*/for(nLoop=0; nLooptIng BuffUsenLoop pcHeadAddr =malloc n BuffSize))goto Err Ret;ptBuffDes->tIng BuffUselnLoop] nBuffSize nBuffsizeptBuffDes->tPing BuffUse[nLoop]. oFfsetptBuffDes->tPing BuffUsenLoop) eUseStatus-=BUFF WRITEABLE;pt BuffDes->eCurUseIDBUFF PINGreturn pt BuffDesErrretprintf("lnitPing Pong Buff Fail!");DestroyIng Pong Buff(pt BuffDes)turn null平**米**米*米***来米米*米*米*半米*米米米来*半米平**米米求*来*半求半来*米求*和*米*/*Reset ping pong buff//*正常返回0,出错返回-1米米米米水冰米*米米水**米米冰*米水米米米米水米水*水米米来米米x米来米米水冰来来宋来水米来米来冰#define ResetBuffUse(ptBuffuse)pt BuffUse->oFfset0pt BuffUse->eUseStatus BUFF WRITEABLEgenerate a file rec msg*正常返回消息体的指针,异常返回NULLT_MSG_REC2lGK SenFRMSB(T_BUFF_USE_DES *ptBuffUse, REC_FILE_DESLIST *ptFileListRT MSG REC2FILE KE* ptRFMsg= NULL;if(NULL ==(ptRFMsg malloc(sizeof(T_ MSG REC2 FILE)return nUllptRFMsg- >pt BuffUse pt BuffUseptRFMsg->pt Filelist ptFilelist;return ptRFMsg
- 2020-12-03下载
- 积分:1
-
软件设计方案模板.doc
针对软件项目制定的,软件设计方案模板。简单实用,条目既齐全,又不会繁琐。符合实际,可以直接在工作中使用。
- 2021-05-06下载
- 积分:1
-
Arduino+Proteus仿真 100个案例资源包.rar
单片机C语言程序设计实训100例-基于Arduino+Proteus仿真,提供100套案例仿真电路,可运行HEX程序,及源代码框架。
- 2021-05-06下载
- 积分:1