软件测试 边界值分析法,Ïê½âºÚºÐ²âÊÔÖеı߽çÖµ·ÖÎö·¨¼°±ß½çÖµ·ÖÎö·¨²âÊÔÓÃÀý...

˵ÆðºÚºÐ²âÊÔ£¬Ïë±Ø´ó¼Ò¶ÔÓںںвâÊԵļ¸´ó²âÊÔ·½·¨Ò²ÊǶúÊìÄÜÏ꣬½ñÌìÎÒÃÇÖ÷ÒªÁÄÒ»Áı߽çÖµ·ÖÎö·¨¡£Í¨³£±ß½çÖµ·ÖÎö·¨ÕâÖֺںвâÊÔ·½·¨ÊÇ×÷Ϊ¶ÔͬΪºÚºÐ²âÊԵĵȼÛÀà»®·Ö·¨µÄ²¹³ä£¬ÕâÖÖÇé¿öÏ£¬±ß½çÖµ·ÖÎö·¨µÄ²âÊÔÓÃÀýÊäÈë»òÊä³öµÄ±ß½çÖµÒ²ºÜ´ó³Ì¶ÈÀ´×ԵȼÛÀàµÄ±ß½ç¡£

µ«ÊDZ߽çÖµ·ÖÎö·¨ÓëµÈ¼ÛÀà»®·Ö·¨»¹ÊÇ´æÔںܴó²»Í¬µÄ£¬¶þÕßµÄÖ÷ÒªÇø±ðÔÚÓÚ£º

1£©±ß½çÖµ·ÖÎöʹÓÃÓëµÈ¼ÛÀà»®·Ö·¨ÏàͬµÄ»®·Ö£¬Ö»ÊDZ߽çÖµ·ÖÎö·¨Ô¤Ïȼٶ¨´íÎ󣬸ü¶à´æÔÚÓÚ»®·ÖµÄ±ß½çÉÏ£¬Éè¼Æ²âÊÔÓÃÀýÖ÷ҪΧÈÆÔÚÔڵȼÛÀàµÄ±ß½çÉÏÒÔ¼°Á½²àµÄÇé¿ö½øÐУ»

2£©±ß½çÖµ·ÖÎö²»ÊÇ´ÓijµÈ¼ÛÀàÖÐËæ±ãÌôÒ»¸ö×÷Ϊ´ú±í£¬¶øÊÇʹÕâ¸öµÈ¼ÛÀàµÄÿ¸ö±ß½ç¶¼Òª×÷Ϊ²âÊÔÌõ¼þ¡£

3£©±ß½çÖµ²»½ö¿¼ÂÇÊäÈëÌõ¼þ£¬»¹Òª¿¼ÂÇÊä³ö¿Õ¼ä²úÉúµÄ²âÊÔÇé¿ö¡£

¹ØÓڱ߽çµã£¬¾ßÌå¿ÉÒÔ·ÖΪÉϵ㡢ÄÚµãºÍÀëµã£»

Éϵ㣺±ß½çÉϵĵ㣬±ÕÄÚ¿ªÍ⣨±ÕÖ¸ÓòµÄ±ß½çÊÇ·â±ÕµÄ£¬¼´±ÕÇø¼ä£»¿ªÖ¸ÓòµÄ±ß½çÊÇ¿ª·ÅµÄ£¬¼´¿ªÇø¼ä£©¡£

Àëµã£ºÀëÉϵã×î½üµÄµã³ÆΪÀëµã¡£¿ªÄÚ±ÕÍâ¡£

Äڵ㣺Óò·¶Î§ÄÚµÄÈÎÒâÒ»µã¡£

ÄÇô±ß½çÖµ·ÖÎö·¨Éè¼Æ²âÊÔÓÃÀýÒªÔõô¿ªÕ¹£¿´ó¼Ò¿ÉÒÔʹ²âÊÔÓÃALMÈí¼þÑз¢ÉúÃüÖÜÆÚ¹ÜÀí¹¤¾ß£¬½øÐлùÓÚ¹æÔòµÄÕý½»½øÐвâÊÔÓÃÀýµÄÉè¼Æ£¬°ÑËùÓпÉÄÜÇé¿öÂÞÁгöÀ´£¬Ö®ºóÔÚ½øÐб߽çµÄУÑé¡£

84f8ee3033ebe661b19c58a4a82a177d.png

ÎÞÊýµÄ²âÊÔʵ¼ù±íÃ÷£¬´óÁ¿µÄ¹ÊÕÏÍùÍù·¢ÉúÔÚÊäÈ붨ÒåÓò»òÊä³öÖµÓòµÄ±ß½çÉÏ£¬¶ø²»ÊÇÔÚÆäÄÚ²¿¡£Òò´Ë£¬Ó¦ÓúںвâÊÔÖеı߽çÖµ·ÖÎö·¨Çé¿öÉè¼Æ²âÊÔÓÃÀý£¬Í¨³£»áÈ¡µÃºÜºÃµÄ²âÊÔЧ¹û¡£

