{//覆盖率
在软件设计和编写之前,应该定义好它期望达到的语句覆盖率。代码的设计和编写应该
能使其在测试中达到很高的语句覆盖率。
}
{//PWM脉冲宽度调制。
脉冲宽度调制是一种模拟控制方式,其根据相应载荷的变化来调制晶体管基极或MOS管栅极的偏置,来实现晶体管或MOS管导通时间的改变,
从而实现开关稳压电源输出的改变。这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字信号对模拟电路进行控制的一种非常有效的技术。

1.每一个PWM 的输出通道都有一个使能位 PWMEx。它是用来启动和关闭波形输出的。
2.每一个PWM 的输出通道都有一个使能位 PWMEx。它是用来启动和关闭波形输出的。
3.每一个 PWM 输出通道都有两个时钟可供选择(A、SA或 B、SB)。0、1、
    4.0、1、4、5 通通道可选用 A、SA 时钟,2、3、6、7 通道可选用 B、SB 通道。此寄存器在任何时
    间都是可读、可写的,复位时全置0。应当注意的是,如果当一个 PWM输出波形正在
    产生时,时钟改变,这时就会产生一个平头的或线形脉冲。
    5.PWMPRCLK寄存器是单独用来给时钟源 A、B进行预分频的。
    6.PWMCAE 寄存器包含 8 个控制位来对每个 PWM 通道设置左对齐输出或居中对齐输出。
    应当注意的是,只有输出通道被关闭后才能对其进行设置,即通道被激活后不能对其进行设置。
    7.时钟SA是通过对PWMSCLA寄存器的设置来对A时钟进行分频而产生的。  
其计算公式为: 
              Clock SA=Clock A /(2*PWMSCLA) 
    时钟SB与SA的工作原理同
    其计算公式为: 
              Clock SB=Clock B /(2*PWMSCLB)
    8.占空比的计算方法: 
当PPOL=0 时: 
             占空比=[(PWMPERx—PWMDTYx)/ PWMPERx]*100% 
当 PPOL=1 时: 
占空比=(PWMDTYx/ PWMPERx)*100% 
9.CAEx=0即当为左线性输出时: 
        PWMx输出频率=时钟频率/ PWMPERx   /*个寄存器的值就决定了相关PWM 通道的周期。*/
            当 PPOLx=0时 
            占空比=[(PWMPERx—PWMDTYx)/ PWMPERx]*100% 
            当 PPOLx=1时 
占空比=[PWMDTYx/ PWMPERx]*100% 
CAEx=1即当为居中线性输出时:
PWMx 输出频率=时钟频率/(2* PWMPERx) 
           当 PPOLx=0时 
           占空比=[(PWMPERx—PWMDTYx)/ PWMPERx]*100% 
           当 PPOLx=1时 
占空比=[PWMDTYx/ PWMPERx]*100% 
10.PWMPERx寄存器 
PWMPERx 寄存器共有 8 个,每一个通道都有一个这样的周期寄存器。这个
寄存器的值就决定了相关PWM 通道的周期。 每一个通道的周期寄存器都是双缓
冲的,因此如果当通道使能后,改变他们的值,将不会发生任何作用
周期的计算方法: 
1)  当 CAEx=0时,即进行左线性输出时: 
PWMx 周期=通道时钟周期*PWMPERx 
2)  当 CAEx=1时,即进行居中对齐输出时: 
PWMx 周期=通道时钟周期*(2*PWMPERx) 
11.PWMDTYx寄存器 
这个寄存器的值就决定了相关PWM 通道输出波形的占空比。
当计数值与占空比常数 PWMDTY相等时,则比较输出器有效,这时就会将
触发器置位,然后PWMCNT继续计数,当计数值与周期常数PWMPER相等时,
比较器输出有效,将触发器复位,同时也使 PWMCNT复位, 结束一个输出周期。

}

