OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8117|回复: 2

外部中断,按这个键,别的按键中断为什么会有反应,各位大神求助啊

[复制链接]

117

主题

598

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
1698
金钱
1698
注册时间
2012-5-10
在线时间
438 小时
发表于 2012-5-10 13:23:07 | 显示全部楼层 |阅读模式
我按加减的键,key的值会随机的发生改变,时钟调时老是不行,是哪里问题,各位大哥指点啊

void SysTick_Handler(void)
{
    num++;
if(num==10)
{
num=0;
miao++;
if(miao>=60)
{
fen++;
miao=0;
if(fen>=60)
{
  shi++;
  fen=0;
  if(shi>=24)
  {
   week++;
 ri++;
 shi=0;
 if(week>=8)
 {
  week=1;
 }
 GUI_Rectangle(96,126,128,174,0xffff,1);
         dis_32_48(96,126,week,(u16 *)picture);
 if(ri>=32)
 {
  ri=1;
month++;
if(month>=13)
{
month=1;
year++;
if(year>=10000)
{
year=0;
}
year1=year/1000;
                year2=(year%1000)/100;
                year3=(year%100)/10;
                    year4=(year%10);
                GUI_Rectangle(96,10,192,58,0xffff,1);
                dis_32_48(96,10,year1,(u16 *)picture);
                     dis_32_48(128,10,year2,(u16 *)picture);
                dis_32_48(160,10,year3,(u16 *)picture);
                dis_32_48(192,10,year4,(u16 *)picture);
}
month1=month/10;
               month2=month%10;
               GUI_Rectangle(64,68,128,116,0xffff,1);
               dis_32_48(64,68,month1,(u16 *)picture);
               dis_32_48(96,68,month2,(u16 *)picture);
 }
              

 ri1=ri/10;
         ri2=ri%10;
         GUI_Rectangle(200,68,264,116,0xffff,1);
         dis_32_48(200,68,ri1,(u16 *)picture);
         dis_32_48(232,68,ri2,(u16 *)picture);
  }
  shi1=shi/10;
      shi2=shi%10;
      GUI_Rectangle(0,184,64,232,0xffff,1);
      dis_32_48(0,184,shi1,(u16 *)picture);
      dis_32_48(32,184,shi2,(u16 *)picture);
}
fen1=fen/10;
fen2=fen%10;
GUI_Rectangle(96,184,162,232,0xffff,1);
dis_32_48(96,184,fen1,(u16 *)picture);
dis_32_48(128,184,fen2,(u16 *)picture);
}
miao1=miao/10;
miao2=miao%10;
GUI_Rectangle(192,184,256,232,0xffff,1);
dis_32_48(192,184,miao1,(u16 *)picture);
dis_32_48(224,184,miao2,(u16 *)picture);
  }
// num1=num/100;
 //   num2=num/10;
// num3=num%10;
// GUI_Rectangle(144,34,192,58,0x0000,1);
// zifu_16_24(144,34,num1,0x07e0);
 //   zifu_16_24(160,34,num2,0x07e0);
// zifu_16_24(176,34,num3,0x07e0);

}


