禁止输入小于0的数,最小为1

本文介绍了一个简单的JavaScript函数,用于防止用户在输入框中输入小于0的数值,并确保最小值为1。此验证适用于HTML页面中的文本输入框。
<html>

<head>

<title>禁止输入小于0的数,最小为1</title>

<script type="text/javascript">

function CheckInputInt(oInput) { 
   if ('' != oInput.value.replace(/\d/g,'')) 
   {
     oInput.value = oInput.value.replace(/\D/g,''); 
   }
   if(parseInt(oInput.value)<0.1){
      oInput.value="1";
   }

 }

</script>

</head>

<body>

禁止输入小于0的数<input  type="text" name="num" onkeyup="CheckInputInt(this);" onblur="CheckInputInt(this);" onafterpaste="CheckInputInt(this);" />

</body>

</html>

 

// Device: FT61F14X #include "SYSCFG.h" //Variable definition volatile char W_TMP @ 0x70 ;//系统占用不可以删除和修改 volatile char BSR_TMP @ 0x71 ;//系统占用不可以删除和修改 void interrupt ISR(void) { #asm;//系统设置不可以删除和修改 NOP;//系统设置不可以删除和修改 NOP;//系统设置不可以删除和修改 NOP;//系统设置不可以删除和修改 NOP;//系统设置不可以删除和修改 NOP;//系统设置不可以删除和修改 NOP;//系统设置不可以删除和修改 NOP;//系统设置不可以删除和修改 NOP;//系统设置不可以删除和修改 NOP;//系统设置不可以删除和修改 NOP;//系统设置不可以删除和修改 NOP;//系统设置不可以删除和修改 NOP;//系统设置不可以删除和修改 NOP;//系统设置不可以删除和修改 NOP;//系统设置不可以删除和修改 NOP;//系统设置不可以删除和修改 NOP;//系统设置不可以删除和修改 NOP;//系统设置不可以删除和修改 NOP;//系统设置不可以删除和修改 NOP;//系统设置不可以删除和修改 NOP;//系统设置不可以删除和修改 NOP;//系统设置不可以删除和修改 #endasm;//系统设置不可以删除和修改 //user_isr(); //调用用户中断函 } /*------------------------------------------------- * 函名:POWER_INITIAL * 功能: 上电系统初始化 * 输入: 无 * 输出: 无 --------------------------------------------------*/ void POWER_INITIAL(void) { OSCCON = 0B01110001; //16MHz 1:1 INTCON = 0; PORTA = 0B00000000; TRISA = 0B00000000; //PA输入输出 0-输出 1-输入 PA0输出 PORTB = 0B00000000; TRISB = 0B00000000; //PB输入输出 0-输出 1-输入 PORTC = 0B00000000; TRISC = 0B00000000; //PC输入输出 0-输出 1-输入 PC0输出 WPUA = 0B00000000; //PA端口上拉控制 1-开上拉 0-关上拉 WPUB = 0B00000000; //PB端口上拉控制 1-开上拉 0-关上拉 WPUC = 0B00000000; //PC端口上拉控制 1-开上拉 0-关上拉 WPDA = 0B00000000; //PA端口下拉控制 1-开下拉 0-关下拉 WPDB = 0B00000000; //PB端口下拉控制 1-开下拉 0-关下拉 WPDC = 0B00000000; //PC端口下拉控制 1-开下拉 0-关下拉 PSRC0 = 0B11111111; //PORTA 源电流设置最大 0:最小1:最大 PSRC1 = 0B11111111; //PORTB 源电流设置最大 0:最小1:最大 PSRC2 = 0B11111111; //PORTC 源电流设置最大 00:最小 11:最大 PSINK0 = 0B11111111; //PORTA灌电流设置最大 0:最小1:最大 PSINK1 = 0B11111111; //PORTB灌电流设置最大 0:最小1:最大 PSINK2 = 0B11111111; //PORTC灌电流设置最大 0:最小1:最大 ANSELA = 0B00000000; } /*------------------------------------------------- * 函名:Time1Initial * 功能: 时钟1初始化 * 输入: 无 * 输出: 无 --------------------------------------------------*/ void Time1Initial(void) { PCKEN |= 0B00000010; //使能timer1时钟模块 CKOCON = 0B00100000; TCKSRC = 0B00000011; //TIM1时钟为HIRC的2倍频 //Bit7:低频内振模式: 1 = 256K 振荡频率模式,0 = 32K 振荡频率模式 //Bit[6:4]:TIM2时钟源选择位 //值 时钟源 //0 系统时钟/主时钟 //1 HIRC //2 XT时钟/外部时钟 //3 HIRC的2倍频 //4 XT时钟/外部时钟的2倍频 //5 LIRC //6 LP时钟/外部时钟 //7 LP时钟/外部时钟的2位频 //Bit3: 保留位 //Bit[2:1]:TIM1时钟源选择位 //值 时钟源 //0 系统时钟/主时钟 //1 HIRC //2 XT时钟/外部时钟 //3 HIRC的2倍频 //4 XT时钟/外部时钟的2倍频 //5 LIRC //6 LP时钟/外部时钟 //7 LP时钟/外部时钟的2位频 TIM1CR1 =0B10000101; //预载允许,边沿对齐向上计器,计器使能 //Bit7:自动预装载允许位 //0: TIM1_ARR寄存器没有缓冲,它可以被直接写入; //1: TIM1_ARR寄存器由预装载缓冲器缓冲。 //Bit[6:5]:选择对齐模式 //00: 边沿对齐模式。计器依据方向位(DIR)向上或向下计。 //01: 中央对齐模式1。 //10: 中央对齐模式2。 //11: 中央对齐模式3。 //Bit4:方向 //0: 计器向上计。 //1: 计器向下计。 //Bit3:单脉冲模式 //0: 在发生更新事件时,计器不停止; //1: 在发生下一次更新事件(清除CEN位)时,计器停止。 //Bit2:更新请求源 //0: 如果UDIS允许产生更新事件,则下述任一事件产生一个更新中断: //寄存器被更新(计器上溢/下溢) //软件设置UG位 //时钟/触发控制器产生的更新 //1: 如果UDIS允许产生更新事件,则只有当下列事件发生时才产生更新中断,并UIF置1: //寄存器被更新(计器上溢/下溢) //Bit1:禁止更新 //0: 一旦下列事件发生,产生更新(UEV)事件: //计器溢出/下溢 //产生软件更新事件 //时钟/触发模式控制器产生的硬件复位被缓存的寄存器被装入它们的预装载值。 //1: 不产生更新事件,影子寄存器(ARR、PSC、CCRx)保持它们的值。 //若设置了UG位或时钟/触发控制器发出了一个硬件复位,则计器和预分频器被重新初始化. //Bit0:允许计器 //0: 禁止器; //1: 使能计器。 TIM1CR2 =0B00000000; //Bit7: TIM2计器使能选择位 //0: TIM2CR1中的CEN位由其本身控制 //1: TIM2CR1中的内部使用的CEN跟随TIM1CR1中的T1CEN位,而TIM2CR1寄存器中的T2CEN不会随T1CEN变化 //Bit[6:3]: 保留 //Bit2: 捕获/比较控制位的更新控制选择 //0: 当捕获/比较的控制位为预装载时(T1CCPC=1),只有在T1COMG位置1的时候这些控制位才被更新 ; //1: 当捕获/比较的控制位为预装载时(T1CCPC=1),只有在T1COMG位置1或触发事件到来时这些控制位才被更新; //注: 该位只对拥有互补输出的通道有效。 //Bit1: 保留。 //Bit0: 捕获/比较预装载控制位 //0: 1SMOD, T1GP, T1CCxE,T1CCxNE,T1CCxP,T1CCxNP位(TIM1CCERx寄存器)和T1OCxM位(TIM1CCMRx寄存器) //1: 1SMOD, T1GP, T1CCxE,T1CCxNE,T1CCxP,T1CCxNP和T1OCxM位是预装载的;设置该位后,它们只在设置了 //T1COMG位(TIM1EGR寄存器)后或触发事件发生时才被更新。 //注: 该位只对具有互补输出的通道起作用。 TIM1SMCR=0B00000000; //Bit7: 主/从模式 //0: 无作用; //1: 触发输入(TRGI)上的事件被延迟了,以允许定时器1与它的从定时器间的完美同步(通过TRGO)。 //Bit[6:4]: 触发选择,这3位选择用于选择同步计器的触发输入。 //000: 内部触发ITR0连接到TIM6 TRGO (此设计没有TIM6,所以固定接0) //001: 保留 //010: 内部触发ITR2连接到TIM5 TRGO(此设计没有TIM5,所以固定接0) //011: 保留 //100: TI1的边沿检测器(TI1F_ED) //101: 滤波后的定时器输入1(TI1FP1) //110: 滤波后的定时器输入2(TI2FP2) //111: 外部触发输入(ETRF) //注: 这些位只能在未用到(如SMS=000)时被改变,以避免在改变时产生错误的边沿检测。 //Bit3:保留 //Bit[2:0]: 时钟/触发/从模式选择,当选择了外部信号,触发信号(TRGI)的有效边沿与选中的外部输入极性相关 //000: 时钟/触发控制器禁止 – 如果CEN=1,则预分频器直接由内部时钟驱动。 //001: 编码器模式1 – 根据TI1FP1的电平,计器在TI2FP2的边沿向上/下计。 //010: 编码器模式2 – 根据TI2FP2的电平,计器在TI1FP1的边沿向上/下计。 //011: 编码器模式3 – 根据另一个输入的电平,计器在TI1FP1和TI2FP2的边沿向上/下计。 //100: 复位模式 – 在选中的触发输入(TRGI)的上升沿时重新初始化计器,并且产生一个更新寄存器的信号。 //101: 门控模式 – 当触发输入(TRGI)为高时,计器的时钟开启。一旦触发输入变为低,则计器停止(但不复位)。 //110: 触发模式 – 计器在触发输入TRGI的上升沿启动(但不复位),只有计器的启动是受控的。 //111: 外部时钟模式1 – 选中的触发输入(TRGI)的上升沿驱动计器。 //注:如果TI1F_ED被选为触发输入(TS=100)时,不要使用门控模式。这是因为TI1F_ED在每次 //TI1F变化时只是输出一个脉冲,然而门控模式是要检查触发输入的电平。 TIM1ETR =0B00000000; //Bit7: 外部触发极性,该位决定是ETR还是ETR 用于触发操作。 //0: ETR不反相,即高电平或上升沿有效; //1: ETR反相,即低电平或下降沿有效。 //Bit6: 外部时钟使能,该位用于使能外部时钟模式2。 //0: 禁止外部时钟模式2; //1: 使能外部时钟模式2,计器的时钟为ETRF的有效沿。 //注1: ECE位置1的效果与选择把TRGI连接到ETRF的外部时钟模式1相同(TIM1_SMCR寄存器中,SMS=111,TS=111)。 //注2: 外部时钟模式2可与下列模式同时使用: 触发标准模式;触发复位模式;触发门控模式。 //但是,此时TRGI决不能与ETRF相连(TIM1_SMCR寄存器中,TS不能111)。 //注3: 外部时钟模式1与外部时钟模式2同时使能,外部时钟输入为ETRF。 //Bit[5:4]: 外部触发预分频器,外部触发信号EPRP的频率最大不能超过fMASTER/4。可用预分频器来降低ETRP的频率, //当EPRP的频率很高时,它非常有用: //00: 预分频器关闭; //01: EPRP的频率/2; //02: EPRP的频率/4; //03: EPRP的频率/8 //Bit[3:0]: 外部触发滤波器选择,该位域定义了ETRP的采样频率及数字滤波器长度。 //数字滤波器由一个事件计器组成,它记录到N个事件后会产生一个输出的跳变: //0000: 无滤波器,以fMASTER采样 //1000: 采样频率fSAMPLING=fMASTER/8,N=6 //0001: 采样频率fSAMPLING=fMASTER,N=2 //1001: 采样频率fSAMPLING=fMASTER/8,N=8 //0010: 采样频率fSAMPLING=fMASTER,N=4 //1010: 采样频率fSAMPLING=fMASTER/16,N=5 //0011: 采样频率fSAMPLING=fMASTER,N=8 //1011: 采样频率fSAMPLING=fMASTER/16,N=6 //0100: 采样频率fSAMPLING=fMASTER/2,N=6 //1100: 采样频率fSAMPLING=fMASTER/16,N=8 //0101: 采样频率fSAMPLING=fMASTER/2,N=8 //1101: 采样频率fSAMPLING=fMASTER/32,N=5 //0110: 采样频率fSAMPLING=fMASTER/4,N=6 //1110: 采样频率fSAMPLING=fMASTER/32,N=6 //0111: 采样频率fSAMPLING=fMASTER/4,N=8 //1111: 采样频率fSAMPLING=fMASTER/32,N=8 TIM1IER =0B00000000;//禁止所有中断 //Bit7: 允许刹车中断 //0: 禁止刹车中断; //1: 允许刹车中断。 //Bit6: 触发中断使能 //0: 禁止触发中断; //1: 使能触发中断。 //Bit5: 允许COM中断 //0: 禁止COM中断; //1: 允许COM中断。 //Bit4: 允许捕获/比较4中断 //0: 禁止捕获/比较4中断; //1: 允许捕获/比较4中断。 //Bit3: 允许捕获/比较3中断 //0: 禁止捕获/比较3中断; //1: 允许捕获/比较3中断。 //Bit2: 允许捕获/比较2中断 //0: 禁止捕获/比较2中断; //1: 允许捕获/比较2中断。 //Bit1: 允许捕获/比较1中断 //0: 禁止捕获/比较1中断; //1: 允许捕获/比较1中断。 //Bit0: 允许更新中断 //0: 禁止更新中断; //1: 允许更新中断。 TIM1SR1 =0B00000000; //Bit7: 刹车中断标记,一旦刹车输入有效,由硬件对该位置1。 // 如果刹车输入无效,则该位可由软件清0。 //0: 无刹车事件产生; //1: 刹车输入上检测到有效电平 //Bit6: 触发器中断标记,当发生触发事件(当从模式控制器处于除门控模式外的其它模式时, //在TRGI输入端检测到有效边沿,或门控模式下的任一边沿)时由硬件对该位置1。 //它由软件清0。 //0: 无触发器事件产生; //1: 触发中断等待响应。 //Bit5: COM中断标记,一旦产生COM事件(当捕获/比较控制位: CciE、CciNE、OciM已被更新)该位由硬件置1。它由软件清0 。 //0: 无COM事件产生; //1: COM中断等待响应。 //Bit4: 捕获/比较4中断标记 //参考CC1IF描述。 //Bit3: 捕获/比较3中断标记 //参考CC1IF描述。 //Bit2: 捕获/比较2中断标记 //参考CC1IF描述。 //Bit1: 捕获/比较1中断标记 如果通道CC1配置为输出模式: 当计器值与比较值匹配时该位由硬件置1, //但在中心对称模式下除外(参考TIM1_CR1寄存器的CMS位)。它由软件清0。 //0: 无匹配发生; //1: TIMx_CNT的值与TIMx_CCR1的值匹配。 //注: 在中心对称模式下,当计器值为0时,向上计,当计器值为ARR时,向下计(它从0向上计到ARR-1,再由ARR向下计1)。 //因此,对所有的SMS位值,这两个值都不置标记。但是,如果CCR1>ARR,则当CNT达到ARR值时,CC1IF置1。 //如果通道CC1配置为输入模式: 当捕获事件发生时该位由硬件置1,它由软件清0或通过读TIM1_CCR1L清0。 //0: 无输入捕获产生; //1: 计器值已被捕获(拷贝)至TIM1_CCR1(在IC1上检测到与所选极性相同的边沿)。 //Bit0: 更新中断标记,当产生更新事件时该位由硬件置1。它由软件清0。 //0: 无更新事件产生; //1: 更新事件等待响应。当寄存器被更新时该位由硬件置1: //若TIM1_CR1寄存器的UDIS=0,当计器上溢或下溢时; //若TIM1_CR1寄存器的UDIS=0、URS=0,当设置TIM1_EGR寄存器的UG位软件对计器 //CNT重新初始化时; //若TIM1_CR1寄存器的UDIS=0、URS=0,当计器CNT被触发事件重新初始化时 //(参考0从模式控制寄存器TIM1_SMCR)。 TIM1SR2 =0B00000000; TIM1EGR =0B00000000; //Bit7: 产生刹车事件,该位由软件置1,用于产生一个刹车事件,由硬件自动清0。 //0: 无动作; //1: 产生一个刹车事件。此时MOE=0、BIF=1,若开启对应的中断(BIE=1),则产生相应的中断。 //Bit6: 产生触发事件,该位由软件置1,用于产生一个触发事件,由硬件自动清0。 //0: 无动作; //1: TIM1_SR寄存器的TIF=1,若开启对应的中断(TIE=1),则产生相应的中断。 //Bit5: 捕获/比较事件,产生控制更新该位由软件置1,由硬件自动清0。 //0: 无动作; //1: 当CCPC=1,允许更新CCIE、CCINE、CciP,CciNP,OCIM位。 //注: 该位只对拥有互补输出的通道有效。 //Bit4: 产生捕获/比较4事件 //参考CC1G描述。 //Bit3: 产生捕获/比较3事件 //参考CC1G描述。 //Bit2: 产生捕获/比较2事件 //参考CC1G描述。 //Bit1: 产生捕获/比较1事件 //该位由软件置1,用于产生一个捕获/比较事件,由硬件自动清0。 //0: 无动作; //1: 在通道CC1上产生一个捕获/比较事件: 若通道CC1配置为输出: //设置CC1IF=1,若开启对应的中断,则产生相应的中断。若通道CC1配置为输入: //当前的计器值被捕获至TIM1_CCR1寄存器,设置CC1IF=1,若开启对应的中断,则产生相应的中断。若CC1IF已经为1,则设置CC1OF=1。 //Bit0: 产生更新事件 //该位由软件置1,由硬件自动清0。 //0: 无动作; //1: 重新初始化计器,并产生一个更新事件。注意预分频器的计器也被清0(但是预分频系不变)。 //若在中心对称模式下或DIR=0(向上计)则计器被清0;若DIR=1(向下计)则计器取TIM1_ARR的值。 TIM1CCMR1 =0B01101000;//CC1通道被配置为输出 //Bit7: 输出比较1清零使能 //该位用于使能使用TIM1_TRIG引脚上的外部事件来清通道1的输出信号(OC1REF),参考17.5.9在外部事件发生时清除OCREF信号 //0: OC1REF 不受ETRF输入(来自TIM1_TRIG引脚)的影响; //1: 一旦检测到ETRF输入高电平,OC1REF=0。 //Bit[6:4]: 输出比较1模式,该3位定义了输出参考信号OC1REF的动作,而OC1REF决定了OC1的值。OC1REF是高电平有效,而OC1的有效电平取决于CC1P位。 //000: 冻结。输出比较寄存器TIM1_CCR1与计器TIM1_CNT间的比较对OC1REF不起作用; //001: 匹配时设置通道1的输出为有效电平。当计器TIM1_CNT的值与捕获/比较寄存器1(TIM1_CCR1)相同时,强制OC1REF为高。 //010: 匹配时设置通道1的输出为无效电平。当计器TIM1_CNT的值与捕获/比较寄存器1(TIM1_CCR1)相同时,强制OC1REF为低。 //011: 翻转。当TIM1_CCR1=TIM1_CNT时,翻转OC1REF的电平。 //100: 强制为无效电平。强制OC1REF为低。 //101: 强制为有效电平。强制OC1REF为高。 //110: PWM模式1- 在向上计时,一旦TIM1_CNT<TIM1_CCR1时通道1为有效电平,否则为无效电平; //在向下计时,一旦TIM1_CNT>TIM1_CCR1时通道1为无效电平(OC1REF=0), 否则为有效电平(OC1REF=1)。 //111: PWM模式2- 在向上计时,一旦TIM1_CNT<TIM1_CCR1时通道1为无效电平,否则为有效电平; //在向下计时,一旦TIM1_CNT>TIM1_CCR1时通道1为有效电平,否则为无效电平。 //注1: 一旦LOCK级别设为3(TIM1_BKR寄存器中的LOCK位)并且CC1S=00(该通道配置成输出) 则该位不能被修改。 //注2: 在PWM模式1或PWM模式2中,只有当比较结果改变了或在输出比较模式中从冻结模式切换到PWM模式时,OC1REF电平才改变。 //注3: 在有互补输出的通道上,这些位是预装载的。如果TIM1_CR2寄存器的CCPC=1,OCM 位只有在COM事件发生时,才从预装载位取新值。 //Bit3: 输出比较1预装载使能 //0: 禁止TIM1_CCR1寄存器的预装载功能,可随时写入TIM1_CCR1寄存器,并且新写入的值立即起作用。 //1: 开启TIM1_CCR1寄存器的预装载功能,读写操作仅对预装载寄存器操作,TIM1_CCR1的预装载值在更新事件到来时被加载至当前寄存器中。 //注1: 一旦LOCK级别设为3(TIM1_BKR寄存器中的LOCK位)并且CC1S=00(该通道配置成输出) 则该位不能被修改。 //注2: 为了操作正确,在PWM模式下必须使能预装载功能。但在单脉冲模式下(TIM1_CR1寄存器的OPM=1),它不是必须的。 //Bit2: 输出比较1 快速使能,该位用于加快CC输出对触发输入事件的响应。 //0: 根据计器与CCR1的值,CC1正常操作,即使触发器是打开的。当触发器的输入有一个有效沿时,激活CC1输出的最小延时为5个时钟周期。 //1: 输入到触发器的有效沿的作用就象发生了一次比较匹配。因此,OC被设置为比较电平而与比较结果无关。 //采样触发器的有效沿和CC1输出间的延时被缩短为3个时钟周期。 //OCFE只在通道被配置成PWM1或PWM2模式时起作用。 //Bit[1:0]: 捕获/比较1 选择。这2位定义通道的方向(输入/输出),及输入脚的选择: //00: CC1通道被配置为输出; //01: CC1通道被配置为输入,IC1映射在TI1FP1上; //10: CC1通道被配置为输入,IC1映射在TI2FP1上; //11: CC1通道被配置为输入,IC1映射在TRC上。此模式仅工作在内部触发器输入被选中 //(由TIM1_SMCR寄存器的TS位选择)。 //注: CC1S仅在通道关闭时(TIM1_CCER1寄存器的CC1E=0)才是可写的。 TIM1CCMR2 =0B00000000; TIM1CCMR3 =0B00000000; TIM1CCMR4 =0B00000000; TIM1CCER1 =0B00001111; //比较1互补输出使能,低电平有效;比较器1输出使能,低电平有效 //Bit7: 输入捕获/比较2互补输出极性。参考CC1NP的描述。 //Bit6: 输入捕获/比较2互补输出使能。参考CC1NE的描述。 //Bit5: 输入捕获/比较2输出极性。参考CC1P的描述。 //Bit4: 输入捕获/比较2输出使能。参考CC1E的描述。 //Bit3: 输入捕获/比较1互补输出极性 //0: OC1N高电平有效; //1: OC1N低电平有效。 //注1: 一旦LOCK级别(TIM1_BKR寄存器中的LCCK位)设为3或2且CC1S=00(通道配置为输出) 则该位不能被修改。 //注2: 对于有互补输出的通道,该位是预装载的。如果CCPC=1(TIM1_CR2寄存器),只有在 //COM事件发生时,CC1NP位才从预装载位中取新值。 //Bit2: 输入捕获/比较1互补输出使能 //0: 关闭- OC1N禁止输出,因此OC1N的输出电平依赖于MOE、OSSI、OSSR、OIS1、 //OIS1N和CC1E位的值。 //1: 开启- OC1N信号输出到对应的输出引脚,其输出电平依赖于MOE、OSSI、OSSR、 //OIS1、OIS1N和CC1E位的值。 //注: 对于有互补输出的通道,该位是预装载的。如果CCPC=1(TIM1_CR2寄存器),只有在 //COM事件发生时,CC1NE位才从预装载位中取新值。 //Bit1: 输入捕获/比较1输出极性CC1通道配置为输出: //0: OC1高电平有效; //1: OC1低电平有效。 //CC1通道配置为触发(参考图61): //0: 触发发生在TI1F的高电平或上升沿; //1: 触发发生在TI1F的低电平或下降沿。 //CC1通道配置为输入(参考图61): //0: 捕捉发生在TI1F的高电平或上升沿; //1: 捕捉发生在TI1F的低电平或下降沿。 //注1: 一旦LOCK级别(TIM1_BKR寄存器中的LCCK位)设为3或2,则该位不能被修改。 //注2: 对于有互补输出的通道,该位是预装载的。如果CCPC=1(TIM1_CR2寄存器),只有在 //COM事件发生时,CC1P位才从预装载位中取新值。 //Bit0: 输入捕获/比较1输出使能 //CC1通道配置为输出: //0: 关闭- OC1禁止输出,因此OC1的输出电平依赖于MOE、OSSI、OSSR、OIS1、 //OIS1N和CC1NE位的值。 //1: 开启- OC1信号输出到对应的输出引脚,其输出电平依赖于MOE、OSSI、OSSR、 //OIS1、OIS1N和CC1NE位的值。 //该位决定了计器的值是否能捕获入TIM1_CCR1寄存器。 //0: 捕获禁止; //0: 捕获使能。 //注: 对于有互补输出的通道,该位是预装载的。如果CCPC=1(TIM1_CR2寄存器),只有在 //COM事件发生时,CC1E位才从预装载位中取新值。 TIM1CCER2 =0B00000000; TIM1CNTRH =0B00000000; //TIM1器 TIM1CNTRL =0B00000000; TIM1PSCRH =0B00000000; TIM1PSCRL =0B00000000; TIM1ARRH =0x03; //自动重载,周期 TIM1ARRL =0xe8; TIM1RCR =0B00001111; //重复计器的值 TIM1CCR1H =0x01; //PWM脉宽 TIM1CCR1L =0xf4; TIM1BKR =0B11000000; //输出使能,禁止刹车 TIM1DTR =0B00000111; //死区发生器 //Bit[7:0]: 死区发生器设置,这些位定义了插入互补输出之间的死区持续时间。假设DT表示其持续时间,tCK_PSC为TIM1的时钟脉冲: //DTG[7:5]=0xx => DT=DTG[7:0]x tdtg,其中: tdtg=tCK_PSC. (f1) //DTG[7:5]=10x => DT=(64+DTG[5:0])x tdtg,其中:tdtg= tCK_PSC. (f2) //DTG[7:5]=110 => DT=(32+DTG[4:0])x tdtg, 其中:tdtg=8x tCK_PSC. (f3) //DTG[7:5]=111 => DT=(32+DTG[4:0])x tdtg, 其中:tdtg=16x tCK_PSC. (f4) TIM1OISR =0B00000000; //空闲输出状态设置 //Bit1:输出空闲状态1(OC1N输出)。 //0:当MOE=0时,则在一个死区时间后,OC1N=0; //1:当MOE=0时,则在一个死区时间后,OC1N=1。 //注:已经设置了LOCK(TIM1_BKR寄存器)级别1、2或3后,该位不能被修改。 //Bit0:输出空闲状态1(OC1输出)。 //0:当MOE=0时,如果OC1N使能,则在一个死区后,OC1=0; //1:当MOE=0时,如果OC1N使能,则在一个死区后,OC1=1。 //注:已经设置了LOCK(TIM1_BKR寄存器)级别1、2或3后,该位不能被修改。 LEBCON =0B00000000; //前沿消隐禁止 //Bit7 前沿消隐使能位(仅当ADGO=0时可进行切换,否则ADC工作异常) //1 = 使能 //0 = 禁止 //Bit[6:5]: 前沿消隐通道选择 //00 = TIM1_CH1 //01 = TIM1_CH2 //10 = TIM1_CH3 //11 = TIM1_CH4 //Bit4: N/A 保留位,读0 //Bit3: PWM消隐沿选择 //0 = PWM上升沿 //1 = PWM下降沿 //Bit[2:0]:TIM1的故障源使能,高有效 //BKS2:选择ADC阈值比较 //BKS1:选择LVD检测 //BKS0:选择BKIN管脚 } /*------------------------------------------------- * 函名:main * 功能: 主函 * 输入: 无 * 输出: 无 --------------------------------------------------*/ void main(void) { POWER_INITIAL(); Time1Initial(); //初始化timer1 while(1) { NOP(); } } 详细解释代码
08-04
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值