{//RTI中断服务指令
在中断服务程序中用于返回中断指令,在运行中断之前,用JSR指令将PC(程序计数器)和SR(状态寄存器)压入堆栈,当中断服务程序结束
时,执行RTI或RTIS指令,将PC和SR从堆栈中弹出。
}
{//上电复位
上电压从无到有在RESET处会先处于高电平一段时间,然后由于该点通过电阻接地则RESET该点的电平会逐渐的改变为低电平,从而使得单片机复
位口电平从1到0,达到给单片机复位的功能。这样一种复位方式就是所谓上电复位。
}
{//看门狗喂狗条件
喂狗标志为0,喂狗时间到达。其中看门狗喂狗条件是—32位数据,在初始化对每一个任务对应的位置1,任务执行后清0。
}
{//定时器编程步骤
1、初始化: 
设定预分频系数,设定工作方式,定时器溢出中断使能,定时器使能 
2、中断函数 
用户自己的代码,清标志位 
void ECT_Init(void)   

  TSCR2_PR   = 7;  //预分频系数为 8 
   ………………….. 
  TSCR2_TOI  = 1;  //定时器溢出中断使能 
  TSCR1_TEN  = 1;  //定时器使能 

#pragma CODE_SEG __NEAR_SEG NON_BANKED 
void TimerOverFlow(void) 

    //用户自己的代码 
TFLG2_TOF  = 1;  //清楚定时器溢出中断标志位 

}
{//#pragma data_seg介绍  
1,#pragma data_seg()一般用于DLL中。也就是说,在DLL中定义一个共享的,有名字的数据段。最关键的是:这个数据段中的全局变量可以被多个进程共享。
否则多个进程之间无法共享DLL中的全局变量。

2,共享数据必须初始化,否则微软编译器会把没有初始化的数据放到.BSS段中,从而导致多个进程之间的共享行为失败。

3,你所谓的结果正确是一种错觉。
DLL:----->动态链接库英文为DLL,是Dynamic Link Library 的缩写形式,DLL是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件。
}
{//CAN总线
CAN 是Controller Area Network 的缩写(以下称为CAN),是ISO国际标准化的串行通信协议。在汽车产业中,出于对安全性、舒适性、方便性、低公害、
低成本的要求,各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,
线束的数量也随之增加。为适应“减少线束的数量”、“通过多个LAN,进行大量数据的高速通信”的需要,1986 年德国电气商博世公司开发出面向汽车的CAN 
通信协议。此后,CAN 通过ISO11898 及ISO11519 进行了标准化,在欧洲已是汽车网络的标准协议。

另外,与其它现场总线比较而言,CAN总线是具有通信速率高、容易实现、且性价比高等诸多特点的一种已形成国际标准的现场总线。这些也是CAN总线应用于
众多领域,具有强劲的市场竞争力的重要原因。
}

