![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
割り込みテスト用
Dependencies: HCSR04_2 MPU6050_2 mbed SDFileSystem3
Fork of Autoflight2018_27 by
Diff: main.cpp
- Revision:
- 23:0f3b1441b08c
- Parent:
- 22:438bedf24707
diff -r 438bedf24707 -r 0f3b1441b08c main.cpp --- a/main.cpp Wed Sep 19 06:37:31 2018 +0000 +++ b/main.cpp Thu Sep 20 04:20:19 2018 +0000 @@ -18,7 +18,7 @@ #include "pid.h" #define DEBUG_SEMIAUTO 0 -#define DEBUG_PRINT_INLOOP 1 +#define DEBUG_PRINT_INLOOP 0 #define KP_ELE 15.0 //2.0 #define KI_ELE 0.0 @@ -334,8 +334,8 @@ NVIC_SetPriority(USART1_IRQn,0); NVIC_SetPriority(EXTI0_IRQn,1); - NVIC_SetPriority(TIM5_IRQn,2); - NVIC_SetPriority(EXTI9_5_IRQn,3); + NVIC_SetPriority(TIM5_IRQn,3); + NVIC_SetPriority(EXTI9_5_IRQn,4); DisplayClock(); t.start(); @@ -354,7 +354,7 @@ } pc.attach(getSF_Serial, Serial::RxIrq); - NVIC_SetPriority(USART2_IRQn,4); + NVIC_SetPriority(USART2_IRQn,2); FirstROLL = nowAngle[ROLL]; FirstPITCH = nowAngle[PITCH]; @@ -373,18 +373,26 @@ void loop(){ static float targetAngle[3] = {0.0, 0.0, 0.0}, controlValue[2] = {0.0, 0.0}; - + pc.printf("0\r\n"); SensingMPU(); + pc.printf("1\r\n"); NVIC_DisableIRQ(USART2_IRQn); UpdateTargetAngle(targetAngle); + pc.printf("2\r\n "); //Rotate(targetAngle, 30.0); CalculateControlValue(targetAngle, controlValue); + pc.printf("3\r\n"); NVIC_DisableIRQ(USART1_IRQn); UpdateAutoPWM(controlValue); + pc.printf("4\r\n"); NVIC_EnableIRQ(USART1_IRQn); NVIC_EnableIRQ(USART2_IRQn); + pc.printf("5\r\n"); wait_ms(23); - pc.printf("%c",g_landingcommand); + pc.printf("6\r\n"); + //NVIC_DisableIRQ(USART2_IRQn); + //pc.printf("%c",g_landingcommand); + //NVIC_EnableIRQ(USART2_IRQn); #if DEBUG_PRINT_INLOOP //Sbusprintf(); DebugPrint(); @@ -1033,6 +1041,9 @@ void getSF_Serial(){ + NVIC_DisableIRQ(USART1_IRQn); + NVIC_DisableIRQ(EXTI0_IRQn); + NVIC_DisableIRQ(TIM5_IRQn); static char SFbuf[16]; static int bufcounter=0; @@ -1048,7 +1059,7 @@ if(bufcounter==5 && SFbuf[4]=='F'){ g_landingcommand = SFbuf[1]; - wait_ms(20); + //wait_ms(20); if(g_landingcommand=='Y')g_SerialTargetYAW = ConvertByteintoFloat(SFbuf[2], SFbuf[3]); bufcounter = 0; memset(SFbuf, 0, strlen(SFbuf)); @@ -1058,7 +1069,9 @@ pc.printf("Communication Falsed.\r\n"); bufcounter = 0; } - + NVIC_EnableIRQ(TIM5_IRQn); + NVIC_EnableIRQ(EXTI0_IRQn); + NVIC_EnableIRQ(USART1_IRQn); } float ConvertByteintoFloat(char high, char low){