MSP430常用程序架构

一、低功耗+中断

主函数

{

关闭看门狗

设置系统时钟

显示等外围设备初始化

定时器等内部资源初始化设置

开全局中断

进入低功耗

}

中断函数1

{};

中断函数2

{}

文件组织形式

main.c

/***************************头文件引用*******************************/

#include
"msp430f149.h"

设备文件1头文件(例如#include
"ILI9325_Driver.h"

设备文件2头文件(例如#include
"Disp_Lib.h"

/*********************宏定义与数据定义*************************************/

#define YEAR TimeBuff[0]

unsigned
char TimeBuff[7]={11,6,27,8,35,0,7};

/*************************************************************

函数名称:Sys_Init

功 能:设置系统时钟,内部资源和外设初始化。(例如完成TFT初始化

显示,定时器A初始化)

参 数:无

返 回 值:无

************************************************************
*/

int main(void)

{

Sys_Init();

_EINT();
//使能全局中断

LPM3;
//进入睡眠模式,等待被唤醒

}

#pragma vector = TIMERA0_VECTOR //CCR0中断服务

__interrupt
void ta0_isr(void)

{};

设备文件1(例如ILI9325_Drive.c)

/*********************头文件引用************************************/

#include
"msp430f149.h"

#include
"ILI9325_Driver.h"

#include
"Disp_Lib.h"

/*********************定义接口信息************************************/

#define ILI9325_CTRL_DIR P4DIR

#define ILI9325_CTRL_SEL P4SEL

函数1()

{};

函数2()

{};

设备文件1头文件(例如ILI9325_Drive.h)

#ifndef _ILI9325_DRIVER_H_防止重复调用

#define _ILI9325_DRIVER_H_

/*********************宏定义************************************/

#define CYAN 0x7FFF//青色

#define YELLOW 0xFFE0

#define TEST 0xFF55

/*********************函数申明************************************/

extern void LCD_DispOnePixel(unsigned int xAddr,unsigned int yAddr,unsigned long color);

extern void LCD_ClearScreen(unsigned long bColor);

#endif

二、循环+低功耗+中断中唤醒

主函数

{

关闭看门狗

设置系统时钟

显示等外围设备初始化

定时器等内部资源初始化设置

开全局中断

While(
1)

{

进入低功耗

函数;

}

}

中断函数1

{

中断服务函数;

退出低功耗模式;

};

三、菜单按键交互模式

while1

{

扫描按键;

键值处理函数;

}

键值处理函数

{

swich(键值)

case ……

显示刷新

}
原文地址:https://www.cnblogs.com/yuesheng/p/2100362.html