{//LIN总线
LIN(Local Interconnect Network)是一种低成本的串行通讯网络,用于实现汽车中的分布式电子系统控制。LIN 的目标是为现有汽车网络(例如CAN 总线)提供辅助功能,
因此LIN总线是一种辅助的总线网络。在不需要CAN 总线的带宽和多功能的场合,比如智能传感器和制动装置之间的通讯使用LIN 总线可大大节省成本。
LIN 技术规范中除定义了基本协议和物理层外还定义了开发工具和应用软件接口。LIN 通讯是基于SCI(UART)数据格式,采用单主控制器/多从设备的模式。
仅使用一根12V 信号总线和一个无固定时间基准的节点同步时钟线。这种低成本的串行通讯模式和相应的开发环境已经由LIN 协会制定成标准。LIN 的标准
化将为汽车制造商以及供应商在研发应用操作系统降低成本。

LIN 的通讯规则
一个LIN 网络由一个主节点一个或多个从节点组成,所有节点都有一个从通讯任务。该通讯任务分为发送任务和接收任务,主节点还有一个主发送任务。
一个LIN 网络上的通讯总是由主发送任务所发起的。主控制器发送一个起始报文,该起始报文由同步断点和同步字节消息标志符所组成。相应的,在接受
并且滤除消息标志符后,一个从任务被激活并且开始本消息的应答传输。该应答由2/4/8 个数据字节和一个校验码所组成。起始报文和应答部分构成一个完整的报文帧。
怎样正确组成LIN 报文帧由报文标志符指示该报文的组成。这种通讯规则可以用多种方式来交换数据:由主节点到一个或多个从节点;由一个从节点到主节点或其他的
从节点,通讯信号可以在从节点之间传播而不经过主节点或者主节点广播消息到网络中的所有节点。报文帧的时序由主控制器控制。
}
{//EEPROM
EEPROM (Electrically Erasable Programmable Read-Only Memory),电可擦可编程只读存储器--一种掉电后数据不丢失的存储芯片。 EEPROM 可以在电脑上
或专用设备上擦除已有信息,重新编程。一般用在即插即用。
}
{//RS232
个人计算机上的通讯接口之一,由电子工业协会(Electronic Industries Association,EIA) 所制定的异步传输标准接口。通常 RS-232 接口以9个引脚 (DB-9) 
或是25个引脚 (DB-25) 的型态出现,一般个人计算机上会有两组 RS-232 接口,分别称为 COM1 和 COM2。
}
{//上位机
是指可以直接发出操控命令的计算机,一般是PC/host computer/master computer/upper computer,屏幕上显示各种信号变化(液压,水位,温度等)。

下位机是直接控制设备获取设备状况的计算机,一般是PLC/单片机single chip microcomputer/slave computer/lower computer之类的。
上位机发出的命令首先给下位机,下位机再根据此命令解释成相应时序信号直接控制相应设备。下位机不时读取设备状态数据(一般为模拟量),
转换成数字信号反馈给上位机。
简言之如此,实际情况千差万别,但万变不离其宗:上下位机都需要编程,都有专门的开发系统。在概念上,控制者和提供服务者是上位机,被控制者和
被服务者是下位机,也可以理解为主机和从机的关系,但上位机和下位机是可以转换的。
}
{//大回零模式
不管指针实际在什么位置,一律认为当前位置是300度(或270度)。
}
{//XTAL
外部时钟输入,表示外部晶振,而外部晶振常常连接至单片机的引脚,常常使用XTAL加上数字表示连接外部晶振。一般是指时钟电路引脚。

XTAL1:接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,若使用外部TTL时钟时,该引脚必须接地。

  XTAL2:接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出,若使用外部TTL时钟时,该引脚为外部时钟的输入端。
}
{//TTL------->BJT-BJT逻辑门电路
全称Transistor-Transistor Logic,即BJT-BJT逻辑门电路,是数字电子技术中常用的一种逻辑门电路,应用较早,技术已比较成熟。TTL主要有BJT
(Bipolar Junction Transistor 即双极结型晶体管,晶体三极管)和电阻构成,具有速度快的特点。最早的TTL门电路是74系列,后来出现了74H系列,74L系列,74LS,
74AS,74ALS等系列。但是由于TTL功耗大等缺点,正逐渐被CMOS电路取代。TTL门电路有74(商用)和54(军用)两个系列,每个系列又有若干个子系列。

TTL电平信号:
TTL电平信号被利用的最多是因为通常数据表示采用二进制规定,+5V等价于逻辑“1”,0V等价于逻辑“0”,这被称做TTL(晶体管-晶体管逻辑电平)信号系统,
这是计算机处理器控制的设备内部各部分之间通信的标准技术。TTL电平信号对于计算机处理器控制的设备内部的数据传输是很理想的,首先计算机处理器控制的设
备内部的数据传输对于电源的要求不高以及热损耗也较低,另外TTL电平信号直接与集成电路连接而不需要价格昂贵的线路驱动器以及接收器电路;再者,计算机处理
器控制的设备内部的数据传输是在高速下进行的,而TTL接口的操作恰能满足这个要求。TTL型通信大多数情况下,是采用并行数据传输方式,而并行数据传输对于超过
10英尺的距离就不适合了。这是由于可靠性和成本两面的原因。因为在并行接口中存在着偏相和不对称的问题,这些问题对可靠性均有影响。
TTL输出高电平>2.4V,输出低电平<0.4V。在室温下,一般输出高电平是3.5V,输出低电平是0.2V。最小输入高电平和最大输入低电平:输入高电平>=2.0V,
输入低电平<=0.8V,噪声容限是0.4V。TTL电路是电流控制器件,TTL电路的速度快,传输延迟时间短(5-10ns),但是功耗大。
}
{//ECT模块----增强型捕捉定时器模块
HC12 增强型捕捉计时器模块在 HC12 标准定时器的基础上增加了一些特点,用以扩展它的应用范围,特别是在汽车 ABS方面。ABS----防锁死刹车系统

ECT模块有8个输入捕捉和输出比较(IC/OC)通道,当它们被配置为输入捕捉时,被称为IC通道。其中4个IC通道带有保持寄存器,它们可以存储2个不同的计数值
而不产生中断,另外4个IC通道只有捕捉寄存器来保存一个计数值。

4个8为脉冲累加器对应4个IC通道,它们都有自己的保持寄存器来保存计数值,而4个8位脉冲累加器又可以当作2个16位脉冲累加器来使用。

16位的模数减法计数器可以产生周期性的中断,它同样可以用来把IC寄存器和脉冲累加器中的值锁存到对应的保持寄存器里。

保持寄存器--指的是可以通过通信命令读或者写的寄存器,通常是一些功能控制寄存器或者输出寄存器等。不同的设计中,有些保持寄存器是掉电保持;
有些则不。这个看需要,不一定的。
输入寄存器--指的是只能读不能写的寄存器,通常是状态寄存器或者是输入结果寄存器等。

ECT有两个16位脉冲累加器,有4个8位脉冲累加器。这里的多少位,是说明结果寄存器是多少位的。16位的
脉冲累加的结果可以达到65535,8位的可以达到255,一般是用来测外部脉冲信号个数和频率的。比如测速,
速度传感器把速度转化为脉冲,测得脉冲就可以知道速度了。还有一些传感器,比如测功率的芯片,输出也是
脉冲,通过单位时间里测脉冲的个数,便知道负载的功率了。
--------------------------------------------------------------------------------------------------------------------------------------
ECT模块的工作模式: 1、停止模式(STOP)--定时计数器不工作,时钟停止。
2、冻结模式(FREEZE)--定时计数器是否工作,需要参考TSFRZ的状态 TSFRZ------定时器系统寄存器1--TSCR1的bit5--该位不会停止脉冲累加器
|--0 在此模式下仍允许定时器运行
|--1   在此模式下仍不允许定时器运行
3、等待模式(WAIT)--定时计数器是否工作,需参考TSWAI的状态 TSWAI-----定时器系统寄存器1--TSCR1的bit6--该位会影响脉冲累加器
|--0 在此模式下仍允许定时器运行
|--1   在此模式下仍不允许定时器运行
4、正常模式(NORMAL):定时计数器一直工作直到被禁止。

主定时器的计数器频率 = 总线时钟频率 / 2^预分频因子

PAI:脉冲累加器输入中断允许位。--------->0:禁止输入中断 1:当 PAIF置位时申请中断。
PACTL:脉冲累加器A控制寄存器-------->寄存器 PACTL决定了 PAI 的工作方式及其参数,还包括PAI 的启动、确定定时器系统的时钟信号源、中断管理等
详见MC9S12-----p30

TIOS:选择寄存器------->TIOS 寄存器用于指定各个通道的功能,即工作于IC还是 OC方式。当某个位 IOSn=0 时,对应的通道 n 为输入捕捉(1C)通道,
否则当 IOSn=1 时,通道 n为输出比较(OC)通道。

OC7M:屏蔽寄存器
TCNT:定时器核心寄存器---------->TCNT是递增计数器,它不停地对内部时钟信号计数、程序可随时读取,但在普通模式下禁止写入。
TCNT应按字访问,分别访问高、低字节可能得到错误的结果。 在特殊模式下,TCNT 可写,但因为写操作与预分频器时钟不同步,TCNT
寄存器写入后,其第一个周期可能是一个不同的值。

TSCR1:计时器系统控制寄存器 1-------->TSCR1 寄存器是定时器模块的总开关,它决定模块是否启动以及在中断等待、BDM 方式下的行为,
还包括标志的管理方式。

BDM:BDM(Background Debugging Mode)是摩托罗拉公司支持的一种OCD的调试模式。通过BDM接口可以完成基本的调试功能,例如:
设置断点、读写内存、读写寄存器、下载程序、单步执行程序、运行程序、停止程序运行等。

TSCR2:计时器系统控制寄存器 2-------->p27
ICSYS:输入系统控制寄存器--------------->p35

ECLK/64时钟进行计数,输入引脚上有效电平结束时的跳变沿将停止计数,同时置位中断标志。如果允许脉冲累加器中断,则产生一次中断申请。

MCU:微程序控制器------>随着大规模集成电路的出现及其发展,将计算机的CPU、RAM、ROM、定时计数器和多种I/O接口集成在一片
芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制。
}
{//ATD模块
模数转换原理:
1.模拟信号依次通过抽样和保持(S/H)电路和模拟转换器(A/D)后转换为数字格式。
2.抽样和保持电路以均匀间隔对模拟信号进行抽样,并且在每个抽样运算后在足够的时间内保持抽样值恒定,以保证输出值可以被 A/D转换器精确转换。 
3.下一步是通过模数转换器将抽样和保持电路的输出转换为数字形式。模数转换器的输出通常表示为二进制编码的形式。 
4.转换精度由分辨率来表示,它由离散级数量决定。比如,对一个以二进制形式编码的长度为 N 位的长的输出,有效地离散级数量是 2 的 N 次方,分辨率为
离散数量级的倒数。
}
{//SCI模块------SCI 是一种采用 NRZ 格式的异步串行通信接口,它内置独立的波特率产生电路和 SCI 收发器,可以选择发送 8 或 9 个数据位(其中一位可以指定为奇或偶
校验位)。
数字信号可以直接采用基带传输,所谓基带就是指基本频带。基带传输就是在线路中直接传送数字信号的电脉冲,这是一种最简单的传输方式,近距离通信的局域网
都采用基带传输。
不归零码(NRZ,Not Return to Zero)

