请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:MSP432P401R
您好!
我正在使用 Timer32创建一个简单的延迟 API、用于我的未来项目。
它似乎在1s 持续时间内工作(我手头没有示波器来检查较小的值。)。
我想 µs 一些有关代码的建议(使用任何毫秒/μ s 持续时间值是否足够?)、如果存在更好、更轻松的延迟方法(可能是使用 Timer32中断、甚至没有 Timer32?)。
备注:我的未来项目所需的最短延迟时间为10µs μ s。
#include "driverlib.h" void delay_init (void) { Timer32_initModule (TIMER32_0_base、TIMER32_prescaler_1、TIMER32_32位、TIMER32_PERiod_MODE); Timer32_disableInterrupt (TIMER32_0_BASE); } void delay (uint32_t dures_us) { Timer32_haltTimer (TIMER32_0_BASE); Timer32_setCount (TIMER32_0_BASE、24 * DURAY_us); Timer32_startTimer (TIMER32_0_base、true); while (Timer32_getValue (TIMER32_0_BASE)> 0); } int main (void) { WDT_A_HOLDTimer(); CS_setDCOCenteredFrequency (CS_DCO_FREQUENCY 24); // 24000000 Hz CS_initClockSignal (CS_MCLK、CS_DCOCLK_select、CS_clock_divider);// 24000000 Hz GPIO_setAsOutputPin (GPIO_PORT_P2、GPIO_PIN0); GPIO_setOutputLowOnPin (GPIO_PORT_P2、GPIO_PIN0); delay_init(); while (1) { 延迟(1 * 1000 * 1000);// 1 GPIO_toggleOutputOnPin (GPIO_PORT_P2、GPIO_PIN0); } }
谢谢、
Michaël μ A