首页 理论教育 PPM编码示例解析

PPM编码示例解析

时间:2023-06-23 理论教育 版权反馈
【摘要】:运行这个程序的文件在本书CD中第12章的ccs\PPM文件夹。我们感兴趣的主文件是PPM_ISRs.c,PPM_ISRs1.c和PPM_ISRs2.c和PPM_ISRs3.c。与PPM代码相关的声明程序如下。程序清单12.1:PPM相关的声明部分图9-13装饰细部设计过程程序清单12.1的解释如下。第3行:定义一个变量LED_Mask来关闭所有的LED。第14~17行:如果左右通道中的一个或所有的幅度大于32000,点亮LED2。第18~23行:这部分代码使得LED2的计数器减1,一旦计数器减少到0,LED关闭。

PPM编码示例解析

运行这个程序的文件在本书CD中第12章的ccs\PPM文件夹。我们感兴趣的主文件是PPM_ISRs.c,PPM_ISRs1.c和PPM_ISRs2.c和PPM_ISRs3.c。

重要提示:你只能一次调用这些ISR文件中的一个作为你的工程的一个部分。ISR文件包含必要的声明和执行实际的滤波操作。

我们将首先讨论PPM_ISRs.c。与PPM代码相关的声明程序如下。

程序清单12.1:PPM相关的声明部分

978-7-111-33881-9-Part02-60.jpg

程序清单12.1的解释如下。

(1)第1行:设定LED保持开态的最小时间,这个时间需要等于复位时间Ts。在这里它等于4800/48000s=0.1s。

(2)第3行:定义一个变量LED_Mask来关闭所有的LED。

(3)第4~6行:定义一个变量来表示3个LED的开态。

程序清单12.2:PPM_ISR.c的举例的PPM代码(www.xing528.com)

978-7-111-33881-9-Part02-61.jpg

程序清单12.2有关PPM代码的解释如下。

(1)第2~5行:如果左或者右通道中的一个或所有的幅度都大于28000,点亮LED1。计数器设定为4800。这个计数器使得灯开0.1s。

(2)第6~11行:这部分代码使得LED1计数器减少1,一旦计数器减少到0,LED关闭。

(3)第14~17行:如果左右通道中的一个或所有的幅度大于32000,点亮LED2。计数器也被设定为4800。这个计数器使得灯开0.1s。

(4)第18~23行:这部分代码使得LED2的计数器减1,一旦计数器减少到0,LED关闭。

(5)第26~29行:如果左右通道中的一个或所有的幅度大于32767。LED3开启。计数器设定为4800。这个计数器使得灯开0.1s。

(6)第30~35行:这部分代码使得LED3的计数器减1,一旦计数器减少到0,LED关闭。

(7)第37行:调用UpdataLEDs()子程序,顾名思义,它用于更新系统LED的状态。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