¼ÓËÙÏÂÔØFLVÊÓÆµ ¼²·çÊÓÆµ

本文介绍了一款名为“暴风视屏”的软件,该软件能够有效提升Flash视频的加载速度,适用于那些经常遇到Flash视频加载缓慢问题的用户。文章还提到了一些以Flash技术为基础的视频网站。
ÄãÊDz»ÊǾ­³£¿´ÊÓÆµ¿Ä¿Ä°í°í?ÄãÊDz»ÊÇÔøÏëÏÂÔØÄ³¸öÊÓÆµÈ´·¢ÏÖûÓÐÒ»¸öÈí¼þÄÜ·½±ãÏÂÔØ? ¡°¼²·çÊÓÆµ¡±ÊÇĿǰΨһ¿ÉÒÔ¼ÓËÙºÍÏÂÔØËùÓÐFlashÊÓÆµ½ÚÄ¿µÄÈí¼þ¡£½ü¼¸Äê´óÁ¿³öÏÖÒÔFlash¼¼ÊõΪ»ù´¡µÄÊÓÆµÍøÕ¾£¬°üÀ¨¹ú ...
#include <reg52.h> //------------------------- Òý&frac12;Ŷ¨Òå --------------------------// sbit BEEP = P2^0; //·äÃùÆ÷¿ØÖÆÒý&frac12;Å£¬?µçÆ&frac12;ÓÐЧ sbit LED1 = P2^3; //LED1£¬¿ØÖÆÒý&frac12;Å£¬µÍµçÆ&frac12;ÓÐЧ sbit LED2 = P2^2; //LED2£¬¿ØÖÆÒý&frac12;Å£¬µÍµçÆ&frac12;ÓÐЧ sbit LED3 = P2^1; //LED3£¬¿ØÖÆÒý&frac12;Å£¬µÍµçÆ&frac12;ÓÐЧ //ÊýÂë¹ÜÒý&frac12;Ŷ¨Òå #define duanPore P0 //ÊýÂë¹Ü¶Î¿ØÖƶ˿ڣ¬¸ßµçÆ&frac12;ÓÐЧ sbit DIG1 = P2^4; //ÊýÂë¹ÜµÚ1λλѡ¿ØÖƶ˿ڣ¬µÍµçÆ&frac12;ÓÐЧ sbit DIG2 = P2^5; //ÊýÂë¹ÜµÚ2λλѡ¿ØÖƶ˿ڣ¬µÍµçÆ&frac12;ÓÐЧ sbit DIG3 = P2^6; //ÊýÂë¹ÜµÚ3λλѡ¿ØÖƶ˿ڣ¬µÍµçÆ&frac12;ÓÐЧ sbit DIG4 = P2^7; //ÊýÂë¹ÜµÚ4λλѡ¿ØÖƶ˿ڣ¬µÍµçÆ&frac12;ÓÐЧ //°´¼üÒý&frac12;Ŷ¨Òå sbit KEY1 = P1^0; //1ºÅÑ¡ÊÖ sbit KEY2 = P1^1; //2ºÅÑ¡ÊÖ sbit KEY3 = P1^2; //3ºÅÑ¡ÊÖ sbit KEY4 = P1^3; //4ºÅÑ¡ÊÖ sbit KEY5 = P1^4; //5ºÅÑ¡ÊÖ sbit KEY6 = P1^5; //6ºÅÑ¡ÊÖ sbit KEY7 = P3^2; //Ö÷³ÖÈ˼ü sbit KEY8 = P3^3; //ÉèÖüü //---------------------- È«¾Ö±äÁ¿¶¨Òå --------------------// //ÊýÂë¹Ü¶ÎÂë±í£¬ÊÊÓÃÓÚ¹&sup2;ÒõÊýÂë¹Ü unsigned char code tab_duan[19] = { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f, //0~9 0x77,0x7c,0x39,0x5e,0x79,0x71, //A~F 0x40,0x00,0x48 //'-'£¬¹Ø±ÕÏÔʾ£¬'=' }; unsigned char dat_buf[4] = {17, 17, 0, 5}; //ÏÔʾÊý¾Ý»º´æÇø£¬Ä¬ÈÏÉϵçÏÔʾ" 05" int time = 5, time1 = 5, time2 = 20; //µ¹¼ÆÊ±Ê±¼ä£¬time1£ºÇÀ´ðµ¹¼ÆÊ±Ê±¼ä£¬time2£º»Ø´ðµ¹¼ÆÊ±Ê±¼ä unsigned char i = 0; unsigned int count = 0; //¼ÆÊý»º´æ±äÁ¿ bit flag_lock = 1; //¼üÅÌËø¶¨±êÖ¾£¬1£º&sup2;»Ëø¶¨£¬0£ºËø¶¨ //------------------------------- º¯ÊýÉùÃ÷ ------------------------------------// void DelayMs(unsigned int ms); //ÑÓʱº¯Êý£¬µ¥Î»£ºms void dig_scan(unsigned char *dat); unsigned char KeyScan(void); //¶ÀÁ¢°´¼üɨÃè void InitTimer0(void); //¶¨Ê±Æ÷0³õʼ»¯ void alarm(void); //±¨¾¯º¯Êý void AnswerTask(void); //ÇÀ´ðÈÎÎñ void SetTime(void); //ÉèÖõ¹¼ÆÊ±Ê±¼ä /* Ö÷º¯Êý */ void main(void) { BEEP = 0; //ÉϵçĬÈϹرշäÃùÆ÷ LED1 = 1; InitTimer0(); //¶¨Ê±Æ÷0³õʼ»¯ time = time1; //ÉϵçĬÈÏÇÀ´ðµ¹¼ÆÊ± while(1) { if(KeyScan() == 7) //Èç¹ûÖ÷³ÖÈ˼ü°´Ï£¬Ôò&frac12;øÐÐÇÀ´ð { alarm(); //·äÃùÆ÷ÏìÒ»Éù AnswerTask(); //&frac12;øÐÐÇÀ´ðÈÎÎñ } if(KeyScan() == 8) //Èç¹ûÉèÖüü°´Ï£¬&frac12;øÈëÉèÖõ¹¼ÆÊ±Ê±¼ä { alarm(); //·äÃùÆ÷ÏìÒ»Éù SetTime(); //&frac12;øÈëÉè¼Æµ¹¼ÆÊ±Ê±¼ä } dat_buf[0] = 17; dat_buf[1] = 17; dat_buf[2] = time / 10; //È¡³öµ¹¼ÆÊ±µÄʮλÊý dat_buf[3] = time % 10; //È¡³öµ¹¼ÆÊ±µÄ¸öλÊý dig_scan(dat_buf); //&sup2;âÊÔÊýÂë¹ÜÏÔʾ } } /* ÑÓʱº¯Êý£¬µ¥Î»£ºms */ void DelayMs(unsigned int ms) { unsigned char a,b,c; while(--ms) { for(c=1;c>0;c--) for(b=142;b>0;b--) for(a=2;a>0;a--); } } /* ÊýÂë¹ÜÏÔʾɨÃè */ void dig_scan(unsigned char *dat) { /* ¶¯Ì¬É¨Ãè´¦Àí */ switch(i) { case 0: { duanPore = tab_duan[dat[0]]; //ÏÔʾµÚ1λÊýÂë¹ÜÄÚÈÝ DIG1 = 0; break; } case 1: { duanPore = tab_duan[dat[1]]; //ÏÔʾµÚ2λÊýÂë¹ÜÄÚÈÝ DIG2 = 0; //ѡͨµÚ2λÊýÂë¹Ü break; } case 2: { duanPore = tab_duan[dat[2]]; //ÏÔʾµÚ3λÊýÂë¹ÜÄÚÈÝ DIG3 = 0; //ѡͨµÚ3λÊýÂë¹Ü break; } case 3: { duanPore = tab_duan[dat[3]]; //ÏÔʾµÚ4λÊýÂë¹ÜÄÚÈÝ DIG4 = 0; //ѡͨµÚ4λÊýÂë¹Ü break; } default: break; } DelayMs(5); //ɨÃèÑÓʱ10ms£¬¸ù¾Ýʵ¼ÊÇé¿öÊʵ±Ð޸ĸÄÑÓʱʱ¼ä DIG1 = 1; //ÏûÒþ DIG2 = 1; DIG3 = 1; DIG4 = 1; ++i; //ɨÃè±äÁ¿Ñ­»· if(i > 3) i = 0; } /* ¶ÀÁ¢°´¼üɨÃè */ unsigned char KeyScan(void) { if(KEY1 == 0) //Èç¹û°´¼ü1°´Ï { DelayMs(10); //ÑÓʱ10msÈ¥³ý°´¼ü¶¶¶¯ if(KEY1 == 0) //ÔÙÈ·ÈÏÒ»´Î°´¼ü°´Ï£¬±íʾµ&frac12;Õâ°´¼üÒѾ­Îȶ¨ÁË return 1; //Êä³ö°´¼üÖµ1 } if(KEY2 == 0) //Èç¹û°´¼ü2°´Ï { DelayMs(10); //ÑÓʱ10msÈ¥³ý°´¼ü¶¶¶¯ if(KEY2 == 0) //ÔÙÈ·ÈÏÒ»´Î°´¼ü°´Ï£¬±íʾµ&frac12;Õâ°´¼üÒѾ­Îȶ¨ÁË return 2; //Êä³ö°´¼üÖµ2 } if(KEY3 == 0) //Èç¹û°´¼ü3°´Ï { DelayMs(10); //ÑÓʱ10msÈ¥³ý°´¼ü¶¶¶¯ if(KEY3 == 0) //ÔÙÈ·ÈÏÒ»´Î°´¼ü°´Ï£¬±íʾµ&frac12;Õâ°´¼üÒѾ­Îȶ¨ÁË return 3; //Êä³ö°´¼üÖµ3 } if(KEY4 == 0) //Èç¹û°´¼ü4°´Ï { DelayMs(10); //ÑÓʱ10msÈ¥³ý°´¼ü¶¶¶¯ if(KEY4 == 0) //ÔÙÈ·ÈÏÒ»´Î°´¼ü°´Ï£¬±íʾµ&frac12;Õâ°´¼üÒѾ­Îȶ¨ÁË return 4; //Êä³ö°´¼üÖµ4 } if(KEY5 == 0) //Èç¹û°´¼ü5°´Ï { DelayMs(10); //ÑÓʱ10msÈ¥³ý°´¼ü¶¶¶¯ if(KEY5 == 0) //ÔÙÈ·ÈÏÒ»´Î°´¼ü°´Ï£¬±íʾµ&frac12;Õâ°´¼üÒѾ­Îȶ¨ÁË return 5; //Êä³ö°´¼üÖµ5 } if(KEY6 == 0) //Èç¹û°´¼ü6°´Ï { DelayMs(10); //ÑÓʱ10msÈ¥³ý°´¼ü¶¶¶¯ if(KEY6 == 0) //ÔÙÈ·ÈÏÒ»´Î°´¼ü°´Ï£¬±íʾµ&frac12;Õâ°´¼üÒѾ­Îȶ¨ÁË return 6; //Êä³ö°´¼üÖµ6 } if(KEY7 == 0) //Èç¹û°´¼ü7°´Ï { DelayMs(10); //ÑÓʱ10msÈ¥³ý°´¼ü¶¶¶¯ if(KEY7 == 0) //ÔÙÈ·ÈÏÒ»´Î°´¼ü°´Ï£¬±íʾµ&frac12;Õâ°´¼üÒѾ­Îȶ¨ÁË return 7; //Êä³ö°´¼üÖµ7 } if(KEY8 == 0) //Èç¹û°´¼ü8°´Ï { DelayMs(10); //ÑÓʱ10msÈ¥³ý°´¼ü¶¶¶¯ if(KEY8 == 0) //ÔÙÈ·ÈÏÒ»´Î°´¼ü°´Ï£¬±íʾµ&frac12;Õâ°´¼üÒѾ­Îȶ¨ÁË return 8; //Êä³ö°´¼üÖµ8 } return 0; //ÎÞ°´¼ü°´ÏÂÊä³ö0 } /* ¶¨Ê±Æ÷0³õʼ»¯ */ void InitTimer0(void) { TMOD = 0x01; //ÅäÖö¨Ê±Æ÷0Ϊ¹¤×÷Ä£Ê&frac12;1£¬16λ¶¨Ê±Æ÷ TH0 = (65536 - 10000) / 256; //¶¨Ê±10ms TL0 = (65536 - 10000) % 256; EA = 1; //´ò¿ª×ÜÖÐ¶Ï ET0 = 1; //´ò¿ª¶¨Ê±Æ÷0ÖÐ¶Ï TR0 = 0; //ÉϵçĬÈϹرն¨Ê±Æ÷0 } /* ¶¨Ê±Æ÷0ÖжϷþÎñº¯Êý£¬10ms&frac12;øÒ»´ÎÖÐ¶Ï */ void Timer0Interrupt(void) interrupt 1 { TH0 = (65536 - 10000) / 256; //¶¨Ê±10ms£¬ÖØÐÂ×°ÔØ¼ÆÊýÖµ TL0 = (65536 - 10000) % 256; ++count; if(count > 100) //1sʱ¼ä¼ÆË㣺10ms * 100 = 1s { count = 0; //¼ÆÊýÖµÇåÁã --time; //µ¹¼ÆÊ±Ê±¼ä¼õÒ»´Î if(time <= 0) //Èç¹ûµ¹¼ÆÊ±&frac12;áÊø£¬Ôò¹Ø±Õ¶¨Ê±Æ÷0£¬Í£Ö¹µ¹¼ÆÊ±£¬&sup2;¢Éù¹â±¨¾¯ºÍËø¶¨¼üÅÌ { TR0 = 0; //¹Ø±Õ¶¨Ê±Æ÷0 BEEP = 1; //Éù¹â±¨¾¯ LED1 = 0; flag_lock = 0; //Ëø¶¨¼üÅÌ } } } /* ±¨¾¯º¯Êý */ void alarm(void) { BEEP = 1; //·äÃùÆ÷ÏìһϠDelayMs(300); //ÑÓʱ300ms BEEP = 0; } /* ʵÏÖÇÀ´ðÈÎÎñ */ void AnswerTask(void) { unsigned char key_val; //°´¼üÖµ»º´æ TR0 = 1; //Æô¶¯¶¨Ê±Æ÷0£¬¿ªÊ¼µ¹¼ÆÊ± while(1) { if(flag_lock == 1) { key_val = KeyScan(); //»ñÈ¡°´¼üÖµ switch(key_val) { case 1: { dat_buf[0] = key_val; //µÚ1λÊýÂë¹ÜÏÔʾ1ºÅ dat_buf[1] = 16; //ÏÔʾ'-' time = time2; //»Ø´ðµ¹¼ÆÊ±£¬Ñ¡Êֻشðʱ¼ä alarm(); //·äÃùÆ÷ÏìһϠflag_lock = 0; //Ëø¶¨¼üÅÌ break; } case 2: { dat_buf[0] = key_val; //µÚ2λÊýÂë¹ÜÏÔʾ2ºÅ dat_buf[1] = 16; //ÏÔʾ'-' time = time2; //»Ø´ðµ¹¼ÆÊ±£¬Ñ¡Êֻشðʱ¼ä alarm(); //·äÃùÆ÷ÏìһϠflag_lock = 0; break; } case 3: { dat_buf[0] = key_val; //µÚ3λÊýÂë¹ÜÏÔʾ3ºÅ dat_buf[1] = 16; //ÏÔʾ'-' time = time2; alarm(); //·äÃùÆ÷ÏìһϠflag_lock = 0; break; } case 4: { dat_buf[0] = key_val; //µÚ4λÊýÂë¹ÜÏÔʾ4ºÅ dat_buf[1] = 16; //ÏÔʾ'-' time = time2; alarm(); //·äÃùÆ÷ÏìһϠflag_lock = 0; break; } case 5: { dat_buf[0] = key_val; //µÚ5λÊýÂë¹ÜÏÔʾ5ºÅ dat_buf[1] = 16; //ÏÔʾ'-' time = time2; alarm(); //·äÃùÆ÷ÏìһϠflag_lock = 0; break; } case 6: { dat_buf[0] = key_val; //µÚ6λÊýÂë¹ÜÏÔʾ6ºÅ dat_buf[1] = 16; //ÏÔʾ'-' time = time2; alarm(); //·äÃùÆ÷ÏìһϠflag_lock = 0; break; } default: break; } } dat_buf[2] = time / 10; //È¡³öµ¹¼ÆÊ±µÄʮλÊý dat_buf[3] = time % 10; //È¡³öµ¹¼ÆÊ±µÄ¸öλÊý dig_scan(dat_buf); //ÊýÂë¹ÜÏÔʾÄÚÈÝ } } /* ÉèÖõ¹¼ÆÊ±Ê±¼ä */ void SetTime(void) { unsigned char mode = 0; //0£ºµ÷&frac12;ÚÇÀ´ðµ¹¼ÆÊ±£¬1£ºµ÷&frac12;ڻش𵹼ÆÊ±£¬2£ºÍ˳ö while(1) { if(KeyScan() == 8) //Èç¹ûÔٴΰ´ÏÂÉèÖüü£¬ÔòÍ˳öÉèÖù¦ÄÜ { alarm(); //·äÃùÆ÷ÏìÒ»Éù ++mode; if(mode >= 2) break; //Ìø³öµ±Ç°ËÀÑ­»· } if(KeyScan() == 7) //Èç¹û°´Ï¼Ӽü£¬&frac12;øÐе÷ʱ { alarm(); //·äÃùÆ÷ÏìÒ»Éù if(mode == 0) //µ÷&frac12;ÚÇÀ´ðµ¹¼ÆÊ± { ++time1; //µ¹¼ÆÊ±Ê±¼ä¼ÓÒ»´Î if(time1 > 30) //µ÷ʱ·¶Î§£º5s~30s time1 = 5; } if(mode == 1) //µ÷&frac12;ڻش𵹼ÆÊ± { ++time2; //µ¹¼ÆÊ±Ê±¼ä¼ÓÒ»´Î if(time2 > 30) //µ÷ʱ·¶Î§£º5s~30s time2 = 5; } } /* µ÷ʱÏÔʾ´¦Àí */ if(mode == 0) { dat_buf[0] = 16; //ÏÔʾ'-' dat_buf[1] = time1 / 10; //È¡³öµ¹¼ÆÊ±µÄʮλÊý dat_buf[2] = time1 % 10; //È¡³öµ¹¼ÆÊ±µÄ¸öλÊý dat_buf[3] = 16; //ÏÔʾ'-' } if(mode == 1) { dat_buf[0] = 18; //ÏÔʾ'=' dat_buf[1] = time2 / 10; //È¡³öµ¹¼ÆÊ±µÄʮλÊý dat_buf[2] = time2 % 10; //È¡³öµ¹¼ÆÊ±µÄ¸öλÊý dat_buf[3] = 18; //ÏÔʾ'=' } dig_scan(dat_buf); //ÊýÂë¹ÜÏÔʾÄÚÈÝ } time = time1; //»Øµ&frac12;Ö÷&frac12;çÃæÏÔʾÇÀ´ðµ¹¼ÆÊ± }写出一个这样的代码,主持人是1.0,时间调节是1.1,选手1.2-1.7,蜂鸣器是3.3,LED是3.4,数码管1234是2.0-2.3
09-19
#include "moto.h" #include "stm32f10x.h" void Motor_Forward(int speed) { GPIO_SetBits(GPIOB, GPIO_Pin_14); // AIN1 = 1 GPIO_ResetBits(GPIOB, GPIO_Pin_15); // AIN2 = 0 GPIO_SetBits(GPIOB, GPIO_Pin_12); // BIN1 = 1 GPIO_ResetBits(GPIOB, GPIO_Pin_13); // BIN2 = 0 TIM_SetCompare4(TIM3, speed); TIM_SetCompare3(TIM3, speed); } void Motor_Backward(int speed) { GPIO_SetBits(GPIOB, GPIO_Pin_14); // AIN1 = 1 GPIO_ResetBits(GPIOB, GPIO_Pin_15); // AIN2 = 0 GPIO_SetBits(GPIOB, GPIO_Pin_12); // BIN1 = 1 GPIO_ResetBits(GPIOB, GPIO_Pin_13); // BIN2 = 0 TIM_SetCompare4(TIM3, speed); TIM_SetCompare3(TIM3, speed); } void Motor_Stop(void) { GPIO_ResetBits(GPIOB, GPIO_Pin_14); GPIO_ResetBits(GPIOB, GPIO_Pin_15); GPIO_ResetBits(GPIOB, GPIO_Pin_12); GPIO_ResetBits(GPIOB, GPIO_Pin_13); TIM_SetCompare4(TIM3, 0); TIM_SetCompare3(TIM3, 0); } /************************************************************************** º¯Êý¹¦ÄÜ£ºµç»úµÄÕý·´×ª Èë¿Ú&sup2;ÎÊý£ºmode mode=0ʱΪÕýת mode=1ʱ·´×ª ·µ»Ø Öµ£ºÎÞ **************************************************************************/ extern float Velcity_Kp, Velcity_Ki, Velcity_Kd; //Ïà¹ØËÙ¶ÈPID&sup2;ÎÊý void moto(int mode) { if(mode==1) //·´×ª { GPIO_SetBits(GPIOB, GPIO_Pin_15); // ¸ßµçÆ&frac12; PB15 --- AIN2 1 GPIO_ResetBits(GPIOB, GPIO_Pin_14); // µÍµçÆ&frac12;} PB14 --- AIN1 0 GPIO_SetBits(GPIOB, GPIO_Pin_13); //¸ßµçÆ&frac12; PB13 --- BIN2 1 GPIO_ResetBits(GPIOB, GPIO_Pin_12); // µÍµçÆ&frac12; PB12 --- BIN1 0 } if(mode==0) //Õý´« { GPIO_SetBits(GPIOB, GPIO_Pin_14); // ¸ßµçÆ&frac12; PB14 --- AIN1 1 GPIO_ResetBits(GPIOB, GPIO_Pin_15); // µÍµçÆ&frac12;} PB15 --- AIN2 0 GPIO_ResetBits(GPIOB, GPIO_Pin_13); //¸ßµçÆ&frac12; PB13 --- BIN2 0 GPIO_SetBits(GPIOB, GPIO_Pin_12); // µÍµçÆ&frac12; PB12 --- BIN1 1 } } /*************************************************************************** º¯Êý¹¦ÄÜ£ºµç»úµÄ±Õ»·¿ØÖÆ Èë¿Ú&sup2;ÎÊý£º×óÓÒµç»úµÄ±àÂëÆ÷Öµ ·µ»ØÖµ £ºµç»úµÄPWM ***************************************************************************/ int Velocity_A(int TargetVelocity, int CurrentVelocity) { int Bias; //¶¨ÒåÏà¹Ø±äÁ¿ static int ControlVelocity, Last_bias; //¾&sup2;̬±äÁ¿£¬º¯Êýµ÷ÓÃ&frac12;áÊøºóÆäÖµÒÀÈ»´æÔÚ Bias=TargetVelocity-CurrentVelocity; //ÇóËÙ¶ÈÆ«&sup2;î ControlVelocity+=Velcity_Kp*(Bias-Last_bias)+Velcity_Ki*Bias; //ÔöÁ¿Ê&frac12;PI¿ØÖÆÆ÷ //Velcity_Kp*(Bias-Last_bias) ×÷ÓÃΪÏÞÖÆ¼ÓËÙ¶È //Velcity_Ki*Bias ËÙ¶È¿ØÖÆÖµÓÉBias&sup2;»¶Ï»ý·ÖµÃµ&frac12; Æ«&sup2;îÔ&frac12;´ó¼ÓËÙ¶ÈÔ&frac12;´ó if(ControlVelocity>7200)ControlVelocity=7200; if(ControlVelocity<-7200)ControlVelocity=-7200; Last_bias=Bias; return ControlVelocity; //·µ»ØËÙ¶È¿ØÖÆÖµ } int Velocity_B(int TargetVelocity, int CurrentVelocity) { int Bias; //¶¨ÒåÏà¹Ø±äÁ¿ static int ControlVelocity, Last_bias; //¾&sup2;̬±äÁ¿£¬º¯Êýµ÷ÓÃ&frac12;áÊøºóÆäÖµÒÀÈ»´æÔÚ Bias=TargetVelocity-CurrentVelocity; //ÇóËÙ¶ÈÆ«&sup2;î ControlVelocity+=Velcity_Kp*(Bias-Last_bias)+Velcity_Ki*Bias; //ÔöÁ¿Ê&frac12;PI¿ØÖÆÆ÷ //Velcity_Kp*(Bias-Last_bias) ×÷ÓÃΪÏÞÖÆ¼ÓËÙ¶È //Velcity_Ki*Bias ËÙ¶È¿ØÖÆÖµÓÉBias&sup2;»¶Ï»ý·ÖµÃµ&frac12; Æ«&sup2;îÔ&frac12;´ó¼ÓËÙ¶ÈÔ&frac12;´ó if(ControlVelocity>7200)ControlVelocity=7200; if(ControlVelocity<-7200)ControlVelocity=-7200; Last_bias=Bias; return ControlVelocity; //·µ»ØËÙ¶È¿ØÖÆÖµ }
08-01
#include "Headfile.h" #include "Time.h" void Timer1_Configuration(void) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_DeInit(TIM1); RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE); TIM_TimeBaseStructure.TIM_Period=5000; TIM_TimeBaseStructure.TIM_Prescaler= (72-1); TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1; TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; TIM_TimeBaseStructure.TIM_RepetitionCounter = 0; TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure); TIM_ClearFlag(TIM1, TIM_FLAG_Update); TIM_ITConfig(TIM1,TIM_IT_Update|TIM_IT_Trigger,ENABLE); TIM_Cmd(TIM1, ENABLE); } Sensor WP_Sensor; Sensor_Health Sensor_Flag; _Baro Baro_Show; Testime Time1_Delta; Testime T11; Testime T22; float ty=0; uint16_t High_Okay_flag=0; /*************************************************** º¯ÊýÃû: void TIM1_UP_IRQHandler(void) ˵Ã÷: ϵͳµ÷¶È¶¨Ê±Æ÷ Èë¿Ú: ÎÞ ³ö¿Ú: ÎÞ ±¸×¢: ºËÐÄ&sup2;¿·Ö£º´«¸ÐÆ÷&sup2;ɼ¯¡¢ÂË&sup2;¨¡¢ ×Ë̬&frac12;âËã¡¢¹ßÐÔµ¼º&frac12;¡¢¿ØÖƵȶ¼ÔÚÀïÃæ¸üРעÊÍÕߣºÎÞÃûС¸ç ****************************************************/ void TIM1_UP_IRQHandler(void)//5msË¢ÐÂÒ»´Î { if( TIM_GetITStatus(TIM1,TIM_IT_Update)!=RESET ) { Test_Period(&T11); Test_Period(&Time1_Delta);//ϵͳµ÷¶Èʱ¼ä&sup2;âÊÔÆ÷ NRF24L01_RC();//Ò£¿ØÆ÷&sup2;éѯ&frac12;ÓÊÕ£¬·ÇÖж˷&frac12;Ê&frac12; /*************¼ÓËٶȼơ¢ÍÓÂÝÒÇÊý×ÖÁ¿&sup2;ɼ¯***********/ GET_MPU_DATA();//1.4ms /*************´ÅÁ¦¼Æ+ÆøÑ¹¼Æ×´Ì¬»ú¸üÐÂ***********/ Compass_Tradeoff();//¾ö&sup2;ßʹÓÃÍâÖôÅÁ¦¼Æ£¬Ä¬ÈÏÄÚÖã¬Ê¹ÓÃÍâÖÃʱעÒâÖáÏò¡¢Ðýת¹ØÏµ SPL06_001_StateMachine(); /*************×Ë̬&frac12;âËã***********/ AHRSUpdate_GraDes_TimeSync(X_w_av,Y_w_av,Z_w_av,X_g_av,Y_g_av,Z_g_av); //DirectionConsineMatrix(DCM_Gyro,DCM_Acc,MagN);//DCM×Ë̬&frac12;âË㣬&sup2;ο¼APM Optflow_Statemachine();//¹âÁ÷״̬»ú£¬³õʼ»¯Ê±´æÔÚ¹âÁ÷ÍâÉè SINS_Prepare();//µÃµ&frac12;ÔØÌåÏà¶Ôµ¼º&frac12;ϵµÄÈýÖáÔ˶¯¼ÓËÙ¶È if(High_Okay_flag==1)//¸ß¶È¹ßµ¼ÈÚºÏ { /* Èô´æÔÚ³¬Éù&sup2;¨Ê±£¬ÓõڶþÖÖÈںϷ&frac12;Ê&frac12;£¬ ÒòΪµ±¹Û&sup2;â´«¸ÐÆ÷£¨ÆøÑ¹¼Æ¡¢³¬Éù&sup2;¨£©Çл»Ê±£¬Èý&frac12;×»¥&sup2;¹ÂË&sup2;¨µÄÖмä&sup2;ÎÊý ÐèÒªÈÚºÏÒ»¶Îʱ¼ä£¬&sup2;ÅÄÜÊÕÁ&sup2;£¬¶ø¿¨¶ûÂüÂË&sup2;¨¿ÉÒÔÖ±&frac12;ÓÇл» */ //Strapdown_INS_High();//1¡¢Èý&frac12;×»¥&sup2;¹ÂË&sup2;¨¹ßµ¼ÈÚºÏ Strapdown_INS_High_Kalman();//2¡¢¿¨¶ûÂüÂË&sup2;¨¹ßµ¼ÈÚºÏ } if(GPS_ISR_CNT>=300&&GPS_Update_finished==1)//GPS_PVTÓï¾ä¸üÐÂÍê±Ïºó£¬¿ªÊ¼&frac12;âÎö { GPS_PVT_Parse();//GPS´®¿ÚÊý¾ÝÖ¡&frac12;âÎö Set_GPS_Home();//ÉèÖÃHomeµã GPS_Update_finished=0; } if(GPS_Home_Set==1)//HomeµãÒÑÉèÖà { Filter_Horizontal();//Ë®Æ&frac12;·&frac12;Ïò¹ßµ¼ÈÚºÏ } Total_Control();//×Ü¿ØÖÆÆ÷£ºË®Æ&frac12;λÖÃ+Ë®Æ&frac12;ËÙ¶È+×Ë̬£¨&frac12;ǶÈ+&frac12;ÇËÙ¶È£©¿ØÖÆÆ÷£¬¸ß¶ÈλÖÃ+¸ß¶ÈËÙ¶È+¸ß¶È¼ÓËÙ¶È¿ØÖÆÆ÷ Control_Output();//¿ØÖÆÁ¿×ÜÊä³ö Temperature_Ctrl_Run(); Accel_Calibration_Check();//¼ÓËٶȱ궨¼ì&sup2;â Mag_Calibration_Check();//´ÅÁ¦¼Æ±ê¶¨¼ì&sup2;â ESC_Calibration_Check();//µçµ÷У׼¼ì&sup2;⣬&frac12;øÈëºóÐèÒª°Îµôµç³Øºó&frac12;øÈë Horizontal_Calibration_Check();//»ú¼ÜË®Æ&frac12;У׼¼ì&sup2;⣬ȷ±£»ú¼Ü·ÅÖÃÓÚË®Æ&frac12;µØÃæºóÔÙ&sup2;Ù×÷ Angle_Calculate();//¼ÓËٶȼÆÅ·À­&frac12;ǼÆË㣬µ±Ã»ÓÐת̨Æ&frac12;̨ʱ£¬¿ÉÒÔ×÷Ϊ×Ë̬&frac12;âËãµÄ¹Û&sup2;â&frac12;Ç¶È Bling_Working(Bling_Mode);//״ָ̬ʾµÆ Usb_Hid_Receive();//USBÐéÄâ´®¿Ú&sup2;éѯ&frac12;âÎö NCLink_SEND_StateMachine();//ÎÞÃû´´ÐµØÃæÕ¾·¢ËÍ״̬»ú /* DMA_Send_Vcan(NamelessQuad.Position[_YAW], NamelessQuad.Speed[_YAW], NamelessQuad.Acceleration[_YAW], WP_Sensor.baro_altitude, 0,Roll_Gyro, 0,0);//DMA´«Ê䣬ֻʹÓÃÉ&frac12;ÍâÉÏλ»ú */ Flight_Control_Fault_ALL();//·É¿Ø×´Ì¬Õï¶Ï Test_Period(&T22); ty=T22.Now_Time-T11.Now_Time; TIM_ClearITPendingBit(TIM1,TIM_IT_Update); } } 你看看我代码有问题吗,我的超声波模块相对对地距离一直是零HC_SR04_Distance一直是0,修改我的代码
07-20
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值