zhangmangui 发表于 2019-9-25 22:51

DELAY_US(A)

#define DELAY_US(A)DSP28x_usDelay(((((long double) A * 1000.0L) / (long double)CPU_RATE) - 9.0L) / 5.0L)

A对应需要延迟的时间,单位是us,L代表ns
CPU clock speed 代表主频即SYSCLKOUT
而 CPU_RATE是CPU clock speed的倒数

?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
      Specify the clock rate of the CPU (SYSCLKOUT) in nS.

      Take into account the input clock frequency and the PLL multiplier
      selected in step 1.

      Use one of the values provided, or define your own.
      The trailing L is required tells the compiler to treat
      the number as a 64-bit value.

      Only one statement should be uncommented.

      Example 1:150 MHz devices:
                CLKIN is a 30MHz crystal.

                In step 1 the user specified PLLCR = 0xA for a
                150Mhz CPU clock (SYSCLKOUT = 150MHz).

                In this case, the CPU_RATE will be 6.667L
                Uncomment the line:#define CPU_RATE6.667L

      Example 2:100 MHz devices:
                  CLKIN is a 20MHz crystal.

                  In step 1 the user specified PLLCR = 0xA for a
                  100Mhz CPU clock (SYSCLKOUT = 100MHz).

                  In this case, the CPU_RATE will be 10.000L
                  Uncomment the line:#define CPU_RATE10.000L
-----------------------------------------------------------------------------*/
#define CPU_RATE    6.667L   // for a 150MHz CPU clock speed (SYSCLKOUT)
//#define CPU_RATE    7.143L   // for a 140MHz CPU clock speed (SYSCLKOUT)
//#define CPU_RATE    8.333L   // for a 120MHz CPU clock speed (SYSCLKOUT)
//#define CPU_RATE   10.000L   // for a 100MHz CPU clock speed (SYSCLKOUT)
//#define CPU_RATE   13.330L   // for a 75MHz CPU clock speed (SYSCLKOUT)
//#define CPU_RATE   20.000L   // for a 50MHz CPU clock speed(SYSCLKOUT)
//#define CPU_RATE   33.333L   // for a 30MHz CPU clock speed(SYSCLKOUT)
//#define CPU_RATE   41.667L   // for a 24MHz CPU clock speed(SYSCLKOUT)
//#define CPU_RATE   50.000L   // for a 20MHz CPU clock speed(SYSCLKOUT)
//#define CPU_RATE   66.667L   // for a 15MHz CPU clock speed(SYSCLKOUT)
//#define CPU_RATE100.000L   // for a 10MHz CPU clock speed(SYSCLKOUT)





airwill 发表于 2019-9-28 11:52

定义挺复杂的,经过这么复杂的折腾, 不知道还是不是准确的时钟数了.
页: [1]
查看完整版本: DELAY_US(A)