您好!
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好!
您好、Shahul、
您好像在使用 SLAA517中的代码 (我可以找到 SLAA517E、但很遗憾、不是 SLAU517E)。 我想我之前已经看到过这个问题、它基本上是由 DCO 设置时间延迟结束前看门狗计时器(WDT)超时引起的。
为了进行快速测试、您可以禁用 WDT、它应该可以正常工作。 如果您希望在应用程序代码中保持 WDT 运行、则可以尝试对 WDT 进行踢脚(或重置)。 在'emeter-setup.c'文件中,是否可以在"system_setup()函数内的"SetVCore (3)"函数之前添加以下代码行?
KICK 看门狗();//将看门狗计时器精确设置为1 *
请告诉我这是否能解决您的问题。 作为一般反馈、请确保在 EVM430-F6736上组装了 AUX1、AUX2和 AUX3跳线。
此致、
James
MSP 客户应用
您好、Shahul、
很高兴跳线解决了 LCD 问题。
关于 DCOFFG 问题、我想我把它与另一个问题混淆、因为 WDT 复位器件、DCO 设置从未发生。 在 SLAA517E 代码的'emeter-setup.c'文件中、我看不到在配置 DCO 之前和之后、DCOFFG 被轮询和清除的位置。 这是您要添加的代码。
while (SFRIFG1和 OFIFG) { /*检查 OFIFG 故障标志*/ UCSCTL7 &=~(DCOFFG | XT1LFOFFG | XT2OFFG);/*清除 OSC 故障标志* SFRIFG1 &=~OFIFG; /*清除 OFIFG 故障标志*/ }
为了知道应该在哪里添加这个代码、下面是一个类似项目中的更多代码、在这个项目中、我在设置 DCO 之前、然后在 DCO 稳定之后、轮询并清除了 DCOFFG (和其他代码)。
SetVCore (3); UCSCTL5 |= DIVS__1; UCSCTL4 = SELM__DCOCLK | SELESS__DCOCLK | SELA_XT1CLK; /* 25MHz MCLK、25MHz SMCLK、32KHz ACLK */ _bis_SR_register (SCG0); /*禁用 FLL 控制环路*/ UCSCTL6 =(UCSCTL6 | XT1DRIVE_3); /* XT1启动的最高驱动器设置*/ while (SFRIFG1和 OFIFG) { /*检查 OFIFG 故障标志*/ UCSCTL7 &=~(DCOFFG | XT1LFOFFG | XT2OFFG);/*清除 OSC 故障标志* SFRIFG1 &=~OFIFG; /*清除 OFIFG 故障标志*/ } UCSCTL6 =(UCSCTL6 &~(XT1DRIVE_3)); /*将驱动降低至较弱的程度*/ UCSCTL0 = 0; UCSCTL1 = DCORSEL_6; //将 RSELx 设置为 DCO = 25MHz */ UCSCTL2 = FLLD_2 |(192 - 1); //将 DCO 乘法器设置为25MHz */ /*将 FLL 设置为4*192*32768 => 25165824Hz */ _BIC_SR_register (SCG0); /*启用 FLL 控制环路*/ // DCO 范围位已经存在时、DCO 的最坏情况稳定时间 //已更改 n x 32 x 32 x f_MCLK / f_FLL_reference。 请参阅5xx 中的 UCS 一章 // UG 进行优化。 这里、n = 1、因为 FLLREFDIV 为1。 // 32 x 32 x 25 MHz/32、768Hz ~ 780k MCLK 周期、DCO 才能稳定 _DELAY_CYCLES (782000); //循环、直到 XT1、XT2和 DCO 稳定 while (SFRIFG1和 OFIFG) { /*检查 OFIFG 故障标志*/ UCSCTL7 &=~(DCOFFG | XT1LFOFFG | XT2OFFG);/*清除 OSC 故障标志* SFRIFG1 &=~OFIFG; /*清除 OFIFG 故障标志*/ }
我确认在设置 DCO 后 DCOFFG 被清除。 我希望这对您有所帮助!
此致、
James
MSP 客户应用