orange 发表于 2024-6-13 14:26:46

有没有大神看下,我这段代码的运行时间

我用的芯片是STC8H1K08,时钟22.1184MHZ,
软件仿真设是时钟是22MHz,耗时大概是2.09us,这个仿真时间可信么,有没有办法缩短执行时间
unsigned char input = P1 & 0x07;
        unsigned char output;
    switch(input)
    {
      case 0:
            output = 0x00;
            P1 = output;
            break;
      case 1:
            output = 0x01;
            P1 = output;
            break;
      case 2:
            output = 0x02;
            P1 = output;
            break;
      case 3:
            output = 0x03;
            P1 = output;
            break;
      case 4:
            output = 0x04;
            P1 = output;
            break;
      case 5:
            output = 0x05;
            P1 = output;
            break;
      default:
            break;
}

Lkck8210 发表于 2024-6-13 15:26:07

unsigned char input = P1 & 0x07;
P1 = intput;

orange 发表于 2024-6-13 15:42:56

Lkck8210 发表于 2024-6-13 15:26
unsigned char input = P1 & 0x07;
P1 = intput;

这个只是个例子,要实现的功能跟38译码器差不多,

Lkck8210 发表于 2024-6-13 15:45:56

orange 发表于 2024-6-13 15:42
这个只是个例子,要实现的功能跟38译码器差不多,

这代码符合你的需求{:5_351:}

orange 发表于 2024-6-13 15:49:37

Lkck8210 发表于 2024-6-13 15:45
这代码符合你的需求

要求转换时间小于1us,我软件仿真出来时2.09us,速度达不到,不知道有没有提高速度的方法

soma 发表于 2024-6-13 16:04:48

24mhz1t,24个指令周期1us,也就是说要小于1us就要控制在24个指令以内。

orange 发表于 2024-6-14 08:42:04

wnagming 发表于 2024-6-13 16:40
你这个回答很棒,问题是楼主不知道自己的需求是什么

三个输入,对应八种状态,每个状态干不同是事情
页: [1]
查看完整版本: 有没有大神看下,我这段代码的运行时间