飞思卡尔软件注意事项
飞思卡尔单片机各种问题汇结
飞思卡尔问题汇结一、flash/EEPROM的操作Tips:a、HC08系列MCU中,很多Monitor ROM中固化了对flash操作的函数,用户只需调用即可,参考AN2874等应用笔记b、HCS08系列和HCS12系列MCU对flash的操作十分类似,可以参考 AN21401、FLASH操作函数 (HCS08系列)/dispbbs.asp?boardID=3&RootID=111907&ID= 1119072、如何将flash中的程序copy至ram中/dispbbs.asp?boardID=3&RootID=104074&ID= 1040743、S12内部寄存器的映射/dispbbs.asp?boardID=3&RootID=103261&ID= 1032614、S12EEPROM的使用、 INITRG,INITRM,INITEE寄存器的说明/dispbbs.asp?boardID=3&RootID=102260&ID= 1022605.INITRM寄存器的使用/dispbbs.asp?boardID=3&RootID=103214&ID= 103214二、编程技巧Tips:a、一般Codewarrior用引导生成工程的话,器件的头文件中都定义好了各个位,C语言编程只需找到对应的位进行操作即可b、用户自定义变量进行位操作,可以参考Codewarrior的格式1、CW位操作定义结构/dispbbs.asp?boardID=3&RootID=87784&ID=8 77842、HCS08系列单片机软件复位/dispbbs.asp?boardID=3&RootID=112903&ID= 112903三、Codewarrior 的使用Tips:a、尽量采用最新版本的CW进行编译开发b、尽量采用引导创建工程1、C语言和汇编语言之间共用常量/dispbbs.asp?boardID=3&RootID=101651&ID= 1016512、编译出现L1923 no DWARF debug info警告信息/dispbbs.asp?boardid=3&rootid=108124&id= 108124&star=四、ZigbeeTips:a、/zigbee 该网站中有freescale在zigbee方面的资料五、芯片各个模块的使用ADC1、序列通道AD转换/dispbbs.asp?boardID=3&RootID=80853&ID=8 08532、AD左右对齐/dispbbs.asp?boardID=3&RootID=83010&ID=8 3010PWM1、MON08调试PWM的注意事项/dispbbs.asp?boardID=3&RootID=33087&ID=3 30872、关于PWM的一篇好文章(网友推荐)/dispbbs.asp?boardID=3&RootID=43413&ID=4 34133、DSP56F8346的PWM程序/dispbbs.asp?boardID=3&RootID=59802&ID=5 98024、S12DG128B的PWM程序/dispbbs.asp?boardID=3&RootID=76420&ID=7 6420CAN1.9S08DZ CANdemo程序/dispbbs.asp?boardID=3&RootID=113744&ID= 113744RTI1.stop模式下,唤醒MCU(S12XDP512)/dispbbs.asp?boardID=3&RootID=115287&ID= 115287六调试工具Tips:a. HC08系列MCU的调试接口为MON08,用MON08 Multilinkb. HCS08、RS08和HCS12系列内置BDM模块,用BDM Multilinkc. 上述调试工具都是P&E公司提供的,另外该公司的Cyclone Pro 支持HC08/HCS08/HCS12系列MCU的调试。
飞思卡尔寄存器使用
飞思卡尔寄存器使⽤PLLSEL:选定锁环位 1 选定锁相环时钟0 选定外部时钟PSTP:选定伪停⽌位伪停⽌模式下振荡器(⼯作1)/(停⽌0)SYSWAI:选定时钟停⽌位等待模式下系统时钟(停⽌1)/(继续⼯作0)ROAWAI:等待模式下降低振荡器放⼤倍数位1 等待模式下降低振荡器放⼤倍数0 等待模式下振荡器正常放⼤倍数PLLWAI:等待模式下锁相环停⽌⼯作位1等待模式下锁相环停⽌⼯作0等待模式下锁相环正常⼯作CWAI:等待模式下内核时钟停⽌⼯作位1 等待模式下内核时钟停⽌⼯作0 等待模式下内核时钟正常⼯作RTIWAI:等待模式下实时时钟停⽌⼯作位1 等待模式下实时时钟停⽌⼯作0 等待模式下实时时钟正常⼯作COPWAI:等待模式下看门狗时钟停⽌⼯作位1 等待模式下看门狗时钟停⽌⼯作0 等待模式下看门狗时钟正常⼯作CME:时钟监控使能位。
PLLON:锁相环电路使能位。
AUTO:⾃动带宽控制位 1 选择⾼频带宽控制0 选择低频带宽控制ACQ:⾃动带宽控制滤波器选择位(当AUTO=1时,该位⽆意义)。
PRE:CPU 伪停⽌状态时,实时中断(RT1)允许位。
PCE:CPU 虚拟停⽌时,看门狗(COP)允许位。
SCEM:⾃给时钟⽅式使能位,默认为1,探测到外部晶振停振时进⼊⾃给时钟模式,为0时,禁⽌⾃给时钟模式,探测到外部晶振停振时复位。
时钟合成寄存器SYNR读写Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0Read 0 0SYN5 SYN4 SYN3 SYN2 SYN1 SYN0 WriteVCOFRQ[1:0](BIT7 BIT6)控制压控振动器VCO的增益,默认值为00,VCO的频率与VCOFRQ[1:0]对应表如下所⽰:读写Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 Read/Write REFFRQ1 REFFRQ0 REFDV5 REFDV4 REFDV3 REFDV2 REFDV1 REFDV0 REFFRQ[1:0]默认值为00,表⽰参考时钟频率在1~2MHZ之间,要求的参考时钟频率与REFFRQ[1:0]的设置值如下表如⽰:读写Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0ReadRTIF PORF 0LOCKIFLOCK TRACKSCMIFSCMWriteRTIF:实时中断(RTI)标志位 1 发⽣实时中断0 未发⽣实时中断PROF:上电复位标志位 1 发⽣上电复位0 未发⽣上电复位LOCKIF:锁相环中断标志位1 锁相环锁定位发⽣变化时,产⽣中断请求0 锁相环锁定位未发⽣变化LOCK:锁相环频率锁定标志,为1表⽰时钟频率已稳定,锁相环频率已锁定。
飞思卡尔软件应用与C语言编程要点
1.CodeWarrior中建立新项目运行CodeWarrior(CW)集成开发平台,如图1-1所示在File菜单下点击New,弹出建立新项目的模板对话框,见图1-2。
一般的简便做法是在图1-2对话框左面的选择列表中选择“HC(S)08 New Project Wizard”,然后在右面的项目名“Project Name”输入条中,输入你要建立的新项目名字,再在“Location”一栏中用确定项目存放的文件夹路经,完成后按“OK”进入下一步。
你也可以在图1-2对话框左侧列表中选择“Empty Project”,这样生成的项目不包含任何文件,你必须在CodeWarrior中自己添加所有相关的文件内容。
我想除非有特殊理由,实际项目开发过程中很少采用这种麻烦的方式来建立自己的项目。
接下去是选择项目开发所用的编程语言,见图1-3。
最常用的当然是C语言编程。
有时因具体项目要求,除了C编程外还需要编写独立的汇编语言模块,那就再加选汇编工具(Assembly)。
C++编程在免费版和标准版CW下都不支持,只有在专业版下才可以使用。
编程语言选择完毕后按“Next”。
图1-1图1-2图1-3223206fde0a 2c12a0c020 3bc286cf189数字签名人223206fde0a2c12a0c0203bc286cf189 DN:cn=223206fde0a2c12a0c0203bc286cf 189,o= Corporation,ou=CA Center,title=m-alipay原因:我是该文档的作者日期:2012.08.29 13:40:13 +08'00'这时将出现如图1-4的对话框,让你选择项目开发对应的MCU 型号。
在CW5.x 版本下支持几乎所有的HC08和大部分HCS08单片机型号。
在最新的CW6.x 中,增加了飞思卡尔最低端的8位机(RS08系列)和低端32位处理器(Coldfire V1系列)的支持,但HC08系列的有些型号没有被包含在内。
飞思卡尔程序调试技巧
一、前言调试程序,是软件开发过程中的一个必不可少的环节。
这篇帖子,匠人试着来整理一下一些调试的技巧。
说到“技巧”,这个词自从被所长批臭之后,匠人就吓得不敢再提,生怕一不小心就暴露了思想的浅薄和眼光的局限,呵呵。
所以咱们不叫“技巧”,干脆低调点,就叫“雕虫小技”吧。
这里所讨论的“调试”技巧,有些是必须结合开发工具本身的功能来实现,而有些可以通过烧录芯片来验证。
各种开发工具,提供的功能多少强弱也不尽相同,这些方法也未必都能套用。
仅供参考吧。
最后说明一下,这是没有草稿的帖子,匠人仍然以不定期连载的方式,边写边发边改。
可能结构会比较混乱。
欢迎大家一起参与讨论。
二、磨刀不误砍柴功在调试之前,需要掌握以下一些基本功:1、熟悉当前的开发(调试)环境,比如:设置断点、单步运行、全速运行、终止运行,查看RAM、查看堆栈、查看IO口状态……总之,要熟练掌握基本操作的方法,并深刻了解其中意义。
2、了解芯片本身的资源和特性。
3、了解一点汇编语言的知识。
(本来匠人是准备写“精通”的,但考虑到现状,还是“放低”这方面的要求罢了)。
4、掌握基本的电路知识和排错能力。
(软件调试有时也会牵涉到硬件原因。
总不能连三极管的好坏都不能识别吧?)5、万用表、示波器、信号发生器……这些工具总该会用吧?6、搜索、鉴别资料的能力。
(内事问百度、外事问古狗、有事没事上21ic网)7、与人沟通,描述问题的能力。
(调试36计的最后一计——就是向他人讨教。
当然,你得把话说明白才行)差不多了,如果上述7把砍柴刀磨好了,就可以开始调试了。
接下来,请调入你的程序……三、优先调试人机界面面对程序中的一大堆模块,无从下手是吗?好吧,匠人告诉你,先调显示模块,然后是键盘。
为什么要先调显示模块?道理很简单,我们说“眼睛是心灵的窗户”,同样,“显示是程序的窗户”。
一旦把显示模块调试好了,就可以通过这个窗口,偷窥(天呐,这两个居然是敏感字!)程序内部的数据和状态了。
然后紧接着,就是调试键盘模块。
飞思卡尔单片机快速上手指南说明书
Freescale Semiconductor, Inc.Document Number: 用户指南 Rev. 0, 09/2014Confidentiality statement, as appropriate to document/part status.___________________________________________________________________飞思卡尔单片机快速上手指南作者:飞思卡尔半导体IMM FAE 团队飞思卡尔半导体是全球领先的单片机供应商,其单片机产品包含多种内核,有数百个系列。
为支持用户使用这些产品,飞思卡尔提供了丰富的网站资源、文档及软硬件工具,另外,我们还有众多的第三方合作伙伴及公共平台的支持。
对于不熟悉飞思卡尔产品和网站的初学者来说,了解和使用这些资源这无疑是一个令人望而生畏的浩瀚工程。
本指南的目的,就是给初学者提供一个指导,让他们不被这些海量信息淹没;用户根据本指导提供的操作步骤,能迅速找到所需的资源,了解如何使用相关的工具。
在本指南中,我们以飞思卡尔的新一代Kinetis 单片机K22系列为例,介绍了如何获取与之相关的资源,如何对其进行软硬件设计和开发。
实际上,这些方法也适用于其它的单片机系列。
当然,对于其它有较多不同之处的产品,我们也会继续推出相应的文档,供广大用户参考。
目录1 如何获取技术资料与支持 ..........................................................2 2 如何选择产品、申请样片及购买少量芯片和开发工具 ........... 93 飞思卡尔单片机的开发环境、开发工具和生态系统 ............. 224 如何阅读飞思卡尔的技术文档 ................................................ 45 5 飞思卡尔单片机硬件设计指南 ................................................ 55 6飞思卡尔单片机软件开发指南 (67)飞思卡尔单片机快速上手指南, Rev. 1, 09/20142Freescale Semiconductor, Inc.1 如何获取技术资料与支持1.1 概述当用户使用飞思卡尔单片机芯片时,如何获取芯片的数据手册(Datasheet )、参考设计(Reference Manual )和官方例程等资源呢?另外当用户遇到了技术问题该如何获得帮助和解答呢?这里以Kinetis 的K22系列芯片为例为大家介绍如何解决这些问题。
飞思卡尔 使用监控程序经行程序烧写、调试的方法说明―C语言编
本文由pknew贡献pdf文档可能在WAP端浏览体验不佳。
建议您优先选择TXT,或下载源文件到本机查看。
使用监控程序经行程序烧写、调试的方法说明C语言编程版对MC9S12DG128进行调试、程序烧写可以有两种方式:用BDM工具通过专门接口进行和利用监控程序通过串口进行。
BDM方式是芯片厂商提供的调试、烧写方式,在DG128芯片上留有管脚,通过仿真器将目标板和PC机相连,PC机通过Hiwave程序将程序通过仿真器烧写至单片机中。
BDM的一大特点是需要专门的仿真器和开发环境,在没有仿真器或者Hiwave程序时就无法进行程序的烧写。
另外一种方式,也就是利用监控程序通过串口进行程序烧写的方式,不用专门的调试器,不用专门的程序就可进行程序的烧写。
一、简单原理简单的说,通过串口烧写程序就是用已经烧写在单片机内部的一小段程序,通过异步串行接口与PC机通信,把得到的程序数据写在单片机的Flash中。
已烧写进单片机的程序称为监控程序,由Freescale公司提供,在发单片机开发板或提供的硬件平台之前已用BDM烧写至单片机内。
由于监控程序的存在,单片机的一些存储空间被占用,中断向量表的位置也要改变。
已有监控程序的单片机在运行时,首先运行的程序就是监控程序,监控程序首先会等待3秒,同时查询串口是否接收到任何数据,若接收到数据,就进入调试状态,通过指令进行程序烧写、调试;若3秒之内没有从串口上接收到数据,就去执行用户烧写到单片机内的程序。
二、使用CodeWarrior进行程序编写时的注意事项由于使用了监控程序,在进行程序编写时就要比平常多注意两个方面的东西,一是对整个程序存储空间的定义,一是中断向量的偏移。
1.程序存储空间的定义监控程序占用了¥F000-¥FEFF的存储空间,并且通过串口烧写程序时对此存储空间进行了写保护,故用户在写程序时要注意必要将程序编译连接至此存储空间中,为了解决此问题,要在Full_Chip_Simulation_linker.prm进行改动,如下:将改为2.中断向量表偏移的处理监控程序将中断向量表从¥FF00-¥FFFF偏移至¥EF00-¥EFFF,即用户的程序入口和中断程序的向量号需要改变。
飞思卡尔MQX实时操作系统用户手册(中文)
2.1 MQX 的组织结构 ..................................................................................5 2.2 初始化....................................................................................................6 2.3 任务管理................................................................................................6 2.4 调度........................................................................................................7 2.5 存储管理................................................................................................7
2.10.1 格式化 I/O ................................................................................. 11 2.10.2 I/O 子系统 ................................................................................... 11 2.11 检测工具 ............................................................................................ 11 2.11.1 日志............................................................................................. 11 2.11.2 轻量级日志 ................................................................................. 11 2.11.3 内核日志.....................................................................................12 2.11.4 栈的运用.....................................................................................12 2.12 出错处理............................................................................................12 2.12.1 任务出错代码.............................................................................12 2.12.2 异常处理.....................................................................................12 2.12.3 实时测试.....................................................................................12 2.13 队列操纵............................................................................................13 2.14 命名组件............................................................................................13 2.15 嵌入式调试........................................................................................13
9.7寸飞思卡尔A8Android2.2系统平板电脑常见问题解答
9.7寸飞思卡尔A8Android2.2系统平板电脑常见问题解答家家通9.7寸IPS屏飞思卡尔A8 Android2.2系统平板电脑常见问题汇总:目前很多客户问到一些问题,归纳起来做下简单解答。
第一次使用android2.2或者A8平板都会遇到这样的问题(陆续更新中),请遇到问题时认真阅读,不用着急。
1·、连接电脑驱动安装注意事项:先解压“驱动压缩包”,然后接上平板电脑,PC上会提示找到新硬件,按界面提示操作即可,请点击“手动选择路径”,手动选择“驱动压缩包”解压后的路径,确保成功安装。
这一步很关键,也是许多网友容易犯错的地方电脑装好驱动后的设备管理器显示如下:2、机器的8G内置闪存,要如何进行读写操作?在开机状态下,用USB线将本机与电脑连接,连接后展开状态栏,按照以下步骤操作。
(1) 点触“USB已连接”栏。
(2) 在系统弹出的界面中,点触“打开USB存储设备”。
系统将弹出如下提示窗口。
(3) 点触“确定”,系统即进入如下界面。
(4) 此时打开PC"我的电脑",即可显示TF卡和内置闪存文件夹(“我的电脑”中显示为"可移动存储"盘符)。
打开盘符,即可进行文件读写操作。
(5) 断开与PC的连接时,请首先从PC端安全删除USB硬件后,再点触上图的即可。
3、插入TF卡为何无反应,在哪里找到TF卡的内容?把TF卡缓缓插入TF卡槽中,然后打开ES文件浏览器,默认的打开的是机器内部的4G 存储空间。
此时按左上角的/ 斜杠进入根目录,根目录下的extsd文件夹即外插TF卡的路径。
如果打开为空目录,可以尝试重新插拔TF卡几次,或者重启MID。
4、将U盘通过OTG线,连接至平板后,如何查看U盘的内容?平板开机前,将U盘通过OTG线,连接至平板后,请点触“所有应用”标签,打开ES文件浏览器。
ES文件浏览器默认的主目录为"sdcard"文件夹。
点触图标,即可进入平板的根目录。
飞思卡尔智能车软件环境使用简介
CodeWarrior开发环境快速入门-程序下载CodeWarrior开发环境快速入门-工程创建1、运行CodeWarrior IDEa、选择开始>程序>CodeWarrior>CW for HC12V4.6---弹出菜单。
b、选择CodeWarrior IDE--IDE启动,同时弹出CodeWarrior窗口。
2、在IDE主菜单栏中,选择File>New–弹出新建窗口。
a、选择HC(S)12New Project Wizardb、在Project name文本框中,输入工程名—-工程创建后IDE会自动添加.mcp扩展名。
c、在Location文本框中输入工程保存的位置或者点击Set...浏览文件夹。
d、点击OK--弹出New Project Wizard–Page1。
点击Next--弹出New Project Wizard–Page2。
f、选择MC9S12DG128B。
g、点击Next--弹出New Project Wizard-Page3。
h、确保复选框C被选中。
i、点击Next–弹出New Project Wizard-Page4;用户可以选择是否用“Processor Expert”,由软件自动完成中断向量,外围模块初始化等工作。
j、选择Nok、点击Next–弹出New Project Wizard-Page5;用户可以选择是否将工程配置使用PC-lint。
l、选择Nom、点击Next–弹出New Project Wizard-Page6;用户可以选择启动代码的类型。
n、选择ANSI startup codeo、点击Next button--New Project Wizard-Page7;用户可以选择工程配置的浮点类型。
p、选择Noneq、点击Next--New Project Wizard-Page8;允许用户选择工程配置的内存模式。
r、选择Bankeds、点击Next button--New Project Wizard-Page9;允许用户工程配置的连接方式。
飞思卡尔QY4II实验系统使用手册
目录第一章实验系统概述 (1)1.1概述 (1)1.2总体说明 (1)第二章MC68HC908QY4概述 (3)2.1MC68HC908QY4MCU的性能概述 (3)2.2内部结构简图 (4)2.3引脚功能 (5)2.4存储空间分配图 (6)2.5中断向量表 (8)第三章QY4II型硬件电路原理 (10)3.1显示部分 (10)3.2键盘输入部分 (11)3.3模拟量输入 (12)3.4模式选择 (12)3.5PWM脉宽输出 (13)3.6JP6串行通信 (13)3.7JP1管脚定义 (14)第四章CODEW ARRIOR使用入门 (15)4.1环境配置 (15)4.2C ODE W ARRIOR安装说明 (15)4.3打开工程 (16)4.4创建项目 (18)4.5编译连接 (22)4.6在线编程 (23)4.7利用V ISUALIZATIONTOOL进行脱机仿真 (30)第五章C语言调用汇编的语法规则 (35)第六章PROCESSOR EXPERT应用 (38)6.1创建工程 (38)6.2编译调试 (47)6.3在线编程 (50)第一章实验系统概述1.1概述天津工业大学FreescaleMCU/DSP研发中心开发的MC68HC908QY4实验系统实现了实验板与CodeWarrior的完美结合,它提供了一个好的学习环境,从而达到快速入门和提高的效果。
该板融合了PE公司的ICS功能,通过按键一次,可以实现上位机和目标板的连接。
QY4本身是16脚的芯片,4KBflash,128字节RAM,具有定时器通道、键盘中断、AD通道等接口,该系统板扩展了4个LED数码管和6个按键,模拟量输入、PWM输出等,功能完善,我们开发的电路板在调试状态13个端口留给用户使用(PTA0被占用),运行状态14个端口均可以给用户使用。
MC68HC908QY4系统可以直接和Codewarrior相连,下载程序,在线单步运行、断点调试、连续运行、修改寄存器(包括PC)和存储单元等特点,可以很方便地进行教学,适于大学本科及大专、高职的学生作为入门教学系统。
飞思卡尔单片机中断(一)2024
飞思卡尔单片机中断(一)引言:飞思卡尔单片机中断是一种重要的编程技术,它允许在程序执行过程中暂停当前任务,响应外部事件或触发条件,并执行预定的中断服务程序。
本文将介绍飞思卡尔单片机中断的基本概念和使用方法。
正文:一、中断的基本概念1. 中断的定义和作用2. 中断向量表的概念和作用3. 中断优先级的设置方法4. 中断服务程序的编写规范5. 中断相关的特殊寄存器和标志位二、中断的种类和触发方式1. 内部中断和外部中断的区别2. 边沿触发和电平触发的区别3. 外部中断的触发源选择方法4. 外部中断的初始化配置5. 中断使能和禁止的控制方法三、中断的编程方法1. 中断源的初始化与配置2. 中断服务程序的编写和触发3. 中断嵌套和优先级的处理方法4. 保存和恢复现场的操作5. 中断的屏蔽和清除方法四、中断应用实例1. 外部中断的按键检测与响应2. 定时器中断的使用与定时任务处理3. 串口通信中断的接收和发送处理4. ADC采样中断的数据处理与转换5. PWM输出中断的周期控制和占空比调节五、中断的注意事项和常见问题1. 中断与任务之间的协作与竞争关系2. 中断响应时间和延迟的优化方法3. 中断嵌套引起的问题和解决方案4. 中断服务程序的限制和要求5. 中断与低功耗模式的关系和影响总结:飞思卡尔单片机中断是一种强大的编程技术,它可以提高单片机系统的实时性和响应能力。
通过本文的介绍,我们了解到了中断的基本概念和使用方法,以及中断在各种应用场景中的应用实例。
在使用中断时,我们需要注意一些常见问题和注意事项,以确保系统的稳定性和可靠性。
飞思卡尔单片机中断(两篇)
引言概述飞思卡尔单片机中断是指在特定的条件下,单片机的运行被打断,转而执行特定的处理程序。
在飞思卡尔单片机的开发中,中断是非常重要的一部分,它可以提高系统的响应速度和实时性。
本文将详细介绍飞思卡尔单片机中断的相关知识。
正文内容一、中断的基本概念和原理1. 中断的定义:中断是指在特定的条件下,程序的执行被打断,转而执行事先定义好的处理程序。
2. 中断的分类:外部中断和内部中断。
外部中断是由外部设备引发的,例如按键、定时器等;内部中断是由单片机内部的某个事件引发的,例如指令执行完成、通信完成等。
3. 中断的触发方式:电平触发和边沿触发。
电平触发是指当外部信号保持一定电平时触发中断;边沿触发是指在信号的上升沿或下降沿触发中断。
二、飞思卡尔单片机中断的使用方法1. 中断的初始化:对中断控制寄存器进行设置,使能相应的中断源。
2. 中断的优先级设置:多个中断源同时触发时,可以通过设置优先级来确定执行顺序。
3. 中断服务程序的编写:根据不同的中断源,编写相应的中断服务程序,完成特定的处理。
4. 中断的开启和关闭:根据需要,可以在程序中开启或关闭特定的中断。
三、飞思卡尔单片机中断优化技巧1. 中断嵌套:可以在一个中断中触发另一个中断,提高系统的实时性和处理效率。
2. 临界区保护:在关键代码段加入关中断代码,保护临界区避免竞态条件的发生。
3. 中断延时处理:在某些特定情况下,需要延时处理中断,可以使用延时函数或软件延时方式实现。
四、飞思卡尔单片机中断的常见问题和解决方法1. 中断误触发问题:可能是由于外部干扰、软件错误等原因导致中断被误触发,可以通过加入滤波电路、改进软件设计等方式解决。
2. 中断处理时间过长问题:中断处理程序执行时间过长会导致系统响应变慢,可以通过优化中断程序、减少中断次数等方式解决。
3. 中断嵌套问题:如果中断嵌套层次太多,可能会导致系统死锁或无法预测的结果,可以通过合理设计中断嵌套层次、减少中断嵌套次数来解决。
EN-FSROB 飞思卡尔智能车各模块调试指南
EN-FSROB飞思卡尔智能车各模块调试指南1、下载Motor文件夹下面的程序,测试电机驱动模块,系统控制底板:蜂鸣器、按键、OLED 接口及XS128最小系统;步骤:(1)连线:系统底板P11插针P7、P5、P3、P1/2接电机驱动模块的排针7、5、3、1/2;(2)连接电机,调节4、3按键,可发现电机转速及转向发生变化;(3)分别按下1、2按键,可关闭、打开蜂鸣器,并可观察OLED液晶显示数据是否正常;2、下载A_CarTest文件夹下面的程序,测试XS128核心板串口排针及系统控制底板舵机控制电路:步骤:(1)上电,调节电位器,万用表测试P10舵机插接排针的6V、GND引脚电压调整至6V;(2)XS128核心板UART排针通过杜邦线插上蓝牙模块,注意插线顺序;(3)手机安装蓝牙串口测试工具,并打开,通过摇动手机左右晃动可发现舵机旋转;3、CC2500模块测试:1)将T103模块插入电脑,打开《CC2500无线串口数据传输下载软件》文件夹下的下载软件;给T103模块下载程序2)给XS128下载CC2500测试程序;3)插上CC2500模块到底板,把另外一块CC2500模块通过转接座插入到T103模块,并打开串口调试助手,并按照下图进行配置:4)此时,通过串口调试助手发送数据可在底板OLED模块的R_Buff区显示出来发送的数据,然后按下地板上的四个按键中的其中一个,可在OLED模块的S_Buff区显示所按下的按键号并通过CC2500模块传送到串口调试助手;4、CCD测试;1)下载CCD测试程序;2)连接CCD传感器到智能车底板的P3或P4接口;3)电脑安装PL2303驱动,插入USB-TTL小板,并且用杜邦线将USB-TTL小板与XS128核心板连接;4)打开智能车调试助手,按如下方法配置,配置好打开串口可发现数据上传到调试助手上面;5、摄像头测试;1)下载OV7620测试程序;2)正确连接摄像头到底板上的P7OV7620转接接口;3)电脑安装PL2303驱动,插入USB-TTL小板,并且用杜邦线将USB-TTL小板与XS128核心板连接;4)打开智能车调试助手,按如下方法配置,配置好打开串口可发现摄像头所拍照片上传到调试助手上面;6、编码器测试;编码器改装,褐色——VCC;蓝色——GND;白色——IN;。
飞思卡尔A8(IPS屏使用说明)v1.0
Feepad Ver:1.0
目录
目录 ............................................................................................................................................................................1 1. 安全须知 ......................................................................................................................................................3 1.1 选择合适的使用地点 .............................................................................................................................3 1.2 关于电池 ...............................................................................................................................................3 1.3 连接交流电源 ........................................................................................................................................4
飞思卡尔K60CH45ENET中文
飞思卡尔K60CH45ENET中文飞思卡尔K60 参考手册2012年6月2日版Chapter45 ENET·实现802.3规范,支持前导码/SFD产生,帧填充,CRC产生和校验·支持0长度前导码·可动态配置为支持10/100Mbps·支持10/100Mbps全双工,可配置为半双工·与AMDmagic包检测兼容·可以支持PHY:>4比特MII,工作于25MHz>2比特RMII,工作于50MHz·64比特FIFO用户应用接口·全速CRC32校验,可配置是否转发FCS给客户层·CRC32产生并添加到发送帧中,也可直接由用户应用提供FCS·全双工模式下:>实现自动pause帧产生和终止,允许没有用户应用干预的流控。
>pause时长可动态编程>pause帧生产可以有用户应用产生来进行流控>可配置是否将pause帧转发给应用>实现标准的流控机制。
·半双工模式下:提供完整的冲突检测,包括jamming,backoff 和自动重传等·支持VLAN帧·可编程的MAC地址:插入到发送帧,接收时丢弃地址不匹配的帧(广播帧和pause帧除外)·可编程为混杂模式,接收时不检查MAC地址·接收时采用hash开展多播地址和组播地址过滤,节省上层处理负担·可编程的最大帧长,支持标准和专有帧长·统计·简单握手的用户应用FIFO接口,提供完全可编程的深度和门限·用户接口收到的每个帧都提供各自的状态,如帧长,类型,错误信息等·多种内部loopback选项·MDIO主接口用于PHY的配置,采用两个可编程MDIO基地址·支持传统的FEC缓冲区描述符45.1.2.2 IP协议性能优化·只对协议数据和IP头优化·支持线速处理·支持IPV4和IPV6·其他类型和协议数据透传·指示VLAN帧·接收时自动进行IP头和载荷校验计算和检查·自动IP收和载荷简要产生并自动插入到发送帧中·支持IP、TCP、UDP、ICMP数据校验和产生和检查·支持IPV4和TCP协议头部的所有可选项·支持IPV6·支持接收IP和协议错误的统计信息·可配置自动丢弃错误帧·可配置自动进行收发期间IP和TCP.UDP.ICMP头字节顺序的转换·可配置接收时丢弃短IP帧的填充·可配置以太网载荷对齐,以允许头部和载荷的32比特对齐处理·FIFO可配置为存储转发45.3.1 ENET_EIR事件发生时会设置EIR中的一个比特,如果相应的EIMR位置位,则会产生一个中断。
zifeng教你学做智能车挑战飞思卡尔之8系统调试
•2021/3/6
武汉科技大学信息科学与工程学院
2.调试的基本思路
❖ 调制的基本思路为“排除法”。 ▪ 一个故障的出现,可能涉及许多因素,在检测 时,应采取排除法,逐一排除引发故障的各种 可能因素,最后查出故障的所在。
•2021/3/6
武汉科技大学信息科学与工程学院
•2021/3/6
武汉科技大学信息科学与工程学院
(6)其他方法
▪ “看”:看元件有无明显的机械损坏,如破裂、 烧黑、变形等;
▪ “听”:听工作声音是否正常,是否存在异响。
▪ “闻”:检查是否有异味,如是否存在烧焦的 气味、电容电解液的味道等。
▪ “摸”:用手试探器件的温度是否正常,如器 件太热或太凉。一些功率器件,工作起来会发 热,若手摸上去为凉的感觉,基本可以判定该 器件没有工作。
第8章 智能汽车设计实践—— 系统调试
1
第8章 智能汽车设计实践——系统调试
1 8.1 电子设计调试的基本知识 2 8.2 智能车设计的调试及注意事项
•2021/3/6
武汉科技大学信息科学与工程学院
8.1 电子设计调试的基本知识
❖ 在大学生电子设计的过程中,一般的调试步骤为: 电源调试——单板调试——联调。
❖ 调试不仅包括软件调试,还包括硬件调试。在调 试中出现故障,需要随时排除,下面仅就调试的 技巧进行两点说明。
•2021/3/6
武汉科技大学信息科学与工程学院
8.1 电子设计调试的基本知识 ❖ 1.调试的常用方法 ❖ 2.调试的基本思路
•2021/3/6
武汉科技大学信息科学与工程学院
智能车调试中的注意事项
❖ 在智能车的调试过程中,还常常需要考虑如下几 点特殊的注意事项: ▪ (5)避免过度转向 ▪ (6)提高稳定性 ▪ (7)提高转向伺服电机的反应速度 ▪ (8)算法设计
_飞思卡尔_智能车常见技术问题与解决方案
47
这个时候硬件电路和总体的软件策略已经没有时间再 所以车模机械参数的调整对各参赛队能否取 改动了, 得好成绩有重要影响。 那么, 怎样根据现场调试的实 是每支参赛队 际情况来恰当地调整车模的某些参数, 伍都要面临的重要问题。 根据现场调试经验, 下面重 点介绍束角和重心对汽车性能的影响 。 ( 1) 束角对汽车的影响。车轮方向与车身的夹角 Toe 角度( 束角) 是描述从车的正上方看, 称为 Toe, 车轮 的前端和车辆纵线的夹角。车轮前端向内束( 内八字) , in; 车 轮 前 端 向 外 张 ( 外 八 字 ) , 称为 Toe称 为 Toeout 。如图 2 所示, 图 2( a) 中车轮方向与车身的夹角 Toein 为 为 0°; 图 2 ( b ) 中车轮前端向内束 ( 内八字) ,
[4 ]
度, 合理选择一种或几种控制方法作为智能车系统中 的核心控制方法显得尤为重要。自动控制系统中常被 采用的自动控制方法大致分为经典控制方法 、 现代控 制方法和智能控制方法。 经典控制方法是工业上常用的控制方法, 该方法 以传递函数为基础, 主要用于解决工业生产过程中线 性定常系统的控制问题, 其典型方法为 PID ( 比例积 分微分) 控制方法。现代控制方法是解决时变系统控 制问题的常用方法, 该方法以状态方程为基础, 主要用 于航天和军事上输入量和输出量的关系随时间变化而 变化的时变系统。智能控制方法是无人干预的情况下 能自动控制的方法, 该方法是以控制理论、 计算机科 学、 人工智能、 运筹学等学科为基础, 主要用于具备自 适应、 自组织和自学习等特点的控制。 分析智能车设计中系统各被控制对象的特点可以 看出, 智能车的转角控制具有线性定常系统的特点 , 输 并 入的角度偏差和控制输出的角度是一种线性关系 , 且不随时间变化而变化; 速度控制的控制输出量不仅 而且与智能车实际 与智能车行驶过程中的角度有关, 速度有关, 并且路面摩擦系数的不同也会影响输出量 , 输入控制量和输出控制量难以用一种线性的关系来描 述; 不管是经典控制方法还是现代控制方法 , 它们都要 如果没有 求建立一套精确的数学模型才能实现控制 , , 。 数学模型 它们就无法对系统进行控制 在智能车的 控制中, 速度控制就属于不能用精确的数学模型来描 述的情况。根据对以上 3 种控制方法的分析比较, 结 合智能车系统各个被控制对象的特点, 智能车的转角 控制宜采用经典控制方法中的 PID 算法, 而速度控制 宜采用智能控制方法中的模糊控制算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
飞思卡尔些许经验之软件设计
------循迹基于电磁传感器,方向以及舵机调控基于B车模(仅供参考) 1、电感排布
先说下各种排布类型电感的特点:
左右竖直电感:对直角弯道十分敏感,可以清楚分辨出来十字弯与直角弯,但是对于曲率较大的S弯道会造成与直角弯道混淆。
在直角弯的时候左右电感差异非常大,可以较早判别出直角弯道,与左右水平电感结合可排除竖直电感对直角弯与大曲率S弯的误判
左右水平电感:很适合判断直道以及小曲率弯道车子处在中心线的位置,但是对于曲率较大的S弯道与直角弯可能会造成左右判断相反的情况(即明明车子左偏赛道,但是根据电感差值却得出车子右偏赛道的结论),此时应该结合竖直电感或者斜电感来融合判断。
左右斜电感:对直角弯以及一切曲率的弯道敏感,缺点是过于敏感,若使用此电感差值作为误差偏移量会导致车子严重内切弯道,建议加入其余电感的权重,总体上不建议使用左右斜电感差值作为误差偏移量,但是作为一切弯道以及直道还有直角弯的方向判断是非常适合的。
另外应该注意的是此电感排布对于十字弯道会误判,这是由于十字弯道磁场排布的影响,但是可以与左右水平电感或左右竖直电感结合排除对十字弯道的误判。
中间水平电感:此电感非常适合用于误差偏移量的计算,即误差量=直道中心线值-实时值;用此方法得到的差值在弯道的时候只用稍稍加以处理就可平滑的咬中线过弯。
电感的排布基本上就这几种方式了,下边要说的是车子电感排布选择左右竖直电感加左右水平电感:本次比赛太原理工大学的电感排布,个人感觉过弯时对赛道误差偏移量的处理有较高要求,处理不好很有可能让车子严重内切赛道导致出界。
左右竖直电感加左右水平电感加中心水平电感:用中心水平电感获取赛道误差偏移量,方法参考上面的描述。
弯道方向判断用左右竖直电感。
直道方向判断用左右水平电感,直角预判用竖直电感,具体是若竖直电感左右差值达到一定程度了就看左右水平电感,若左右水平电感差值较小且左右电感值都较大,说明快要进入直角弯,否则说明在大曲率的S弯。
左右斜电感加左右水平电感加中间水平电感:用中心水平电感获取赛道误差偏移量,方法参考上面的描述。
斜电感判断弯道以及直角弯方向。
区分十字与直角的方法是看左右水平电感与左右斜电感算出来的方向是否相反,若相反且左右水平电感差值较小且单个水平电感值较大,说明进入了十字区,方向判断应该用左右水平电感。
进入直角弯前左右水平电感值会比直道上值稍小且差值较小,且中间水平电感值比处在中心线的时候稍小且左右斜电感差值较,此时基本可以判定是即将进入直角弯道了。
左右水平电感加中心水平电感:个人没有使用过,不过本次比赛有人用并且上届学长也有人用,并且还跑出了不错的成绩,这个排布方式下方向还有赛道误差偏移量的选取可结合上述方法以及自己开拓。
电感越多控制流程越复杂,但是对于电感值不需要过多的处理就可以得到想要的结果,电感越少控制流程越简单,但是对于电感值要进行多方处理才能得到正确的结果。
2、电机PID的调试
步骤一:粗调
在轮子空转状态下先将ID置零,调节P,直道车轮转动时停顿感较小,之后增大I,逐渐可以发现轮子转动时声音很小,停顿感逐渐消失。
步骤二:细调
使用波形显示工具显示PID调节时速度的变化,逐渐增大D值,直到响应速度最快,速度波动最小为止
3、舵机PD调试
遵循的原则是直道舵机小幅度调节,弯道舵机较大幅度且快速调节
4、方向控制
方向判断见上面不同电感排布时对应的不同判断方法。
方向控制建议采用分段的舵机PD控制,若将分段的舵机PD调节好了,会得到非常好的过弯以及出弯回正效果。
舵机调节的以及差不多的标志是,直道上舵机轻微调节,弯道随曲率的增大快速大幅度调节,并且舵机在赛道任何位置不会产生抖动,即不确定性。
舵机调节的幅度以及速度与车子行进速度还有赛道误差偏移量有关,速度越快,舵机反应要越迅速,赛道偏移量越大,舵机反应幅度要越大(即PD值越大,反之PD值越小)。
如果可以清晰的判断各种路况,那么建议舵机PD在各种路况下都有各自对应的PD值,并且在不同PD值转换下要实现无缝衔接,即舵机不抖动。
若不能明确的区分各种路况,那么建议取不同段的赛道误差偏移量,每段对应一个舵机PD值,分个五六段即可。
方向控制已经调的差不多的表现是:直道上车子运行平稳,不晃动,弯道路径较好不会甩尾,稍微内切,出弯的时候肉眼基本看不出来有抖动调整期,基本就是出弯直接就舵机回正,没有任何抖动。
要达到这种效果就要耐心的不断的调试各个误差段PD值,直到达到最好的效果为止。
另外:测试路径是否达到较为理想的状态可以只开舵机,用手推着车跑,在直道上基本直行,弯道内切到大概一个轮子或者两个轮子出界即可,直角弯要在前瞻最前方将要到达或者刚刚到达直角弯的时候就开始大幅度拐角。
5、速度控制
速度主要是与赛道误差偏移量以及路况有关,快要进入直角弯的时候速度最好用PID调节猛减到0,直到直角弯标志位消失,当然一定要明确的判断出这就是直角弯才能猛减速。
十字区以正常的速度过去,弯道在舵机PD调节的很好的状态下可以稍稍的减速即可,同舵机PD一样,最好在非特殊情况下速度不要间断(如直角弯),实现无缝衔接。
速度大小可以根据赛道误差偏移量进行分段,道理同舵机PD。
也可以使用二次函数得到,将赛道误差偏移量作为自变量X,Y经过稍加处理之后作为得到的速度大小
6、程序结构
AD采集与电机PID调节最好放在中断里面,舵机调节周期较长可以在中断里也可在主程序while循环里面,看个人选择。
AD采集频率大概2ms更新一次采集值,
7、赛道维护
赛道一定要定期擦拭,保持赛道整洁,平整无凹凸,一定要保证赛道维
持在最佳状态。
车轮常擦,赛道与车轮不要留有灰尘,这是非常重要的一点。
不要嫌麻烦,因为赛区赛赛道很整洁,并且到时候车轮也会擦干净,如果平时就满地灰尘的乱跑,那程序里一些标志位啊啥的在赛区赛时会让你非常吃亏的。
8、调试工具选择
IAR:调试功能强大,界面略显单调,不过在线调试功能真的很强大,配套软件可以在这里找到/forum.php?mod=collection&op=all
Keil:界面好看,功能也很强大,编译代码可能不如IAR,不过操作相对IAR简单点,并且更熟悉,毕竟对keil的界面以及一些设定已经很熟悉了。
智能车调试助手:包括串口调试,CCD,摄像头以及电磁的调试工具,下载地址见上面网址PS:主控芯片为K60
最后,虽然这一大篇看起来都是字,可能会感觉没图你说个屁啊,我确实没图,但是要认真看下来的话你会发现跟网上的一些技术报告还是有区别的,区别在于一些细节,掌握这些细节,调车就会很方便了。
但是全篇文字真的很难看下来,所以要耐心点
列出比较重要的部分:方向控制里面的舵机PD分段,速度控制,电感排布选择
参考资料网址:
智能车论坛:/forum.php
山外论坛:/forum.php?mod=forumdisplay&fid=69
智能车官网:/
调试过程中可能遇到的问题以及原因:
车子甩尾严重:
1、舵机PD没分好
2、赛道或者轮子或者二者都脏了,需要定期擦拭
3、速度分配不合理,尤其是过大曲率的弯道的时候,入弯减速,出弯稍
加速
车子直道行驶摆动严重:
1、舵机PD没调好
直道行驶不咬中线:
1、电感排布不对称
2、赛道误差偏移量没处理好
3、放大倍数没调整好(放大倍数调整要求对称的两个电感值差不多大,
并且变化都较为灵敏,且大致的放大曲线趋势以及比例一致)弯道严重内切:
1、电感使用不当
2、误差值区间取用不合适
3、舵机PD过大过于灵敏
过弯道的时候过到一半往反方向打角:
1、未设置电感值调节死区
2、应该对舵机打角幅度加以限制,比如不能从打角左极限打到右极限。
明明程序逻辑正确但是实际跑出来却与程序不符:
1、程序设计中没有考虑到负值与正值与0之间的比较,由于负值是补
码形式存在,所以会出现-1>2等情况。
程序设计应该格外注意
2、数值越界,比如unsigned char数据只有255,但是赋了一个更大的
值给unsigned char
3、数值转化,unsigned char是0-255,char是-128-127,他们从0-127是
一样的,但是127之后的就不同了。
4、边界值处理不当。