控制工程基础第三版王积伟答案p72
时间: 2023-12-17 11:00:34 浏览: 103
《控制工程基础第三版》是一本非常经典的教材,王积伟老师在其第三版的答案页P72中给出了一些非常有用的答案和解析。
在P72页,王积伟老师对控制工程中的一些基础概念进行了详细的解释和阐述。他首先介绍了一些基本的控制系统的理论,包括反馈控制系统的基本原理,以及传递函数的概念和计算方法。他还对控制系统的稳定性进行了深入的讨论,包括如何通过极点分布来判断系统的稳定性,并给出了相关的数学推导和例题分析。
此外,王积伟老师还介绍了一些常见的控制系统设计方法,包括根轨迹法和频率法等。他对这些设计方法的原理和应用进行了详细的讲解,并给出了一些实际的工程示例和习题,帮助读者更好地理解和掌握这些方法。
总的来说,王积伟老师在《控制工程基础第三版》P72页给出了非常有益的答案和解析,对控制工程的基础知识进行了全面而深入的讲解,对于学习和掌握控制工程的同学们来说是一本非常有价值的参考书。
相关问题
解释一下这段代码#ifdef USE_HANDSHAKE INTP_Init(1 << 0, INTP_RISING); INTP_Start(1 << 0); #endif PORT->PMC7 &= ~(3<<1); // P71, P72 digital function PORT->PM7 &= ~(3<<1); // P71, P72 output mode PORT->P7 |= (3<<1); // P71/LED, P72/LED OFF //======================================================================= // spi MODE 0 Master transmission/reception // Mode 0: CPOL = 0, CPHA = 0; i.e. DAP = 1, CKP = 1 // Mode 1: CPOL = 0, CPHA = 1; i.e. DAP = 0, CKP = 1 // Mode 2: CPOL = 1, CPHA = 0; i.e. DAP = 1, CKP = 0 // Mode 3: CPOL = 1, CPHA = 1; i.e. DAP = 0, CKP = 0 //======================================================================= #ifdef TEST_SPI_MODE_0 SPI_MasterInit(SPI_MODE_0); #ifdef USE_HANDSHAKE /* waiting slave ready */ while(g_intp0Taken == 0); g_intp0Taken = 0; #endif //----------------------------------------------------------------------- // Master Send and Slave Receive //----------------------------------------------------------------------- SPI_MasterSend(mtx_buf, sizeof(mtx_buf)); #ifdef SPI_WITH_DMA SysTick->CTRL &= ~SysTick_CTRL_TICKINT_Msk; /* Disable SysTick IRQ */ __WFI(); SysTick->CTRL |= SysTick_CTRL_TICKINT_Msk; /* Enable SysTick IRQ */ #else while(gp_spi_tx_address != 0); #endif delayMS(5);
这段代码中包含了一些与SPI通信和GPIO操作相关的代码。下面我逐行解释每一部分的功能:
```c
#ifdef USE_HANDSHAKE
INTP_Init(1 << 0, INTP_RISING);
INTP_Start(1 << 0);
#endif
```
这部分代码是一个条件编译,当定义了`USE_HANDSHAKE`宏时,会执行其中的代码。它初始化并启动外部中断INTP,当引脚0上的电平发生上升沿时触发中断。
```c
PORT->PMC7 &= ~(3<<1); // P71, P72 digital function
PORT->PM7 &= ~(3<<1); // P71, P72 output mode
PORT->P7 |= (3<<1); // P71/LED, P72/LED OFF
```
这部分代码用于配置端口P71和P72的功能。它将P71和P72配置为数字功能,并将其设置为输出模式。最后,它将P71和P72引脚的输出状态设置为高电平,即关闭LED。
```c
#ifdef TEST_SPI_MODE_0
SPI_MasterInit(SPI_MODE_0);
```
这部分代码也是一个条件编译,当定义了`TEST_SPI_MODE_0`宏时,会执行其中的代码。它初始化SPI主设备,并将SPI模式设置为模式0,即CPOL=0、CPHA=0。
```c
#ifdef USE_HANDSHAKE
/* waiting slave ready */
while(g_intp0Taken == 0);
g_intp0Taken = 0;
#endif
```
这部分代码也是一个条件编译,当定义了`USE_HANDSHAKE`宏时,会执行其中的代码。它在主设备发送数据之前等待从设备就绪。具体来说,它会不断检查一个标志位`g_intp0Taken`是否为0,直到从设备发出中断信号并将该标志位置为0。
```c
SPI_MasterSend(mtx_buf, sizeof(mtx_buf));
```
这行代码用于向SPI从设备发送数据。它将`mtx_buf`缓冲区的数据发送给从设备,并指定发送数据的长度。
```c
#ifdef SPI_WITH_DMA
SysTick->CTRL &= ~SysTick_CTRL_TICKINT_Msk; /* Disable SysTick IRQ */
__WFI();
SysTick->CTRL |= SysTick_CTRL_TICKINT_Msk; /* Enable SysTick IRQ */
#else
while(gp_spi_tx_address != 0);
#endif
```
这部分代码也是一个条件编译,当定义了`SPI_WITH_DMA`宏时,会执行其中的代码。如果使用DMA进行SPI传输,它会禁用SysTick中断,然后进入等待模式,等待DMA传输完成。如果没有使用DMA,则会检查一个指针变量`gp_spi_tx_address`是否为0,直到传输完成。
```c
delayMS(5);
```
这行代码用于延时5毫秒。具体的延时函数实现可能在其他地方定义。
总的来说,这段代码的功能是进行SPI通信,并通过GPIO控制一些外设,还包括中断处理和延时等操作。具体的功能和实现可能与你的系统配置和应用有关。
阅读全文