用库函数写法怎么写这个同样还是5个通道,但我想对其中的第2、3、4通道监测,其余通道不监测呢
时间: 2024-03-01 16:52:19 浏览: 10
使用库函数可以更加方便地实现对多个通道监测的功能。以下是一个示例代码,实现了对第2、3、4通道监测,其余通道不监测的功能:
```c
#include "fsl_wdog.h"
void WDOG_Init(void)
{
wdog_config_t config;
WDOG_GetDefaultConfig(&config);
config.enableDebug = false;
config.enableWait = false;
config.enableStop = false;
config.testMode = kWDOG_QuickTest;
config.workMode.enableWait = false;
config.workMode.enableStop = false;
config.workMode.enableDebug = false;
config.workMode.selectClock = kWDOG_LpoClockSource;
config.workMode.enableUpdate = true;
config.workMode.interruptEnable = false;
config.workMode.windowValue = 0U;
config.workMode.timeoutValue = kWDOG_TriggerCountTimeout(2U); //配置监测时间为2.1s
config.enableInterrupt = false;
config.clockSource = kWDOG_LpoClockSource;
uint32_t selectedChn;
selectedChn = WDOG_GetEnabledChannels(WDOG);
selectedChn &= ~(WDOG_CHANNEL_MASK(2) | WDOG_CHANNEL_MASK(3) | WDOG_CHANNEL_MASK(4)); //将第2~4通道设置为不监测
WDOG_SetEnabledChannels(WDOG, selectedChn);
WDOG_Init(WDOG, &config);
WDOG_Enable(WDOG, true);
}
```
在这个函数中,首先使用`WDOG_GetDefaultConfig`函数获取默认的WDOG配置信息,然后根据需要修改配置,其中`config.workMode.timeoutValue`用于配置监测时间,`selectedChn`用于记录需要监测的通道号,通过设置其对应的位为0或1来实现是否监测。最后使用`WDOG_Init`函数将配置信息写入寄存器,并使用`WDOG_Enable`函数使能WDOG。