当前位置:首页 > 单片机 > 单片机
[导读]IAR编译的方法,导致看门狗溢出了。 单片机上电的时候看门狗已经启动, 但是在进入main函数之前,软件会首先去初始化你用到的一些数据,比如数组之类的, 如果你的数组定义的比较大, 那么初始化的时间就会很长,当然

IAR编译的方法,导致看门狗溢出了。 单片机上电的时候看门狗已经启动, 但是在进入main函数之前,软件会首先去初始化你用到的一些数据,比如数组之类的, 如果你的数组定义的比较大, 那么初始化的时间就会很长,当然在这过程中,看门狗的时间就到了,单片机复位,然后在启动,在初始化……,这样循环。

解决方法是,使用低级初始化函数, IAR编译的时候,会自动把低级初始化的函数放在程序的最开始处,这样你可以在低级初始化函数里面先把看门狗关掉, 等低级初始化函数执行完了,才会进行数据初始化的处理,在然后才执行main函数,
详细解决方法参考IAR的这篇文档:http://supp.iar.com/Support/?note=37778&from=search+result

按照IAR的这个方法,如果你觉得添加文件麻烦,实际上最简单的是,自己编写一个 __low_level_init 函数, 就行了, 这个函数不需要你在主函数里面调用, 这个函数会被编译器编译在程序的最开始部分。

下面是我写的一个简单的程序,测试通过,供参考:

#include "msp430f5438.h"
unsigned char buffer0[10240];
void main(void)
{

unsigned int i;

P5SEL |= 0x0C; // Port select XT2
UCSCTL6 &= ~XT2OFF; // Enable XT2
UCSCTL3 |= SELREF_2; // FLLref = REFO
// Since LFXT1 is not used,
// sourcing FLL with LFXT1 can cause
// XT1OFFG flag to set
UCSCTL4 |= SELA_2; // ACLK=REFO,SMCLK=DCO,MCLK=DCO

// Loop until XT1,XT2 & DCO stabilizes
do
{
UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG);
// Clear XT2,XT1,DCO fault flags
SFRIFG1 &= ~OFIFG; // Clear fault flags
}while (SFRIFG1&OFIFG); // Test oscillator fault flag

UCSCTL6 &= ~XT2DRIVE0; // Decrease XT2 Drive according to
// expected frequency
UCSCTL4 |= SELS_5 + SELM_5; // SMCLK=MCLK=XT2

P1DIR |= BIT0; // P1.0 output


for(i=0;i<10240;i++)
{
buffer0[i] = i % 256;
}

while(1)
{

for(i=0;i<10240;i++)
P1OUT = buffer0[i];

}
}


int __low_level_init(void)
{
WDTCTL = WDTPW+WDTHOLD; // Stop WDT
/* Insert your low-level initializations here */

/*
* Return value:
*
* 1 - Perform data segment initialization.
* 0 - Skip data segment initialization.
*/

return 1;
}


如上,如果没有 __low_level_init 这个函数,直接把关闭看门狗的语句写道主函数里面,单片机将永远进入不了main。

当然你也可以把所有的硬件初始化的语句写在这个函数里面,这样硬件将会在单片机复位后第一时间进行初始化。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

‌MSP430电容触摸‌是指使用MSP430微控制器(MCU)实现的电容触摸感应技术。MSP430系列MCU以其低功耗和丰富的外设模块著称,特别适用于电容触摸应用。

关键字: MSP430

在许多领域得到广泛的应用,特别是它的超级低功耗特性,是目前所有其他单片机无法比拟的

关键字: TI公司 MSP430

在微控制器领域,MSP430与STM32无疑是两颗璀璨的明星。它们各自凭借其独特的技术特点和广泛的应用领域,在市场上占据了重要的位置。本文将深入解析MSP430与STM32之间的区别,探讨它们在不同应用场景下的优势和局限...

关键字: MSP430 STM32 单片机

摘 要:为了能通过串口采集电能参数,完成一种基于串口的三相电能采集设备的研制,设计了电能采集设备的硬件和软件部分。其中硬件采用MCU+专用电能计量芯片的结构,结构简单;软件则用于实现输入、输出、三相电能参数的采集和串行通...

关键字: 电能采集 ATT7022B MSP430 串口

点击上方蓝字关注我们!楼宇自动化系统具备多种功能,可在工业和商业环境中提升工作者的舒适度和安全性。通过创新微控制器技术,这些功能可以变得更加智能和经济。TI 推出的MSP430™MCU 可以帮助您在楼宇自动化解决方案中,...

关键字: MCU MSP430 楼宇自动化

点击上方蓝字关注我们!楼宇自动化系统具备多种功能,可在工业和商业环境中提升工作者的舒适度和安全性。通过创新微控制器技术,这些功能可以变得更加智能和经济。TI 推出的MSP430™MCU 可以帮助您在楼宇自动化解决方案中,...

关键字: MCU MSP430 楼宇自动化

点击上方蓝字关注我们!楼宇自动化系统具备多种功能,可在工业和商业环境中提升工作者的舒适度和安全性。通过创新微控制器(MCU)技术,这些功能可以变得更加智能和经济。为设计出更出色的楼宇自动化解决方案,应选择合适的元件来实现...

关键字: MCU MSP430 楼宇自动化

点击上方蓝字关注我们!楼宇自动化系统具备多种功能,可在工业和商业环境中提升工作者的舒适度和安全性。通过创新微控制器(MCU)技术,这些功能可以变得更加智能和经济。为设计出更出色的楼宇自动化解决方案,应选择合适的元件来实现...

关键字: MCU MSP430 楼宇自动化

点击上方蓝字关注我们!让我们试想一下一种可以减少模拟组件数量并缩小电路板尺寸的设计。使用这种设计,您可以针对特定应用定制功能,并针对性能、功耗、尺寸和成本进行优化。现在,一个简单的MSP430™MCU就可以满足上述所有功...

关键字: MCU MSP430

作为光源,无论从发光效率、全彩色,还是寿命,都已取得了辉煌的成果,而且还在不断深化之中。LCD发明以来,背光源在不断地进步,由单色到彩色,由厚到薄,由侧置荧光灯式到平板荧光灯式。

关键字: 3寸TFT MSP430 驱动
关闭