SCI 是全双工异步串行通信接口,主要用于 MCU 与其他计算机或设备之间的通信,几个独立的 MCU也能通过 SCI 实现串行通信,形成网络。
}
{//SPI模块
 串行设备接口SPI 主要用于同步串行通信,它使 MCU 具备了与外围设备以及其他微处理器进行同步通信的能力,也能够在多主系统中实现处理器间的通信。
}
{//上下拉电阻
上拉就是将不确定的信号通过一个电阻钳位在高电平,电阻同时起限流作用。下拉同理。也是将不确定的信号通过一个电阻钳位在低电平。
上拉是对器件输入电流,下拉是输出电流;强弱只是上拉电阻的阻值不同,没有什么严格区分;对于非集电极(或漏极)开路输出型电路(如普通门电路)
提升电流和电压的能力是有限的,上拉电阻的功能主要是为集电极开路输出型电路输出电流通道。
}
{//异常复位的检查
复位要区分是上电复位还是其他因素。
如果是上电复位则需要对保护区的变量从新赋初值否则回事随机数。
如果是其他复位则ARM中的数据不会丢失,不需要对其赋初值。
}

MC9S12相关模块相关推荐

  1. 5. [mmc subsystem] mmc core(第五章)——card相关模块(mmc type card)

    零.说明(重要,需要先搞清楚概念有助于后面的理解) 1.mmc core card相关模块为对应card实现相应的操作,包括初始化操作.以及对应的总线操作集合.负责和对应card协议层相关的东西. 这 ...

  2. python列表内置函数_Python-列表总结(操作符、方法、内置函数、相关模块)

    目录 上篇文章思考题 简介 创建与赋值 操作符 访问与更新(序列操作符切片) 判断元素是否存在(成员关系操作in,not in) 拼接列表(连接操作符+) 重复(重复操作符*) 删除 方法 添加 删除 ...

  3. pythontime模块介绍_Python相关模块介绍

    原标题:Python相关模块介绍 一.Python引用扩展模块 • import [as ]:将模块中的函数等名称导入当前程序,"命名空间"namespace,引用方法--. • ...

  4. yolov3前向传播(二)-- yolov3相关模块的解析与实现(二)

    yolov3相关模块的解析与实现(二) 接上一篇 三.上采样函数 作用:用于将特征图扩展到想要的尺寸大小,和其他特征叠加到一起使用. 上采样的方法为近邻差值法 上采样函数的实现 # 定义上采样函数 d ...

  5. Linux内核4.14版本——mmc core(4)——card相关模块(mmc type card)

    目录 1. 简介 1.1 mmc card的几种类型 1.2 mmc子系统如何区分使用哪种card的?(mmc_rescan) 2. mmc type card协议相关操作 3. 一些重要的API函数 ...

  6. ansible 软件相关模块,剧本

    软件相关模块 yum rpm和yum的区别 rpm:redhat package manager yum 可以解决依赖关系 yum 源配置 使用yum下载时需要先下载epel [epel] name= ...

  7. Python3 日期时间 相关模块(time(时间) / datatime(日期时间) / calendar(日历))

    Python3 日期时间 相关模块(time(时间) / datatime(日期时间) / calendar(日历)) 本文由 Luzhuo 编写,转发请保留该信息. 原文: http://blog. ...

  8. 41.从入门到精通:格式化日期 获取某月日历 Time 模块 日历(Calendar)模块 其他相关模块和函数

    41.从入门到精通:格式化日期 获取某月日历 Time 模块 日历(Calendar)模块 其他相关模块和函数 格式化日期 获取某月日历 Time 模块 日历(Calendar)模块 其他相关模块和函 ...

  9. 实用向Time相关模块 - 成为python时间管理大师吧

    前言 大家好,我是Samaritan. Python中有不少基础又实用的模块,甚至是无需安装的标准库.其中大家最先想到的可能就是time了,反正我第一个接触的模块和用法就是: import time ...

  10. 软件相关模块与ansible剧本

    一 软件相关的模块 yum rpm和yum的区别 rpm:rehat pachage manager   yum可以解决依赖关系 yum源配置 epel的参数[epel] name=Extra Pac ...

