1 공극 _TIM4_Configuration ( 공극 ) 이 { 3 / * TIM4 구성 ------------------------------------- -------------- 4 4 다른 듀티 사이클 7 개 PWM 신호 생성 5 TIM4CLK = 72 MHz의 프리스케일러 = 0 TIM4 카운터 = 72 MHz의 클록 6 TIM4 주파수 = TIM4CLK / (+ TIM4_Period 1) = 17.57 KHz의 7 - TIM4 채널 1 및 Channel1N 듀티 사이클 = TIM4-> CCR1 / (TIM4_Period + 1) = 50 % 8 - TIM4 채널 2 및 Channel2N 듀티 사이클 = TIM4-> CCR2 / (TIM4_Period + 1) = 37.5 % (9) - 채널 3 및 TIM4 Channel3N 듀티 사이클 = TIM4-> CCR3 / (TIM4_Period + 1) = 25 % 10 - TIM4 Channel4 듀티 사이클 = TIM4-> CCR4 / (TIM4_Period + 1) = 12.5 %, 11 ----------------------------- ------------------------------------------ * / 12 TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; 13 TIM_OCInitTypeDef TIM_OCInitStructure; 14 (15) / * 시간축 설정 * / 16 TIM_TimeBaseStructure.TIM_Prescaler = (SystemCoreClock / 88만 / 2 ) - 1 ; // 2000000 17 TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; 18 TIM_TimeBaseStructure.TIM_Period =1023 ; 19 TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV4; 20 TIM_TimeBaseStructure.TIM_RepetitionCounter = 0 ; 21 22 TIM_TimeBaseInit (TIM4, TIM_TimeBaseStructure); 23 24 TIM_ARRPreloadConfig (TIM4 활성화); 25 26 TIM_OCStructInit ( TIM_OCInitStructure)를; 27 (28) / * 채널 1, PWM 모드 3 및 4 설정 * / 29 TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; 30 TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; 31 TIM_OCInitStructure.TIM_Pulse = 0 ; 32 TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low; 33 TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set; 34 35 TIM_OC1Init (TIM4, TIM_OCInitStructure); 36 TIM_OC1PreloadConfig (TIM4, TIM_OCPreload_Enable); 37 38 TIM_OCInitStructure.TIM_Pulse = 0 ; 39 TIM_OC2Init (TIM4, TIM_OCInitStructure); 40 TIM_OC2PreloadConfig (TIM4, TIM_OCPreload_Enable); 41 42 TIM_OCInitStructure.TIM_Pulse = 0; 43 TIM_OC3Init (TIM4, TIM_OCInitStructure); 44 TIM_OC3PreloadConfig (TIM4, TIM_OCPreload_Enable); 45 46 TIM_OCInitStructure.TIM_Pulse = 0 ; 47 TIM_OC4Init (TIM4, TIM_OCInitStructure); 48 TIM_OC4PreloadConfig (TIM4, TIM_OCPreload_Enable); (49) (50) / * TIM4 카운터 활성화 * / 51 TIM_Cmd (TIM4을 가능)를; 52 (53) / * TIM4 메인 출력 활성화 * / 54 TIM_CtrlPWMOutputs을 (TIM4가 활성화); 55 } 56 57 공극_TIM8_Configuration ( 공극 ) 58 { 59 / * TIM8 구성 --------------------------------------- ------------ 60 : 4 다른 듀티 사이클 7 개 PWM 신호 생성 61 TIM8CLK = 72 MHz의 프리스케일러 = 0 TIM8 카운터 클럭 = 72 MHz의 62 TIM8 주파수 = TIM8CLK / (TIM8_Period + 1) = 17.57 KHz에서 63 - TIM8 채널 1 및 Channel1N 듀티 사이클 = TIM8-> CCR1 / (TIM8_Period + 1) = 50 % 64 - TIM8 채널 2 및 Channel2N 듀티 사이클 = TIM8-> CCR2 / (TIM8_Period + 1) = 37.5 % 65 - TIM8 채널 3 및 Channel3N 듀티 사이클 = TIM8-> CCR3 / (TIM8_Period + 1) = 25 % 66 - TIM8 Channel4 듀티 사이클 = TIM8-> CCR4 / (TIM8_Period + 1) = 12.5 %, 67 ------------------------------ ----------------------------------------- * / 68 TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; 69 TIM_OCInitTypeDef TIM_OCInitStructure; 70 (71) / * 시간축 설정 * / 72 TIM_TimeBaseStructure.TIM_Prescaler = (SystemCoreClock / 880,000 ) - 1 ; // 2000000 73 TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; 74 TIM_TimeBaseStructure.TIM_Period = 1,023 ; 75 TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV4; 76 TIM_TimeBaseStructure.TIM_RepetitionCounter = 0 ; 77 78 TIM_TimeBaseInit (TIM8, TIM_TimeBaseStructure); 79 80 TIM_ARRPreloadConfig (TIM8 활성화); 81 82 TIM_OCStructInit ( TIM_OCInitStructure)를; 83 (84) / * 채널 1, PWM 모드 3 및 4 설정 * / 85 TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; 86 TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; 87 TIM_OCInitStructure.TIM_Pulse = 0 ; 88 TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low; 89 TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set; 90 91 TIM_OC1Init (TIM8, TIM_OCInitStructure); 92 TIM_OC1PreloadConfig (TIM8, TIM_OCPreload_Enable); 93 94 TIM_OCInitStructure.TIM_Pulse = 0 ; 95 TIM_OC2Init (TIM8, TIM_OCInitStructure); 96 TIM_OC2PreloadConfig (TIM8, TIM_OCPreload_Enable); 97 98 TIM_OCInitStructure.TIM_Pulse = 0 ; 99 TIM_OC3Init (TIM8, TIM_OCInitStructure); 100 TIM_OC3PreloadConfig (TIM8, TIM_OCPreload_Enable); 101 102 TIM_OCInitStructure.TIM_Pulse = 0 ; 103 TIM_OC4Init (TIM8, TIM_OCInitStructure); 104 TIM_OC4PreloadConfig (TIM8, TIM_OCPreload_Enable); 105 (106) / * TIM8 카운터가 활성화 * / 107 TIM_Cmd (TIM8을 가능); 108 (109) / * TIM8 메인 출력 활성화 * / 110 TIM_CtrlPWMOutputs (TIM8을 가능); 111 } 112 113 TIM_SetCompare1 (TIM4,500 );