MSP430F5529学习记录
拓展常用宏
Exmsp430f5529.h
/******************************************************************************************************
* 文件名称:Exmsp430f5529.h
* 功能 :在msp430f5529.h文件上拓展一些常用的函数等
******************************************************************************************************/
#ifndef SRC_EXMSP430F5529_H_
#define SRC_EXMSP430F5529_H_
#include <msp430f5529.h>
#include "stdint.h"
#include "stdbool.h"
/***********************************************************************************
* 名 称 :延时宏函数
* CPU_F :系统时钟MCLK的频率
* 功 能 :延时
* 入口参数:x,为延迟时间
* 说 明 :注意CPU_F的配置
* 示 范 :延时1ms === delay_ms(1);
----------------------------------------------------------------------------------*/
#define CPU_F (double)1000000
#define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))
#define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))
#define delay_s(x) __delay_cycles((long)(CPU_F*(double)x))
/***********************************************************************************
*名 称 :enum boolean
*功 能 :通过枚举实现bool变量
----------------------------------------------------------------------------------*/
//typedef enum boolean{false = 0, true}bool;
/***********************************************************************************
*名 称 :下面定义需要的宏
----------------------------------------------------------------------------------*/
#define SortElemType uint16_t //快速排序算法的数据类型
/***********************************************************************************
*名 称 :下面定义需要的函数
----------------------------------------------------------------------------------*/
extern void QuickSort(SortElemType q[], int l, int r); //快速排序算法
extern void Sort(SortElemType q[], int n); //快速排序算法
extern void SetVcoreUp (unsigned int level); //内核电压设置函数
#endif /* SRC_EXMSP430F5529_H_ */
EXmsp430f5529.c文件
#include "Exmsp430f5529.h"
/******************************************************************************************************
* 名 称:SetVcoreUp(),内核电压设置函数
* 功 能:设置内核电压值(与频率设置有关)
* 入口参数:leve:电压阶梯 小于3
* 出口参数:void
* 说 明: 增加Vcore设置到level3以支持fsystem=25MHz
注意:每次只改变一层磁芯电压。
仿真时,这个函数会卡死;使用#if可以解决
* 范 例: SetVcoreUp (0x01);
SetVcoreUp (0x02);
SetVcoreUp (0x03);
******************************************************************************************************/
void SetVcoreUp (unsigned int level)
{
PMMCTL0_H = PMMPW_H;