⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cpp

📁 MSP430之裸奔框架C++程序源码
💻 CPP
字号:
/*------------------------------------------------------------------------
                  MSP430之裸奔框架C++程序源码(菜农C++裸奔大法)
本程序主要表现了C++多文件系统的MCU构建方法,任何支持C++的MCU/ARM/DSP都可用
此法构建。
特别要注意变量的重复定义问题:
	  最好每个C/CPP文件包含与自己同名的H头文件,在其H头文件中再包含一个中间
起桥梁作用的H头文件,我一般喜欢main.h
    变量或函数要在C/CPP中定义,绝对不要在H头文件中定义!
但一定要在H头文件中用extern加变量或函数声明。
    C++中要切记全局的类的构造函数肯定要在main()前运行,对于IAR编译器有个
__low_level_init()函数也会在main()前运行,它主要控制所有变量或类的初始化
    一般类的成员函数是不能作为中断服务程序ISR()的,但Cortex-M3确是一个意外
总之中断程序要用__interrupt修饰的ISR()的,其类成员函数不能为ISR()
    最好用一个单独的文件interrupt.cpp来编写所有中断服务程序ISR(),可能其
H头文件什么都没有也最好加上。
    每个头文件的构成结构基本如下:
#ifndef _SYSTEM_BUILD
#pragma system_include
#endif
#endif
//上面的是IAR特有的
#ifndef __MSP430_INTERRUPT_H
#define __MSP430_INTERRUPT_H

#ifdef __cplusplus
extern "C"
{
#endif
//在此添加C++代码
#ifdef __cplusplus
}
#endif

#endif//__MSP430_INTERRUPT_H
    
"桥梁"H头文件要包含所有用到的H头文件!!!否则"桥梁"倒塌~~~

菜农HotPower@126.com   2008.6.14 2:05 作于特殊的节日来奉贤给大家~~~
-------------------------------------------------------------------------*/
#include "main.h"

__no_init volatile unsigned int RamTest;
extern "C" __root char __low_level_init (void)
{
    __disable_interrupt ();//关闭总中断
    WDTCTL = WDTPW + WDTHOLD;//停止看门狗WDT,不使用内部看门狗定时器。
    System.Init ();//初始化函数
    Timer.Init ();//初始化函数
    return 0;//0-不初始化,1-初始化
}

SystemObj System;//不自动调用构造函数
TimerObj  Timer;//自动调用构造函数

int main(void)
{
    RamTest = 0x55aa;
    __enable_interrupt ();//开中断
    while (1)
    {
//        __low_power_mode_1(); //进入LPM1模式
        __no_operation();
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -