[MCU] MSP430常用程序架构

[复制链接]
 楼主| decoding 发表于 2019-5-20 20:29 | 显示全部楼层 |阅读模式
一、低功耗+中断

主函数
{
关闭看门狗
设置系统时钟
显示等外围设备初始化
定时器等内部资源初始化设置
开全局中断
进入低功耗
}
中断函数1
{};
中断函数2
{}


文件组织形式
main.c
  1. /***************************头文件引用*******************************/

  2. #include "msp430f149.h"

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

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

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

  6. #define YEAR   TimeBuff[0]

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

  8. /*************************************************************

  9. 函数名称:Sys_Init

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

  11. 显示,定时器A初始化)

  12. 参    数:无

  13. 返 回 值:无

  14. *************************************************************/

  15. int main(void)

  16. {

  17.   Sys_Init();

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

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

  20. }

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

  22. __interrupt void ta0_isr(void)

  23. {};
设备文件1(例如ILI9325_Drive.c)
  1. /*********************头文件引用************************************/

  2. #include "msp430f149.h"

  3. #include "ILI9325_Driver.h"

  4. #include "Disp_Lib.h"

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

  6. #define ILI9325_CTRL_DIR               P4DIR

  7. #define ILI9325_CTRL_SEL               P4SEL

  8. 函数1()

  9. {};

  10. 函数2()

  11. {};
设备文件1头文件(例如ILI9325_Drive.h)
  1. #ifndef _ILI9325_DRIVER_H_防止重复调用

  2. #define _ILI9325_DRIVER_H_

  3. /*********************宏定义************************************/

  4. #define CYAN           0x7FFF//青色

  5. #define YELLOW         0xFFE0

  6. #define TEST           0xFF55

  7. /*********************函数申明************************************/

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

  9. extern void LCD_ClearScreen(unsigned long bColor);

  10. #endif
二、循环+低功耗+中断中唤醒
主函数
{
关闭看门狗
设置系统时钟
显示等外围设备初始化
定时器等内部资源初始化设置
开全局中断
While(1)
{
       进入低功耗
       函数;
}
}
中断函数1
{
       中断服务函数;
       退出低功耗模式;
};

三、菜单按键交互模式

while(1)
{
扫描按键;
键值处理函数;
}
键值处理函数
{
    swich(键值)
case ……
显示刷新
}

千岁寒 发表于 2019-5-22 11:36 | 显示全部楼层
430 资源多,上个RTOS也是可以的。
characteristic 发表于 2019-5-22 20:35 | 显示全部楼层
千岁寒 发表于 2019-5-22 11:36
430 资源多,上个RTOS也是可以的。

430跑系统还是有点吃力吧
千岁寒 发表于 2019-5-23 09:45 | 显示全部楼层
characteristic 发表于 2019-5-22 20:35
430跑系统还是有点吃力吧

之前在学校见过,应该是ucos .
您需要登录后才可以回帖 登录 | 注册

本版积分规则

30

主题

469

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

30

主题

469

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部