void EXTI0_IRQHandler(void) //WA键,就是右键,keynum3
{
  
      Delay(0x2fff);

 if(EXTI_GetITStatus(EXTI_Line0) != RESET)
       {
   switch(key)
    {

 case 1:miao++;if(miao>=60)miao=0;
               miao1=miao/10;
                     miao2=miao%10;
                   GUI_Rectangle(192,184,256,232,0xffff,1);
                     dis_32_48(192,184,miao1,(u16 *)picture);
                   dis_32_48(224,184,miao2,(u16 *)picture);
break;
 case 2:fen++;if(fen>=60)fen=0;
              fen1=fen/10;
                  fen2=fen%10;
                  GUI_Rectangle(96,184,162,232,0xffff,1);
                  dis_32_48(96,184,fen1,(u16 *)picture);
                    dis_32_48(130,184,fen2,(u16 *)picture);         
  break;
 case 3:shi++;if(shi>=24)shi=0;
  shi1=shi/10;
                   shi2=shi%10;
                   GUI_Rectangle(0,184,64,232,0xffff,1);
                   dis_32_48(0,184,shi1,(u16 *)picture);
                   dis_32_48(32,184,shi2,(u16 *)picture);
               break;
 case 4:ri++;if(ri>=32)ri=1;
   ri1=ri/10;
                 ri2=ri%10;
                 GUI_Rectangle(200,68,264,116,0xffff,1);
                 dis_32_48(200,68,ri1,(u16 *)picture);
                 dis_32_48(232,68,ri2,(u16 *)picture);
             break;
 case 5:week++;if(week>=8)week=1;
   GUI_Rectangle(96,126,128,174,0xffff,1);
                 dis_32_48(96,126,week,(u16 *)picture);
             break;
 case 6:month++;if(month>=13)month=1;
   month1=month/10;
               month2=month%10;
               GUI_Rectangle(64,68,128,116,0xffff,1);
               dis_32_48(64,68,month1,(u16 *)picture);
               dis_32_48(96,68,month2,(u16 *)picture);
             break;
 case 7:year++;if(year>=10000)year=0;
  year1=year/1000;
                year2=(year%1000)/100;
                year3=(year%100)/10;
                    year4=(year%10);
                GUI_Rectangle(96,10,192,58,0xffff,1);
                dis_32_48(96,10,year1,(u16 *)picture);
                     dis_32_48(128,10,year2,(u16 *)picture);
                dis_32_48(160,10,year3,(u16 *)picture);
                dis_32_48(192,10,year4,(u16 *)picture);
            break;
 }

 EXTI_ClearFlag(EXTI_Line0);
 }
   
}
void EXTI9_5_IRQHandler(void) //user1键,下键,keynum4
{
 
    Delay(0x2ffff);
   if(EXTI_GetITStatus(EXTI_Line8) != RESET)
              {
                 key++;
            if(key>=8)
             {
             key=0;
             }
          EXTI_ClearFlag(EXTI_Line8);
   }
 
}
void EXTI15_10_IRQHandler(void)  //TAM键,左键,keynum1
{
        Delay(0x2ffff);
       if(EXTI_GetITStatus(EXTI_Line13) != RESET)
            {
       switch(key)
       {

 case 1:miao--;if(miao<0)miao=59;
              miao1=miao/10;
                          miao2=miao%10;
                   GUI_Rectangle(192,184,256,232,0xffff,1);
                    dis_32_48(192,184,miao1,(u16 *)picture);
                   dis_32_48(224,184,miao2,(u16 *)picture);
break;
 case 2:fen--;if(fen<0)fen=59;
             fen1=fen/10;
                  fen2=fen%10;
                  GUI_Rectangle(96,184,160,232,0xffff,1);
                  dis_32_48(96,184,fen1,(u16 *)picture);
                    dis_32_48(130,184,fen2,(u16 *)picture);         
  break;
 case 3:shi--;if(shi<0)shi=23;
             shi1=shi/10;
                   shi2=shi%10;
                   GUI_Rectangle(0,184,64,232,0xffff,1);
                   dis_32_48(0,184,shi1,(u16 *)picture);
                   dis_32_48(32,184,shi2,(u16 *)picture);
               break;
 case 4:ri--;if(ri<1)ri=31;
            ri1=ri/10;
                 ri2=ri%10;
                 GUI_Rectangle(200,68,264,116,0xffff,1);
         dis_32_48(200,68,ri1,(u16 *)picture);
         dis_32_48(232,68,ri2,(u16 *)picture);
             break;
 case 5:week--;if(week<1)week=7;
            GUI_Rectangle(96,126,128,174,0xffff,1);
                 dis_32_48(96,126,week,(u16 *)picture);
             break;
 case 6:month--;if(month<1)month=12;
               month1=month/10;
               month2=month%10;
               GUI_Rectangle(64,68,128,116,0xffff,1);
               dis_32_48(64,68,month1,(u16 *)picture);
               dis_32_48(96,68,month2,(u16 *)picture);
             break;
 case 7:year--;if(year<0)year=9999;
               year1=year/1000;
                year2=(year%1000)/100;
                year3=(year%100)/10;
                    year4=(year%10);
                GUI_Rectangle(96,10,192,58,0xffff,1);
                dis_32_48(96,10,year1,(u16 *)picture);
                     dis_32_48(128,10,year2,(u16 *)picture);
                dis_32_48(160,10,year3,(u16 *)picture);
                dis_32_48(192,10,year4,(u16 *)picture);
            break;
 }

 EXTI_ClearFlag(EXTI_Line13);
 }
 
}
如有技术问题,微信扫头像交流,STM32,JAVA,服务器
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2012-5-10 14:05:35 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

58

帖子

0

精华

初级会员

Rank: 2

积分
78
金钱
78
注册时间
2012-4-29
在线时间
0 小时
发表于 2012-5-10 15:57:07 | 显示全部楼层
几百行代码? 你觉得谁有时间帮你一行行看?
1.环保数采仪监控系统?2.物联网、管网监控系统?3.水文水利监控系统?4.油烟在线监控系统.?5.智能小区水电表监控系统.?提供各种自动化监控解决方案!?有需要请联系,QQ 237324479!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-25 21:58

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表