XS128 ECT定时 捕捉
- 格式:doc
- 大小:189.50 KB
- 文档页数:14
/****************************************************************************** ***************说明:定时器2捕获功能的使用。
由于只有三个三个数码管,帮只显示捕获的低八位,经验证,当P1.1(T2EX)用定时器0控制发出一个下降沿,用T2的P1^1;引脚进行捕获,从而得到高电平时间用以测量波形的宽度跳变时,数据被捕获/****************************************************************************** ***************//****************************************************************************** ****************/#include<reg52.h> //常用的头文件,52单片机包含定时器2#include <intrins.h> //51基本运算(包括_nop_空函数)#define uchar unsigned char#define ulong unsigned long#define uint unsigned intsbit STC_WR=P3^6;sbit IC138_C=P2^7;sbit IC138_B=P2^6;sbit IC138_A=P2^5;sbit p10=P1^0; //有定时器0控制从P2.0口输出一个信号bit flag=0;#define Port_Data P0uint tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};uchar count=0; //注,使用扩展RAM时一定要注意初始化uchar temp[]={0,0,0,0,0,0,0,0}; //用于赋捕获值/****************************************************************************** ****************/void delay(uint z) //ms级延时函数{uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}/****************************************************************************** ****************/void BUZZ_Y5C(){STC_WR=0;IC138_C=1;IC138_B=0;IC138_A=1;}void we_Y6C(){STC_WR=0;IC138_C=1;IC138_B=1;IC138_A=0;}void du_Y7C(){STC_WR=0;IC138_C=1;IC138_B=1;IC138_A=1;}void up_we_Y6C(){STC_WR=1;IC138_C=1;IC138_B=1;IC138_A=0;}void up_du_Y7C(){STC_WR=1;IC138_C=1;IC138_B=1;IC138_A=1;}void display() //显示程序{du_Y7C();Port_Data=tab[temp[0]];up_du_Y7C();we_Y6C();Port_Data=0x01;up_we_Y6C();delay(1);du_Y7C();Port_Data=tab[temp[1]]; up_du_Y7C();we_Y6C();Port_Data=0x02;up_we_Y6C();delay(1);du_Y7C();Port_Data=tab[temp[2]]; up_du_Y7C();we_Y6C();Port_Data=0x04;up_we_Y6C();delay(1);du_Y7C();Port_Data=tab[temp[3]]; up_du_Y7C();we_Y6C();Port_Data=0x08;up_we_Y6C();delay(1);du_Y7C();Port_Data=tab[temp[4]]; up_du_Y7C();we_Y6C();Port_Data=0x10;up_we_Y6C();delay(1);du_Y7C();Port_Data=tab[temp[5]];up_du_Y7C();we_Y6C();Port_Data=0x20;up_we_Y6C();delay(1);du_Y7C();Port_Data=tab[temp[6]];up_du_Y7C();we_Y6C();Port_Data=0x40;up_we_Y6C();delay(1);du_Y7C();Port_Data=tab[temp[7]];up_du_Y7C();we_Y6C();Port_Data=0x80;up_we_Y6C();delay(1);}void gaibian(){uint x;x=RCAP2H*256+RCAP2L;temp[7]=x%10;x=x/10;temp[6]=x%10;x=x/10;temp[5]=x%10;x=x/10;temp[4]=x%10;x=x/10;temp[3]=x%10;x=x/10;temp[2]=x%10;x=x/10;temp[1]=x%10;temp[0]=x/10;RCAP2H=0;RCAP2L=0;TH2=0;TL2=0;flag=0;}/****************************************************************************** ****************/void time2_init(void) //捕获模式,当EXEN2=1,外部T2EX为负跳变时,则将定时器中的值捕获到RCAP2L和RCAP2H{TH2=0; //初值为0,不断自加,当溢出时中断,或者外部T2EX由1到0时产生中断TL2=0;RCAP2L=0;RCAP2H=0; // 允许T2定时器中断T2CON=0x09; //必须将T2CON.7位置1才能进行外部捕获/或者外部T2EX由1到0时产生中断}void time_init(){TMOD=0X12;TH0=256-12;TL0=256-12;TH1=(65536-50000)/256;TL1=(65536-50000)%256;EA=1;ET0=1;ET1=1;ET2=1;TR0=1;TR1=1;TR2=1;}/****************************************************************************** ****************/void main(){time2_init();time_init();BUZZ_Y5C();Port_Data=0X00;while(1){if(flag==1)gaibian();display(); //只用来显示低八位}}void timer2(void) interrupt 5{if(TF2){TF2=0; //若定时器溢出则产生中断清0RCAP2H=0;RCAP2L=0;TH2=0;TL2=0;}else{TR0=0;TR2=0;flag=1;EXF2=0; //若外部负跳变时产生中断清0}}void timer0() interrupt 1{p10=~p10;}void timer1() interrupt 3{static uchar x=0;TH1=(65536-50000)/256;TL1=(65536-50000)%256;x++;if(x==20){TR2=1;TR0=1;x=0;RCAP2H=0;RCAP2L=0;TH2=0;TL2=0;}}。
The Lume n s ® VC-TR1 Auto-Tracking camera is capable of tracking a target automatically and continuously.Equipped with dual cameras – a PTZ camera and a secondary panoramic camera, the VC-TR1 guarantees consistent tracking performance. The smart switching function allows the VC-TR1 to automatically switch the view between two cameras during tracking whether the tracked target is moving or has stopped moving. These innovative functions can help build your video production automation.The VC-TR1 comes with a professional FHD image sensor and 20x optical zoom providing a vivid Full HD 1080p output resolution. It supports PoE+ and IP streaming simplifying an A/V integration. It is applicable for lecture capture, corporate training, house of worship, and any stage setting environments.• Auto tracking and smart switching• Full HD 1080p 60fps with 20x optical zoom • HDMI, 3G-SDI, IP and USB video outputs • Supports PoE+ (Power over Ethernet)•Supports RTSP / RTMP / RTMPS and HEVC / H.264 / MJPEG video compression• The presenter is free to walk around without wearing any tracking devices • The camera can live stream to YouTube and Facebook synchronously •No need for a camera operator to control cameraKey FeaturesApplicat ionsLecture Capture Corporate Training Events House of WorshipVC-TR1Auto-Tracking CameraPoE+Feb, 2021Lumens Integration, Inc. 4116 Clipper Court Fremont, CA, 94538Phone: +1-888-542-3235 Fax: +1-510-252-1389Lumens EuropeDe Nayerstraat 17 9470 Denderleeuw Belgium Phone: +32-473-58-38-95Fax: +32-2-452-76-00I/O CONNECTIONSEthernet HDMIOutputDC 12V InputOutput SwitchUSB 2.0SDI Output RS-232Power On/OffAudio InSensorPTZ Camera:1/2.8" 2.13MP CMOS Panoramic Camera: 1/2.5" 8.57MP CMOS Video Format Resolution: 1080p / 720pFrame Rate : 60 / 50 / 30 / 25Video Output (HD) Interface HDMI / SDI / USB2.0 / Ethernet Optical Zoom 20x Digital Zoom 12xViewing Angle PTZ Camera: 71°Panoramic Camera: 112°Panning Angle +90 ~ -90° Panning Speed 100°/sec Tilting Angle +90 ~ -30° Tilting Speed 80°/sec Auto-Tracking Yes Auto-Switching Yes Aperture F1.6 ~ F3.5Focal Length 4.9mm ~ 94mm Shutter Speed 1/60 ~ 1/10,000MinimumObject Dis tance500mm Video S/N Ratio > 40dBMinimum Illumination 1.0Lux @ (F1.6, AGC ON)Focus Sys temAuto / Manual Gain Control Auto / Manual White BalanceAuto / ManualExposure Control Auto / Manual WDR Yes 2D NR Yes 3D NRYes Preset Positions256Multiple Video Stream1 x PTZ Camera Main Stream 1 x Panoramic Camera Main Stream1 x PTZ Camera Sub Stream Audio Compression FormatAACControl Interface RS-232 / Ethernet Control Protocol VISCA / VISCA over IP PoEPoE+ (IEEE802.3at)Video Stream RTSP / RTMP / RTMPS Video Compression HEVC / H.264 / MJPEG Audio Input Line In (Phone Jack 3.5mm x1)Audio Output Ethernet / USB IR Receiver Yes IR Remote Control Yes DC In12V Power Consumption PoE: 17W DC In: 16W Weight 3.1lbs (1.4 kg)Dimensions 9.6" x 5.7" x 6.5" (245 ×145 ×165 mm)。
附录程序源代码(车辆行驶方位图)以目标点为原点,纬度为X轴,经度为Y轴。
无论车辆在那个区域都能通过判断行驶方向与正确方向的夹角来实行转向控制。
(起始点)(行驶方向)(目标点)(纬度)(经度)用的是MC9S12XS128单片机作为中央处理器。
//主函数部分//******************************************************************* *void main(void){PLL_Init();//调用锁相环函数初始化系统时钟PWM_Init();//初始化PWMPortInit();//初始化IO口的输入输出SCI_Init();Init_GPS_module(); /* put your own code here */EnableInterrupts;for(;;) {if(gps_data_ok_flag==1) //查询GPS数据是否OK{DisableInterrupts;Cal_gas_data_to_disp();if(gps_mode[0]==65){PWMDTY0=200;e++;k++;b=(gps_longitude[7]-48)*100+(gps_longitude[8]-48)*10+(gps_longitude[9 ]-48); //*******// 经度数据d=(gps_latitude[6]-48)*100+(gps_latitude[7]-48)*10+(gps_latitude[8]-4 8); //*******//纬度数据if(e==1){b0=b;d0=d;}if(e==2) // num1{ //b1=b; //d1=d;}//****************************************************//*************************************************** //***********(b0,d0)做起始点************************// if(e==2){if(b0>b1) // // num1{ //f1=b0-b1;}else //{ //f1=b1-b0; //} //if(b0>380) // num2{ //f2=b0-380; //} //else //{ //f2=380-b0; //}if(d0>d1) //num3{f3=d0-d1; //}else{f3=d1-d0;}if(d0>20) //num4{f4=d0-20;}else{f4=20-d0;}f5=f1*f4;f6=f2*f3;//*********************************************** //************************************************* //**************第一大区域*********************** if(d0>20&&b0>380){if(d1>d0&&b1>b0&&f5<f6) //第1区域向左{PWMDTY45=tun_r[16];disply(16000);zi();}if(d1>d0&&b1>b0&&f5>f6) //第1区域向右{PWMDTY45=tun_r[5];disply(16000);zi();}if(d1<=d0&&b1<b0&&f5>f6) //第3区域向左{PWMDTY45=tun_r[14];disply(4000);zi();}if(d1<d0&&b1<=b0&&f5<f6) //第3区域向右{PWMDTY45=tun_r[6];disply(3000);zi();}if(d1<=d0&&b1>b0) //第2区域向右{PWMDTY45=tun_r[5];disply(9000);zi();}if(d1>d0&&b1<=b0) //第4区域向左 {PWMDTY45=tun_r[16];disply(4000);zi();}}//********************************************** //********************************************* //***************第二大区域*****************8if(d0<20&&b0>380){if(d1<d0&&b1>b0&&f5<f6) //第2区域向右{PWMDTY45=tun_r[4];disply(16000);zi();}if(d1<d0&&b1>b0&&f5>f6) //第2区域向左{PWMDTY45=tun_r[16];disply(16000);zi();}if(d1>=d0&&b1<b0&&f5>f6) //第4区域向右 {PWMDTY45=tun_r[6];disply(3000);zi();}if(d1>d0&&b1<=b0&&f5<f6) //第4区域向左 {PWMDTY45=tun_r[14];disply(4000);zi();}if(d1<d0&&b1<=b0) //第3区域向右 {PWMDTY45=tun_r[4];disply(9000);zi();}if(d1>=d0&&b1>b0) //第1区域向左{PWMDTY45=tun_r[16];disply(4000);zi();}}//************************************************** //************************************************* //************************第三大区域************* if(d0<20&&b0<380){if(d1<d0&&b1<b0&&f5<f6) //第三区域左转{PWMDTY45=tun_r[16];disply(16000);zi();}if(d1<d0&&b1<b0&&f5>f6) //第三区域右转{PWMDTY45=tun_r[4];disply(16000);zi();}if(d1>=d0&&b1>b0&&f5>f6) //第一区域左转{PWMDTY45=tun_r[14];disply(4000);zi();}if(d1>d0&&b1>=b0&&f5<f6) //第一区域右转{PWMDTY45=tun_r[6];disply(3000);zi();}if(d1<d0&&b1>=b0) //第二区向左{PWMDTY45=tun_r[16];disply(4000);zi();}if(d1>=d0&&b1<b0) //第四区域向右{PWMDTY45=tun_r[4];disply(9000);zi();}}//*********************************************************//*********************************************************//**************************第四大区域********************* if(d0>20&&b0<380){if(d1>d0&&b1<b0&&f5<f6) //第四区域向右{PWMDTY45=tun_r[4];disply(16000);zi();}if(d1>d0&&b1<=b0&&f5>f6) //第四区域向左{PWMDTY45=tun_r[16];disply(16000);zi();}if(d1<d0&&b1>b0&&f5<f6) //第二区域向左{PWMDTY45=tun_r[14];disply(4000);zi();}if(d1<d0&&b1>=b0&&f5>f6) //第二区域向右{PWMDTY45=tun_r[6];disply(3000);zi();}if(d1>d0&&b1>=b0) //第1区域向右{PWMDTY45=tun_r[4];disply(9000);zi();}if(d1<=d0&&b1<b0) //第三区域向左{PWMDTY45=tun_r[16];disply(4000);zi();}}//**********************在反方向行驶**********************// if(f5==f6){if(b1>b0&&d1>d0)PWMDTY45=tun_r[16];disply(16000);zi();}if(b1>b0&&d1<d0){PWMDTY45=tun_r[16];disply(16000);zi();}if(b1<b0&&d1<d0){PWMDTY45=tun_r[16];disply(16000);zi();}if(b1<b0&&d1>d0){PWMDTY45=tun_r[16];disply(16000);zi();}}e=0;}//********************************************反之当以(d1﹑b1)为起始点则把(d0﹑b0)与(d1﹑b1)互换;当到达目的地(d==20&&b==380)时,if(18<d&&d<22&&370<b&&b<390){while(1){PWMDTY0=249;}则车辆停止。
>手把手教你写S12XS128程序(24)--Timer模块应用实例1时间:2010-01-13 20:43来源:电子设计吧作者:dzsj8 点击:322次输入捕捉(IC)编程步骤:初始化函数TIOS---选择工作方式为ICTCTLx---设置对应位输入捕捉的方式(x=3、4,高位是3,低位是4)TSCRx---控制寄存器设置,包括工作使能、确定工作方式(x=1)、中断允许、预分频TIE---中断使能中断函数清除标志位---TFLG1处理函数【例程3】//---------------------------------------------------------------------------////功能说明:利用PP3通道产生40Hz,占空比为50%的方波// 利用PT0采集方波的个数,并在PB口显示//程序设计:电子设计吧//设计时间:2010.01.13//---------------------------------------------------------------------------//#include <hidef.h> /* common defines and macros */#include <mc9s12dg128.h> /* derivative information */#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"unsigned int Input_Num;//----------------------时钟初始化------------------------------//void PLL_Init(void) //PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1){ //锁相环时钟=2*16*(2+1)/(1+1)=48MHzREFDV=1; //总线时钟=48/2=24MHzSYNR=2;while(!(CRGFLG&0x08));CLKSEL=0x80;}//--------------------通道0输入捕捉初始化-------------------//void ECT0_Init(void){TSCR2=0x06; //禁止溢出中断,分频系数64(24/64MHz) TIOS_IOS0=0; //通道0为输入捕捉TCTL4=0x01; //捕捉上升沿TIE_C0I=1; //通道0输入捕捉中断允许TSCR1=0x80; //使能定时器}//---------------------PWM通道3初始化程序-------------------//void PWM_Init(void){PWME_PWME3=0x00; // PWW is disabled 禁止PWMPRCLK=0x33; // 0b0011 0011 A=B=24M/8=3M 时钟预分频寄存器设置PWMSCLA=150; // SA=A/2/150=10k 时钟设置PWMSCLB=150; // SB=B/2/15 =10k 时钟设置PWMCTL=0x00; // no concatenation 控制寄存器设置PWMCLK_PCLK3=1; // PWM3-----SB 时钟源的选择PWMPOL_PPOL3=1; // Duty=High Time 极性设置PWMCAE_CAE3=0; // left-aligned 对齐方式设置PWMPER3=250; // Frequency=SB/250=40 周期寄存器设置PWMDTY3=125; // Duty cycle = 50% 占空比寄存器设置PWME_PWME3=1; // enable 使能}//----------------------主函数-------------------------//void main(void){PLL_Init();PWM_Init();ECT0_Init();DDRB=0XFF;PORTB=0X00;EnableInterrupts;for(;;){} /* wait forever *//* please make sure that you never leave this function */}//--------------------转速计算:-------------------------------//////智能车转速子函数////----------------------------------------------------------------//#pragma CODE_SEG NON_BANKED //定时器通道0输入捕捉中断void interrupt 8 Timer0_Onput(void){TFLG1_C0F=1; //清中断标志位Input_Num++;PORTB=Input_Num;if(Input_Num>=255){Input_Num=0;}}。
LTE常用定时器参数介绍LTE(Long Term Evolution)是一种移动通信技术,它采用OFDMA (Orthogonal Frequency Division Multiple Access)和MIMO(Multiple Input Multiple Output)等技术来提供更高的数据速率和更好的性能。
在LTE中,定时器参数是一组用于控制各种定时器操作的参数。
本文将介绍LTE中常用的定时器参数。
1. T300:这是一种RRC(Radio Resource Control)连接建立定时器。
在LTE网络中,用户设备(UE)通过RRC连接与基站进行通信。
T300定时器用于监视RRC连接请求的重传。
如果在T300定时器过期之前,UE没有收到上行消息的确认,那么UE将重新发送RRC连接请求。
2.T301:这也是一种RRC连接建立定时器。
T301定时器用于监视UE在等待重发的RRC连接请求期间是否应该尝试重新建立连接。
如果T301定时器过期,UE将发送RRC连接请求给其他基站。
3.T302:这是一种RRC连接重配置定时器。
在LTE网络中,UE通过RRC连接接收基站的配置信息。
T302定时器用于监视UE等待RRC连接重配置的时间。
如果定时器过期,UE将重新发送RRC连接请求。
4.T304:这是一种RRC连接重配置更新定时器。
T304定时器用于监视UE等待RRC连接重配置更新的时间。
如果定时器过期,UE将重启RRC连接重新配置过程。
5.T311:这是一种RRC连接释放定时器。
T311定时器用于监视UE在接收RRC连接释放命令后等待释放并重新建立连接的时间。
如果定时器过期,UE将尝试重新建立连接。
6.T319:这是一种用户随机接入过程定时器。
T319定时器用于监视UE等待随机接入过程的时间。
如果定时器过期,UE将停止随机接入过程并进行其他操作。
7.T3000:这是一种UE在等待调度的时间间隔。
T3000定时器用于监视UE在接收数据调度前等待的时间。
单片机控制摄像头摄像、显示系统1111 单片机控制摄像头摄像、显示系统系别尚德光伏学院专业微电子技术班级 0801 学生姓名丁良林学号 100080253 指导教师陆亚青 2011年 4 月无锡科技职业学院毕业设计论文单片机控制摄像头摄像、显示系统 1 单片机控制摄像头摄像、显示系统摘要本项目主要是通过是S12XS128单片机来控制摄像头的正常工作并由该单片机送到电脑上。
其实很简单就是通过单片机来控制摄像头来拍照然后单片机再将拍摄到的图片传输到电脑上显示让人眼能看到所拍摄的画面。
所选的MC9S12XS128 单片机产品满足了用户对设计灵活性和平台兼容性的需求并在一系列汽车电子平台上实现了可升级性、硬件和软件可重用性、以及兼容性。
它为用户削减了成本并缩小了封装尺寸。
该项目在很多领域都有广泛的应用例如大学生智能车制作和监控系统。
例外选的OV7620是一款CMOS摄像头器件是一款彩色CMOS 型图像采集集成芯片提供高性能的单一小体积封装该器件分辨率可以达到640X480传输速率可以达到30帧。
关键词MC9S12XS128单片机OV7620摄像头显示系统无锡科技职业学院毕业设计论文单片机控制摄像头摄像、显示系统 2 abstract Abstractthis project mainly through is S12XS128 single shipcontrolling of the camera normal work and by the single-chip microcomputer to computer. Actually very simple is through the single ship controlling camera to take photos and then again to photograph of single-chip computer images transmitted to display on let the human eye can see the picture taken. Selected MC9S12XS128 microcontroller products meet the user to design flexibility and platform compatibility needs and in a series of automobile electronic platform achieved scalability the hardware and software reusability and compatibility. It for the user cut costs and reduce the encapsulation size. This project in many fields are widely used such as college students intelligent car production and monitoring system. Exception chosen OV7620 is a section CMOS camera device is a new color CMOS type image acquisition integrated chips to supply high-performance single small volume encapsulation this device resolution can achieve 640X480 transmission rate can reach 30 frames. Key wordsMC9S12XS128 microcontroller OV7620 cameras the display system. 无锡科技职业学院毕业设计论文单片机控制摄像头摄像、显示系统 3 目录前言 ................................................................. .................................................................................. 1 第一章系统的结构和功能现象 ................................................................. .................................... 1 11 系统的总体结构 ................................................................. ............................................ 1 1.2功能及现象 ................................................................. ....................................................... 2 第二章飞思卡尔XS128单片机介绍 ..................................................................... ........................ 1 2.1 XS128特性与封装 ................................................................. ........................................... 1 2.2单片机和相关引脚介绍 ..................................................................... ............................... 3 第三章OV7620摄像头 ..................................................................... ...............................................1 3.1 OV7620各模块介绍 ................................................................. ......................................... 1 3.1.2本摄像头模块新增特点 ..................................................................... ....................... 1 第四章单片机的连接与编程 ..................................................................... .................................... 2 4.1XS128最小系统 ..................................................................... ...........................................2 4.2 XS128与OV7620的硬件连接 ................................................................. ......................... 2 4.3 MC9S12XS128最小系统测试程序 ..................................................................... ............... 1 4.4 摄像头摄像及PC显示程序 ..................................................................... ........................ 2 总结 ..................................................................... .............................................................................. 2 致谢 ................................................................. .................................................................................. 1 参考文献 ................................................................. ........................................................................ ..1 附录 ................................................................. ................................................................................ 2 无锡科技职业学院毕业设计论文单片机控制摄像头摄像、显示系统 1 前言我们本次设计主要功能是用MC9S12XS128单片机来控制摄像头OV7620的正常工作并且在电脑上显示接受的图像和数据也就是通过XS128单片机输出摄像头采集到的图像经PC串口在电脑上的上位机软件上显示。
S12XS128程序--Timer模块介绍11、简述MC9S12XS128定时器模块与MC9S12DG128 ECT部分功能完全类似,以下均以ECT模块介绍xs128定时器模块。
HC12增强型捕捉计时器模块在HCS12标准定时器的基础上增加了一些特点,用以扩展它的应用范围,特别是在汽车ABS方面。
基准计时器的核心仍然是一个16位的可编程计数器,其时钟源来自一个预分频器。
该计时器可以被应用于多个方面,包括在对输入波形进行测量的同时产生一个输出波形。
波形的脉宽可以在几微秒到数秒的范围内变化。
增强型定时器模块(ECT)的结构框图如下,ECT功能相当于高速的I/O口,由一个4位预分频器、一个16位自由运行计数器,8个16位IC/OC通道,2个16位脉冲累加器以及一个16位模数递减计数器组成。
ECT实际上是一个16位的可编程计数器,它的基本时钟频率可以通过预分频器设置,用于产生波形输出,测量输入波形,统计脉冲个数,可以作为定时中断功能和独立时钟基准。
2、运行模式停止:由于时钟停止,计时器和计数器均关闭。
冻结:计时器和计数器均保持运行,直到TSCR($06)的TSFRZ位被置1。
等待:计数器保持运行,直到TSCR($06)的TSW AI位被置1。
正常:计时器和计数器均保持运行,直到TSCR($06)的TEN 位和MCCTL($26)的MCEN 位被分别清0。
IC通道组IC通道组由四个标准的缓冲通道IC0-IC3和四个非缓冲通道IC4-IC7组成(说明:缓存通道寄存器中只能记忆当前的值,下一次有效触发后就将前一个值覆盖,非缓冲通道多了一个保持寄存器,它可以记忆两次有效事件下的TCNT的值),两部分的基本功能都是捕捉外部事件发生的时刻,但是缓冲通道除了IC/OC寄存器TCn外,还设有保持寄存器TCnH,此外还在入口设置了延迟计数器,用来提高抗干扰能力。
非缓冲通道没有保持寄存器,入口也没有延迟计数器,但每个通道入口设置了一个2输入端的多路器,事件触发信号可以是来自本通道的输入引脚PORTn,也可以是来自其关联通道PORT(n-4)的延迟计数器输出,使用更加灵活。
当延迟功能有效时,输入引脚检测到一个有效的边沿后,延迟计数器开始对P时钟(模块时钟)进行计数,当到达设定的计数值后,延迟计数器在其输出端有条件地产生一个脉冲,这个条件就是延迟前后的引脚电平相反。
这样可以避免对窄输入脉冲做出反应。
延迟计数结束后,计数器自动清除。
输入信号两个有效边沿之间的持续时间必须大于设定的延迟时间。
在ECT中,所有IC通道均设置了覆盖保护功能,可以通过寄存器ICOVW设置是否允许某个通道用新的捕捉结果覆盖上一个结果。
对于缓冲的IC通道PT0-PT3,还具有锁存与队列两种工作方式。
在锁存方式下,每个有效的引脚事件只将自由定时器的值放入捕捉寄存器TCn,而TCn到保持寄存器TCnH的传送必须依赖递减模数计数器回0或者其他强制锁存命令才能实现,这时IC的工作情形与第6章的TIM模块相似。
在队列方式下(图7-2),TCn与TCnH形成了一个类似先进先出的队列,每个捕捉结果从TCn进入,然后随着下一个捕捉结果的到来移入TCnH,程序可以从TCnH 取得结果,然而这个队列是开放的,即程序也可以直接从TCn取得捕捉结果。
队列方式为CPU 提供了充分的响应时间。
由于PAC0-3与IC0-3共享相同的引脚,而且共享入口的逻辑,因此在两种方式下,PAI 与IC都可以同时工作,对同一引脚进行记录,前者记录脉冲或者边沿的数量,后者记录具体的时刻。
模数递减计数器16位递减模数计数器(MDC)可以用作时钟基准,产生周期性的中断请求,也可用于将IC寄存器和脉冲累加器的值锁存到各自的保持寄存器中。
锁存动作可以通过程序设定为周期性的或一次性的。
MDC的时钟频率可通过独立的定标器设定,内部设有定时常数寄存器,可以实现自动重装载,但MDC的常数寄存器与MDC计数器使用相同的地址,加载时通过特殊的时序实现。
每当MDC回0时,将在给定的时间段内控制贮和PAI寄存器的内容向各自的缓冲寄存器传输。
反映了MDC在IC、PAI系统中的作用。
脉冲累加器脉冲累加器由4个8位的通道PAC0-PAC3组成,可以通过级联形成两个16位通道PACA、PACB,它可以统计输入引脚上出现的有效边沿的数量,也可以统计有效电平出现的累计时间。
各个通道的8位保持寄存器是与4个缓冲IC通道相关联的,它们共享边沿检测与延迟电路。
当IC工作在两种不同的队列方式时,PAC保持寄存器也处于不同的工作状态,在锁存方式下,PCnH的加载依靠MDC计数器或者强制命令实现,而在队列方式下,则依靠IC 通道的TCnH读命令。
可见在ECT模块下,IC与PAI的工作联系更加紧密。
此外,脉冲累加器还有饱和记忆功能,当8位的脉冲累加器计数超过$FF后记忆保持,而不回滚到0,这时,计数值$FF意味着计数已经达到或超过255,如不需要,该功能可以关闭。
这可以用来监视某个通道的计数值是否已经达到预定的目标值。
值得注意的是,PACl、PAC0级联后,输入引脚为PT0,而PAC3、PAC2级联后,输入引脚并不是PT2,而是PT7,这样可以与那些无ECT的MCU保持一致性。
S12XS128程序(19)--Timer寄存器说明1、定时器/计数器系统控制寄存器1(TSCR1)寄存器偏移量:$0006Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0TEN TSWAITSFRZTFFCA0 0 0 0可在任何时候读或写。
TSCR1寄存器是定时器模块的总开关,它决定模块是否启动以及在中断等待、BDM方式下的行为,还包括标志的管理方式。
其各位的意义如下:TEN:定时器使能位,此外它还控制定时器的时钟信号源。
要使用定时器模块的IC/OC功能,必须将TEN置位。
如果因为某种原因定时器没有使能,脉冲累加器也将得不到ECLK/64时钟,因为ECLK/64是由定时器的分频器产生的,这种情况下,脉冲累加器将不能进行引脚电平持续时间的累加。
0:定时器/计数器被禁止,有利于降低功耗。
1:定时器/计数器使能,正常工作。
TSW AI:等待模式下计时器关闭控制位。
【注意】定时器中断不能用于使MCU退出等待模式。
0:在中断等待模式下允许MCU继续运行。
1:当MCU进入中断等待模式时,禁止计时器。
TSFRZ:在冻结模式下计时器和计数器停止位。
0:在冻结模式下允许计时器和计数器继续运行。
1:在冻结模式下禁止计时器和计数器,用于仿真调试。
【注意】TSFRZ不能停止脉冲累加。
TFFCA:定时器标志快速清除选择位。
0:定时器标志普通清除方式。
1:对于TFLGl($0E)中的各位,读输入捕捉寄存器或者写输出比较寄存器会自动清除相应的标志位CnF。
对于TFLG2($0F)中的各位,任何对TCNT寄存器($04、$05)的访问均会清除TOF 标志;任何对PACN3和PACN2寄存器($22,$23)的访问都会清除PAFLG寄存器($21)中的PAOVF和PAIF位。
任何对PACN1和PACN0寄存器($24,$25)的访问都会清除PBFLG寄存器($21)中的PBOVF位。
【说明】这种方式的好处是削减了另外清除标志位的软件开销。
此外,必须特别注意避免对标志位的意外清除。
2、计时器系统控制寄存器2(TSCR2)寄存器偏移量:$000DBit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0TOI 0 0 0 TCRE PR2 PR1 PR0可在任何时候读或写。
TOI:定时器/计时器溢出中断使能。
0:中断被禁止。
1:当TOF标志被置位时发出硬件中断请求。
【注意】TOF标志位在TFLG中TCRE:定时器/计数器复位使能。
该位在通道7成功输出比较之后允许时钟计数器复位。
该操作模式类似于递增型计数器。
0:计数器复位禁止,计数器自由计数。
1:通道7成功输出比较后计数器将被复位。
【说明】如果TC7=$0000并且TCRE=1,TCNT将继续保持$0000。
如果TC7=$FFFF并且TCRE=1,当TCNT从$FFFF到$0000之间被复位后TOF将永远不被置位。
PR2,PR1,PR0:计数器预分频选择。
这三位所决定的分频因子如下表所示。
分频因子选择P R 2 PR1PRPrescaleFactor0 0 0 10 0 1 20 1 0 40 1 1 81 0 0 161 0 1 321 1 0 641 1 1 128【说明】新设定的分频因子不会立即起作用,直到下一个触发沿到来那里所有预分频计数器值均为零。
3、控制寄存器(TCTLl-TCTL4)TCTLl-TCTL4分为两组,分别对IC和OC电路进行设定,每组16个二进制位,每两个二进制位管理一个通道。
其中TCTLl、TCTL2设定各个OC通道匹配时的动作,包括切断OC与输出引脚的联系,而TCTL3、TCTL4设定IC响应引脚的何种动作,包括禁止IC的响应。
TCTL1 寄存器偏移量:$0008Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0OM7 OL7 OM6 OL6 OM5 OL5 OM4 OL4TCTL2 寄存器偏移量:$0009Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0OM3 OL3 OM2 OL2 OM1 OL1 OM0 OL0可在任何时候读或写。
OMn、OLn 分别设定输出方式和输出电平,这8对控制位(OM7、OL7---OMO、OL0)编码后用于指定通道比较成功后的输出动作。
如果每对当中至少有一个为1,对应引脚就固定为相应通道的输出,而与DDRT中的对应位无关。
当二者同时为0时,OC与输出引脚断开。
输出比较动作设置OMn OLn 动作0 0 定时器与引脚断开0 1 OCn输出翻转1 0 OCn输出清零1 1 OCn输出置1TCTL3 寄存器偏移量:$000ABit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0EDG7 B EDG7AEDG6BEDG6AEDG5BEDG5AEDG4BEDG4ATCTL4 寄存器偏移量:$000BBit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0EDG3 B EDG3AEDG2BEDG2AEDG1BEDG1AEDG0BEDG0A可在任何时候读或写。
各个控制位的作用如下:EDGnB、EDGnA输入捕捉边沿控制位,这8对控制位(EDG7B、EDG7A—EDG0B、EDG0A)对输入捕捉的边沿检测电路进行设置。
当二者同时为0时,IC与输入引脚断开。
输入捕捉边沿检测电路设置EDGnBEDGnA 边沿检测电路设置0 0 禁止捕捉0 1 捕捉上升沿1 0 捕捉下降沿1 1 上升沿下降沿均捕捉【注意】为了使OMn、OLn指定的引脚动作有效,OC7M中的对应位必须清0。