- #include "SysTick.h"
- #include "motor2.h"
- #include "key.h"
- #include "exti.h"
- u16 speed_index=500;
- int main()
- {
- u16 period = 500;
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
- SysTick_Init(72);
- KEY_Init();
- My_EXTI_Init();
- MOTOR_Init();
- MOTOR_PWM_Init(period,12-1);
- TIM_SetCompare2(TIM3,period/2);
- while(1)
- {
- GPIO_ResetBits(GPIOE,GPIO_Pin_5);
- delay_ms(500);
- // GPIO_SetBits(GPIOE,GPIO_Pin_5);
- // delay_ms(500);
- }
- }
- void EXTI0_IRQHandler(void)
- {
- if(EXTI_GetITStatus(EXTI_Line0)==1)
- {
- //delay_ms(10);
- if(KEY_UP==1)
- {
- PEout(6)=0; //启动电机
- }
- }
- EXTI_ClearITPendingBit(EXTI_Line0);
- }
- void EXTI3_IRQHandler(void)
- {
- if(EXTI_GetITStatus(EXTI_Line3)==1)
- {
- if(KEY1==0)
- {
- PEout(6)=1; //电机脱机
- }
-
- }
- EXTI_ClearITPendingBit(EXTI_Line3);
- }
- void EXTI2_IRQHandler(void)
- {
- if(EXTI_GetITStatus(EXTI_Line2)==1)
- {
- //delay_ms(10);
- if((KEY2==0)&&(speed_index>50))
- {
- speed_index -= 50;
- TIM_SetAutoreload(TIM3,speed_index);
- }
-
- }
- EXTI_ClearITPendingBit(EXTI_Line2);
- }
- void EXTI4_IRQHandler(void)
- {
- if(EXTI_GetITStatus(EXTI_Line4)==1)
- {
- //delay_ms(10);
- if((KEY0==0)&&(speed_index<2000))
- {
- speed_index += 50;
- TIM_SetAutoreload(TIM3,speed_index);
- }
- }
- EXTI_ClearITPendingBit(EXTI_Line4);
- }
复制代码
原理图: 无
仿真: 无
代码:
Proj14-Motor2.7z
(177.92 KB, 下载次数: 2)
|