- #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)
2024-10-22 16:10 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|