最新文章

  1. Android中的JSON详细总结
  2. NET Core微服务之路:自己动手实现Rpc服务框架,基于DotEasy.Rpc服务框架的介绍和集成...
  3. WPF 3D 学习 - 3D材质初步
  4. Struts2_HelloWorld_2
  5. 金蝶凭证序时簿在哪_来了!金蝶日常账务处理大全
  6. docker 安装redis 挂载到宿主机
  7. 《天际友盟DRP数字风险防护报告(2021年上半年)》重磅发布
  8. Shell编程:awk使用总结
  9. java版selenium_Selenium3.0-Java版(共61节)
  10. 基础才是重中之重~如何整理BLL与DAL层的文件
  11. 视频:网站建设-如何利用网络赚大钱2
  12. 一次磁盘满的系统故障
  13. java导入包srcy有红叉_eclipse导入web项目之后项目中出现小红叉解决办法
  14. ocp mysql考试介绍_Oracle OCP OCM 和 Mysql OCP考试详情介绍
  15. win7如何安装IIS,三种方法任你选(图文教程)
  16. 苹果电脑无法自动修复计算机,苹果电脑没办法正常开机的解决方案
  17. 棋牌PHP域源码,微信棋牌源码下载( h5.super-mans。com Q:2012035031)
  18. ffmpeg安装过程记录
  19. java开源框架jpeege,隆重向你推荐这 8 个开源 Java 类库
  20. MySQL的MMM高可用测试(转自老金)

热门文章

  1. 412 Precondition Failed
  2. 【生活中的逻辑谬误】以先后论因果和简化推理
  3. Pytorch ——基础指北_零 [神经元和激活函数介绍]
  4. java表格居中_让表格水平垂直居中
  5. 如何写一篇给天使投资人看的《商业计划书》?
  6. 大数据对生活有什么影响
  7. Centos Siege测试使用
  8. 深度学习之卷积神经网络中常用模型评估指标(混淆矩阵,精确率,召回率,特异度计算方法)——python代码
  9. 制动计算机,一种基于摩擦制动的计算机主机底座
  10. 【元胞自动机】基于元胞自动机实现单边教室人群疏散含Matlab源码