进击的生菜 发表于 2018-3-25 11:05

DSP仿真全速运行和自己一步一步运行结果不一样?

自学2812 写了一个矩键扫描的程序   检测按键然后用数码管显示   自己一步一步运行的时候   没有问题但是全速运行的时候按下去某个键只能检测出所在行检测不出所在列就是不更新列值一直是上次的列值求解
Uint16 Scan_KEY(void)
{
static Uint16 keyx,key;
Uint16 keyy;
Uint16 temp;


          RESET_ALL();

          temp=S1&0x0038;
          if(temp!=0x0038)
          {
                DSP28x_usDelay(5000);
                if(temp!=0x0038)
                {
                   switch(temp)
                   {
                case 0x18: keyx=0;break;
                case 0x28: keyx=1;break;
                case 0x30: keyx=2;break;
                default:break;
                   }

                   SET0;
               temp=S1&0x0038;
               if(temp==0x38)
                          keyy=2;
               RESET_ALL();

               SET1;
               temp=S1&0x0038;
               if(temp==0x38)
                   keyy=1;
               RESET_ALL();

                SET2;
                          temp=S1&0x0038;
                          if(temp==0x38)
                                   keyy=0;
                          RESET_ALL();

                          key=Keys;
                          return key;
                          keyx=0;
                          keyy=0;
                }
          }

}

进击的生菜 发表于 2018-3-25 11:07

这个是原理图

进击的生菜 发表于 2018-3-25 11:08

一直按着按键一步一步运行 结果是对的   全速运行的时候就不会更新列值   按第一行全都是1第二行 全是4第三行全是7

进击的生菜 发表于 2018-3-25 21:16

没有人吗

zhangmangui 发表于 2018-3-25 23:22

以全速为主因为仿真时响应慢   会错过一些信号的触发

进击的生菜 发表于 2018-3-26 10:17

zhangmangui 发表于 2018-3-25 23:22
以全速为主因为仿真时响应慢   会错过一些信号的触发

但是我一步一步仿真结果对全速就不对是因为长按短按的原因吗

zhangmangui 发表于 2018-3-26 22:12

进击的生菜 发表于 2018-3-26 10:17
但是我一步一步仿真结果对全速就不对是因为长按短按的原因吗

可能是延时量不够
页: [1]
查看完整版本: DSP仿真全速运行和自己一步一步运行结果不一样?