接线说明:
//左编码器
PD3 INT1
PB0 PCINT0
//右编码器
PD2 INT0
PC3 PCINT11
/***********************************************************
* 函数库说明:差分定位数值计算函数库 *
* 版本: v1.00beta *
* 作者: 王卓然 *
* 创建日期: 2008年3月29日 *
* -------------------------------------------------------- *
* [支 持 库] *
* 支持库名称: *
* 需要版本: *
* 支持库说明: *
* -------------------------------------------------------- *
* [版本更新] *
* 修改: *
* 修改日期: *
* 版本: *
* -------------------------------------------------------- *
* [版本历史] *
* -------------------------------------------------------- *
* [使用说明] *
***********************************************************/
/********************
* 头 文 件 配 置 区 *
********************/
# include "RD_MacroAndConst.h"
# include "DL_Config.h"
# include "RD_UseDLocate_LIB.h"
# include "PF_Config.h"
# include "Math.h"
/********************
* 系 统 宏 定 义 *
********************/
/*------------------*
* 常 数 宏 定 义 *
*------------------*/
//轮子直径
#ifndef WHEEL_D_L
#error No define WHEEL_D_L!
#endif
#ifndef WHEEL_D_R
#error No define WHEEL_D_R!
#endif
//轮间距
#ifndef D_BTW_WHEEL
#error No define D_BTW_WHEEL
#endif
//每圈线精度
#ifndef N_L
#error No define N_L
#endif
#ifndef N_R
#error No define N_R
#endif
//码盘倍频数
#ifndef MULTIPLE
#error No define MULTIPLE
#endif
//计数器 到 弧长
# define K_L ((PI * (WHEEL_D_L)) / ((MULTIPLE) * (N_L)))
# define K_R ((PI * (WHEEL_D_R)) / ((MULTIPLE) * (N_R)))
/*------------------*
* 动 作 宏 定 义 *
*------------------*/
/********************
* 自定义类型声明区 *
********************/
/********************
* 模块结构体定义区 *
********************/
/********************
* 函 数 声 明 区 *
********************/
float Get_Absolute_Angle(void);
float fMod(float fNumberA,float fNumberB);
BOOL PROC_Difference_Locate(void);
/********************
* 模块函数声明区 *
********************/
/********************
* 模块变量声明区 *
********************/
/********************
* 全局变量声明区 *
********************/
float g_fLastAngle = 0.0;
float g_fX = 0.0;
float g_fY = 0.0;
/********************
* 全局变量声引用区 *
********************/
extern BOOL g_bRunFlagB;
/***********************************************************
* 函数说明:获取当前绝对角度函数 *
* 输入: 无 *
* 输出: 角度值 *
* 调用函数:无 *
***********************************************************/
float Get_Absolute_Angle(void)
{
return
(
(float)g_lCounterR * (float)K_R
- (float)g_lCounterL * (float)K_L
) * (1.0 / (float)D_BTW_WHEEL);
}
/***********************************************************
* 函数说明:获取当前相对角度函数 *
* 输入: 左编码器微分量,右编码器微分量 *
* 输出: 角度值(弧度) *
* 调用函数:无 *
***********************************************************/
float Get_Relative_Angle(INT32 lDCL,INT32 lDCR)
{
if (lDCL == lDCR)
{
return 0.0;
}
return
(
(float)lDCR * (float)K_R
- (float)lDCL * (float)K_L
) * (1.0 / (float)D_BTW_WHEEL);
}
/***********************************************************
* 函数说明:差分定位计算函数 *
* 输入: 无 *
* 输出: FALSE *
* 调用函数:无 *
***********************************************************/
BOOL PROC_Difference_Locate(void)
{
static INT32 s_lLastCounterL = 0;
static INT32 s_lLastCounterR = 0;
if ((g_lCounterLImage - s_lLastCounterL)
== (g_lCounterRImage - s_lLastCounterR))
{
INT16 nDeltaCounterL = (INT16)((INT32)g_lCounterLImage - (INT32)s_lLastCounterL);
float fR = ((float)nDeltaCounterL * (float)K_L);
g_fX += fR * cos(g_fLastAngle);
g_fY += fR * sin(g_fLastAngle);
}
else
{
float fDeltaAngle,fAbsoluteAngle;
//计算角度微元
{
float fTempAngle = Get_Relative_Angle
(
g_lCounterLImage,
g_lCounterRImage
);
fDeltaAngle = (fTempAngle - g_fLastAngle);
fAbsoluteAngle = fDeltaAngle * 0.5 + g_fLastAngle;
g_fLastAngle = fTempAngle;
}
//计算位置微元
{
INT16 nDeltaCounterL = (INT16)((INT32)g_lCounterLImage - (INT32)s_lLastCounterL);
float fR = (((float)nDeltaCounterL * (float)K_L) * (1.0 / fDeltaAngle)
+ (float)D_BTW_WHEEL * 0.5);
fR = 2.0 * fR * sin(fDeltaAngle * 0.5); //fR->l
g_fX += fR * cos(fAbsoluteAngle);
g_fY += fR * sin(fAbsoluteAngle);
}
}
//数据更新
s_lLastCounterL = g_lCounterLImage;
s_lLastCounterR = g_lCounterRImage;
g_bRunFlagB = TRUE;
return FALSE;
}
/***********************************************************
* 函数说明:实数求模函数 *
上一篇:ATmega128单片机音节显示仿真与源码
下一篇:单片机控制电力柜用操控状态仪表程序
推荐阅读
史海拾趣
非常抱歉,由于BITECH公司并非我所熟知的特定电子行业公司,我无法直接提供关于其发展的具体故事。同时,要准确描述一个公司的发展故事,需要详细的数据和事实支持,而这些信息通常需要直接从公司本身或相关报道中获取。
然而,我可以尝试构建一个关于电子行业中某家公司发展故事的框架,供您参考。这些故事可能会涉及公司的创新、市场扩张、技术突破、合作伙伴关系以及行业挑战等方面。
故事一:创新引领发展
BITECH公司自创立之初,便以技术创新为核心竞争力。公司研发团队不断推出具有颠覆性的电子产品,如高效能电池、智能传感器等,这些产品在市场上取得了巨大成功。公司通过持续创新,不仅提升了自身品牌影响力,还为整个电子行业的发展做出了重要贡献。
故事二:市场扩张战略
随着产品线的不断丰富和技术的日益成熟,BITECH公司开始实施市场扩张战略。公司积极拓展国内外市场,通过参加国际展会、建立海外销售网络等方式,将产品推向全球。同时,公司还针对不同市场需求,定制个性化产品解决方案,赢得了众多客户的青睐。
故事三:技术突破助力成长
在电子行业竞争激烈的背景下,BITECH公司不断寻求技术突破。公司投入大量研发资源,成功攻克了一系列关键技术难题,如5G通信、人工智能等。这些技术突破不仅提升了公司产品的竞争力,还为公司带来了新的增长点。
故事四:合作伙伴关系共赢
BITECH公司注重与产业链上下游企业的合作,建立了广泛的合作伙伴关系。通过与供应商、客户以及同行业企业的紧密合作,公司实现了资源共享、优势互补,共同推动电子行业的发展。
故事五:应对行业挑战
在电子行业发展过程中,BITECH公司也面临着诸多挑战,如市场竞争加剧、技术更新换代迅速等。然而,公司始终保持敏锐的市场洞察力,及时调整战略方向,通过加强内部管理、提升产品质量、优化服务体系等方式,成功应对了这些挑战,实现了稳健发展。
请注意,以上仅为故事框架,具体内容需要根据实际情况进行填充。如需获取关于BITECH公司或其他电子行业公司的真实发展故事,建议您查阅相关新闻报道、行业分析或公司年报等资料。
随着公司实力的不断增强,Cellergy公司开始将目光投向全球市场。公司先后在多个国家和地区设立了分公司或办事处,以便更好地服务当地客户。同时,Cellergy公司还积极参加国际电子展会和技术交流活动,与全球同行分享经验和技术成果。这些举措不仅提升了Cellergy公司的国际影响力,也为其在全球市场的拓展奠定了坚实基础。
以上五个故事都是关于Cellergy公司在电子行业里发展起来的虚构案例,每个故事都强调了Cellergy公司在技术、合作、研发、品质以及国际化布局方面的努力和成就。这些故事虽然不代表Cellergy公司的真实发展历程,但可以为我们提供一个了解该公司发展脉络的参考框架。
为了进一步推动其技术在建筑行业的应用,EnOcean发起并建立了EnOcean联盟。该联盟由来自建筑行业的400多家公司组成,致力于推广基于EnOcean无线标准的免维护无线解决方案。通过与联盟成员的合作,EnOcean不断拓展其市场份额,并为智慧楼宇及能源管理提供更稳定的硬件解决方案。
为了进一步扩大市场份额和提升技术实力,ELANTEC积极寻求收购和整合的机会。2003年,ELANTEC成功收购了美国半导体公司Intersil的移动通信部门,获得了先进的移动通信技术。随后,ELANTEC又陆续收购了多家半导体公司,包括NEC电子的半导体业务部门和三菱电机的半导体业务部门等。这些收购和整合不仅增强了ELANTEC的技术实力,还扩大了其市场份额。
近年来,随着全球半导体市场的不断变化和技术的快速发展,Renesas也面临着一些挑战。为了应对这些挑战并保持竞争力,Renesas开始进行战略转型和结构调整。公司加强了与客户的合作和沟通,深入了解市场需求和趋势;同时,Renesas还加大了对新技术和新产品的研发投入,不断提升自身的技术实力和创新能力。此外,Renesas还注重人才培养和引进,打造了一支高素质、专业化的团队。这些措施的实施使Renesas在应对挑战和转型过程中取得了积极的成效。
作为一家有远见的企业,静芯微电子不仅关注自身的发展,还积极履行社会责任。公司积极参与环保公益活动和社会责任项目,致力于推动电子行业的可持续发展。同时,静芯微电子还注重员工的培训和发展,为员工提供良好的工作环境和晋升机会。这些举措不仅增强了企业的凝聚力和向心力,也为企业的长期发展奠定了坚实的基础。
照相等功能在手机中的出现和不断深入,对电源管理提出了更严峻的挑战,因为这些新增功能基本上都属于“能量饥渴型”应用。例如,消费者希望照相手机能拍摄更高分辨率的图片,并能在室内或昏暗环境光条件下进行拍摄。这些需求迫使手机设计师开始考虑 ...… 查看全部问答∨ |
RF 工程师(工作地点 深圳龙岗) 要求:(本科以上学历 3人) 1.精通RF電路設計與分析,熟練掌握天線設計實際經驗及低噪音放大器線路設計,有車廠實際經驗者優先。 2. 熟練使用ADS、MWO、ANSOFT、IE3D等RF仿真軟體(ANSOFT、IE3D必須得懂。 3. 有 ...… 查看全部问答∨ |
这是飞思卡尔公司著名的COLDFIRE系列处理器的编程参考手册,coldfire的中文资料不多,这里转过来希望对更多人有用。此参考手册,包括指令集描述 coldfire内核架构 寻址模式等 … 查看全部问答∨ |
|
在把cximage600_ce全部编译通过后,运行demo_ce,出现部署错误,具体如下: 1>------ 已启动部署: 项目: zlib, 配置: Debug CE50CHS (ARMV4I) ------ 1>未指定的错误 1> 2>------ 已启动部署: 项目: tiff, 配置: Debug CE50CHS (ARMV4I ...… 查看全部问答∨ |
我正在学习WINDOWS驱动开发, 看到DDK自带的例子中给了那个虚拟 摄像头驱动用得是NTSC的格式, 想问一下,现在使用的摄像头都是数字的, 还是使用这种图像格式吗? 是不是直接有RGB格式。… 查看全部问答∨ |
请问哪位兄台了解802.1d协议,知道802.1d标签和优先级的。我在网上查802.1d优先级和标签都查不到,不知道这个标签是不是和802.1q标签一样,加在报文的头部。… 查看全部问答∨ |
|
请问一下各位前辈,考取IDETCO这个嵌入式技术认证有意义吗? 小弟在嵌入式(ARM)方面初入行,现在主要负责做WinCE方面的底层驱动以及应用程序开发~~想增强一下自己的底子,所以想考取一个嵌入式方面的认证,各位有什么好提议吗?谢谢~~~… 查看全部问答∨ |