中级会员
 
- 积分
- 250
- 金钱
- 250
- 注册时间
- 2020-3-3
- 在线时间
- 85 小时
|
//中断模块
void TIM1_IRQHandler(void)
{
KEY_Init();
delay_ms(10);
if(TIM_GetITStatus(TIM1,TIM_IT_CC1|TIM_IT_CC2|TIM_IT_CC3|TIM_IT_CC4)!=RESET)
{
//外部触发输入1
if(TIM_GetITStatus(TIM1,TIM_IT_CC1)!=RESET&&PAin(8)==0)
{
//TIM4->CR1 |= TIM_CR1_CEN; //定时器使能
ccr=6999;
//TIM_SetCompare1(TIM4,ccr);
TIM4->CCR1=ccr;
TIM4->CCR2=ccr;
TIM4->CCR3=ccr;
TIM4->CCR4=ccr;
PCout(0)=0;
PCout(1)=0;
PCout(2)=0;
PCout(3)=0;
delay_us(cnt); //延时的时间由ec11旋钮编码器的脉冲计数个数决定(输出高电平的时间)
//TIM_Cmd(TIM4,DISABLE);
//TIM4->CR1 &=~(TIM_CR1_CEN); //定时器失能
//PCout(0)=1; //相机4路输出低电平
//PCout(1)=1;
//PCout(2)=0;
//PCout(3)=0;
//DisPlayNum(cnt);
}
//外部触发输入2
if(TIM_GetITStatus(TIM1,TIM_IT_CC2)!=RESET&&PAin(9)==0)
{
//TIM4->CR1|=TIM_CR1_CEN;
ccr=6999;
//TIM_SetCompare1(TIM4,ccr);
TIM4->CCR1=ccr;
TIM4->CCR2=ccr;
TIM4->CCR3=ccr;
TIM4->CCR4=ccr;
PCout(0)=0;
PCout(1)=0;
PCout(2)=0;
PCout(3)=0;
delay_us(cnt); //延时的时间由ec11旋钮编码器的脉冲计数个数决定(输出高电平的时间)
//TIM_Cmd(TIM4,DISABLE);
//TIM4->CR1 &=~(TIM_CR1_CEN); //定时器失能
//PCout(0)=1; //相机1路输出的低电平
//PCout(1)=1;
//PCout(2)=1;
//PCout(3)=1;
//DisPlayNum(cnt);
}
//外部触发输入3
if(TIM_GetITStatus(TIM1,TIM_IT_CC3)!=RESET&&PAin(10)==0)
{
//TIM4->CR1|=TIM_CR1_CEN;
//ccr=6999;
//TIM_SetCompare1(TIM4,ccr);
//TIM4->CCR1=ccr;
//TIM4->CCR2=ccr;
//TIM4->CCR3=ccr;
//TIM4->CCR4=ccr;
//PCout(0)=0;
//PCout(1)=0;
//PCout(2)=0;
//PCout(3)=0;
//delay_us(cnt); //延时的时间由ec11旋钮编码器的脉冲计数个数决定(输出高电平的时间)
//TIM_Cmd(TIM4,DISABLE);
//TIM4->CR1 &=~(TIM_CR1_CEN); //定时器失能
//PCout(0)=1; //相机1路输出的低电平
//PCout(1)=1;
//PCout(2)=1;
//PCout(3)=1;
//DisPlayNum(cnt);
if(ccr<35999)
{
ccr+=5000;
}
else
ccr=0;
TIM_SetCompare1(TIM4,ccr);
TIM_SetCompare2(TIM4,ccr);
TIM_SetCompare3(TIM4,ccr);
TIM_SetCompare4(TIM4,ccr);
}
//外部触发输入4
if(TIM_GetITStatus(TIM1,TIM_IT_CC4)!=RESET&&PAin(11)==0)
{
//TIM4->CR1|=TIM_CR1_CEN;
//ccr=6999;
//TIM_SetCompare1(TIM4,ccr);
//TIM4->CCR1=ccr;
//TIM4->CCR2=ccr;
//TIM4->CCR3=ccr;
//TIM4->CCR4=ccr;
//PCout(0)=0;
//PCout(1)=0;
//PCout(2)=0;
//PCout(3)=0;
//delay_us(cnt);
//TIM_Cmd(TIM4,DISABLE);
//TIM4->CR1 &=~(TIM_CR1_CEN);
//PCout(0)=1;
//PCout(1)=1;
//PCout(2)=1;
//PCout(3)=1;
//DisPlayNum(cnt);
if(ccr>5000)
{
ccr-=5000;
}
else
ccr=35999;
TIM_SetCompare1(TIM4,ccr);
TIM_SetCompare2(TIM4,ccr);
TIM_SetCompare3(TIM4,ccr);
TIM_SetCompare4(TIM4,ccr);
}
TIM_ClearITPendingBit(TIM1, TIM_IT_CC1|TIM_IT_CC2|TIM_IT_CC3|TIM_IT_CC4); //清除中断标志位
}
}
//按键的初始化 用到的按键是PA8-11
void KEY_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
//RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
//GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
//配置A端口 A8-11
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
//GPIO_InitStructure.GPIO_Speed= GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
//配置端口 C 8 12
GPIO_InitStructure.GPIO_Pin= GPIO_Pin_12|GPIO_Pin_8;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;
GPIO_Init(GPIOC,&GPIO_InitStructure);
//GPIO_SetBits(GPIOA,GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11);
//GPIO_SetBits(GPIOC,GPIO_Pin_12|GPIO_Pin_8);
}
|
|