一、低功耗+中断
主函数
{
关闭看门狗
设置系统时钟
显示等外围设备初始化
定时器等内部资源初始化设置
开全局中断
进入低功耗
}
中断函数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
{
中断服务函数;
退出低功耗模式;
};
三、菜单按键交互模式
while(1)
{
扫描按键;
键值处理函数;
}
键值处理函数
{
swich(键值)
case ……
显示刷新
}
|