解释一下这段代码过程void CMP_ISR(void) interrupt 21 { u8 i; CMPCR1 &= ~0x40; // ÐèÈí¼þÇå³ýÖжϱê־λ if(XiaoCiCnt == 0) //Ïû´Åºó²Å¼ì²â¹ý0ʼþ, XiaoCiCnt=1:ÐèÒªÏû´Å, =2:ÕýÔÚÏû´Å, =0ÒѾ­Ïû´Å { T4T3M &= ~(1<<3); // Timer3Í£Ö¹ÔËÐÐ P27 = 0; if(B_Timer3_OverFlow) //Çл»Ê±¼ä¼ä¸ô(Timer3)ÓÐÒç³ö { B_Timer3_OverFlow = 0; PhaseTime = 8000; //»»Ïàʱ¼ä×î´ó8ms, 2212µç»ú12V¿Õת×î¸ßËÙ130usÇл»Ò»Ïà(200RPS 12000RPM), 480mA } else { i=T3H; PhaseTime = (((u16)i << 8) + T3L) >> 1; //µ¥Î»Îª1us if(PhaseTime >= 8000) PhaseTime = 8000; //»»Ïàʱ¼ä×î´ó8ms, 2212µç»ú12V¿Õת×î¸ßËÙ130usÇл»Ò»Ïà(200RPS 12000RPM), 480mA } T3H = 0; T3L = 0; T4T3M |= (1<<3); //Timer3¿ªÊ¼ÔËÐÐ PhaseTimeTmp[TimeIndex] = PhaseTime; //±£´æÒ»´Î»»Ïàʱ¼ä if(++TimeIndex >= 16) TimeIndex = 0; //ÀÛ¼Ó8´Î for(PhaseTime=0, i=0; i<16; i++) PhaseTime += PhaseTimeTmp[i]; //Çó16´Î»»Ïàʱ¼äÀÛ¼ÓºÍ PhaseTime = PhaseTime >> 5; //Çó16´Î»»Ïàʱ¼äµÄƽ¾ùÖµµÄÒ»°ë, ¼´30¶Èµç½Ç¶È if((PhaseTime >= 40) && (PhaseTime <= 1000)) TimeOut = 150; //¶Âת600ms³¬Ê± if( PhaseTime >= 60) PhaseTime -= 40; //ÐÞÕýÓÉÓÚÂ˲¨µçÈÝÒýÆðµÄÖͺóʱ¼ä else PhaseTime = 20; // PhaseTime = 20; //Ö»¸ø20us, ÔòÎÞÖͺóÐÞÕý, ÓÃÓÚ¼ì²âÂ˲¨µçÈÝÒýÆðµÄÖͺóʱ¼ä T4T3M &= ~(1<<7); //Timer4Í£Ö¹ÔËÐÐ PhaseTime = PhaseTime << 1; //2¸ö¼ÆÊý1us PhaseTime = 0 - PhaseTime; T4H = (u8)(PhaseTime >> 8); //×°ÔØ30¶È½ÇÑÓʱ T4L = (u8)PhaseTime; T4T3M |= (1<<7); //Timer4¿ªÊ¼ÔËÐÐ XiaoCiCnt = 1; //1:ÐèÒªÏû´Å, 2:ÕýÔÚÏû´Å, 0ÒѾ­Ïû´Å P27 = 1; } }
07-08
int main(void) { const unsigned char *point; u16 i=0; delay_init(); //ÑÓʱº¯Êý³õʼ»¯ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//ÉèÖÃÖжÏÓÅÏȼ¶·Ö×éΪ×é2£º2λÇÀÕ¼ÓÅÏȼ¶£¬2λÏìÓ¦ÓÅÏȼ¶ // uart_init(115200); //´®¿Ú³õʼ»¯Îª115200 LED_Init(); //³õʼ»¯ÓëLEDÁ¬½ÓµÄÓ²¼þ½Ó¿Ú // KEY_Init(); //°´¼ü³õʼ»¯ AT24CXX_Init(); //IIC³õʼ»¯ OLED_init(); point= &picture_tab[0]; TIM_OCInitTypeDef TIM_OCInitStructure; delay_init(); //ÑÓʱº¯Êý³õʼ»¯ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //ÉèÖÃNVICÖжϷÖ×é2:2λÇÀÕ¼ÓÅÏȼ¶£¬2λÏìÓ¦ÓÅÏȼ¶ uart_init(115200); //´®¿Ú³õʼ»¯Îª115200 LED_Init(); //LED¶Ë¿Ú³õʼ»¯ TIM3_Int_Init(4999,7199);//10KhzµÄ¼ÆÊýƵÂÊ£¬¼ÆÊýµ½5000Ϊ500ms TIM4_PWM_Init(10000-1,72-1); //72M/72=1MHz¼ÆÊýƵÂÊ,ÖØ×°ÔØÖµ while(1) { OLED_ShowString(0,30,"21221054",16); OLED_ShowString(0,15,"2023/5/18",16); OLED_ShowChinese(0,0,0,16,1); OLED_ShowChinese(16,0,1,16,1); OLED_ShowChinese(32,0,2,16,1); delay_ms(1000); OLED_Refresh_Gram(); //¸üÐÂÏÔʾµ½OLED if(++i > 3) { LED1=!LED1;//ÌáʾϵͳÕýÔÚÔËÐÐ i=0; } while(1) { u16 u16tmp; u16tmp += 500; if(u16tmp > 10000) u16tmp=0; //³õʼ»¯TIM4 Channe3 PWMģʽ TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; //Ñ¡Ôñ¶¨Ê±Æ÷ģʽ:TIMÂö³å¿í¶Èµ÷ÖÆģʽ2 TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //±È½ÏÊä³öʹÄÜ TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low; //Êä³ö¼«ÐÔ:TIMÊä³ö±È½Ï¼«ÐÔ¸ß TIM_OCInitStructure.TIM_Pulse = u16tmp; TIM_OC3Init(TIM4, &TIM_OCInitStructure); //¸ù¾ÝTÖ¸¶¨µÄ²ÎÊý³õʼ»¯ÍâÉèTIM4 OC3 LED2=!LED2; //LED3=!LED3; delay_ms(300); } } }这段代码问题如下:declaration may not appear after executable statement inblock,TIM OCINITTYPEDEF TIM OCINITSTRUCTURE,请修改这个问题
06-09
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值