📄 scanif.c
字号:
#include <msp430xw42x.h>
#include "ScanIf.h"
const unsigned char PSM[] =
{
0x00, // 状态 0
0x13, // 状态 1
0x0C, // 状态 2
0x4D, // 状态 3
0x04, // 状态 4
0x01, // 状态 5
0x4C, // 状态 6
0x5B, // 状态 7
0x52, // 状态 8
0x45, // 状态 9
0x08, // 状态 10
0x0D, // 状态 11
0x44, // 状态 12
0x05, // 状态 13
0x5A, // 状态 14
0x09, // 状态 15
0x10, // 状态 16
0x13, // 状态 17
0x4C, // 状态 18
0x5B, // 状态 19
0x44, // 状态 20
0x11, // 状态 21
0x5A, // 状态 22
0x1B, // 状态 23
0x12, // 状态 24
0x53, // 状态 25
0x18, // 状态 26
0x4D, // 状态 27
0x52, // 状态 28
0x45, // 状态 29
0x1A, // 状态 30
0x19 // 状态 31
};
void InitScanIF(void)
{
int i;
//设置SCAN IF 通道
P6SEL |= BIT0;
P6SEL |= BIT1;
//定时状态机初始化
//DAC关闭, CA关闭, 31个SMCLK周期(为两个LC传感器延迟一点个时间)
SIFTSM0 = 0x8800;
//DAC关闭, CA关闭, 1个SIFCLK,激励SIFCH.0
SIFTSM1 = 0x002C;
//DAC关闭, CA关闭, 1个ACLK,SIFCH.0
SIFTSM2 = 0x0424;
//DAC打开, CA打开, 4个SIFCLK,SIFCH.0
SIFTSM3 = 0x1934;
//DAC打开, CA打开, 14个SIFCLK,SIFCH.0
SIFTSM4 = 0x4134;
//DAC打开, CA打开, 14个SIFCLK,SIFCH.0
SIFTSM5 = 0x2174;
//DAC关闭, CA关闭, 1个SIFCLK,激励SIFCH.1
SIFTSM6 = 0x002D;
//DAC关闭, CA关闭, 1个ACLK,SIFCH.1
SIFTSM7 = 0x0425;
//DAC关闭, CA关闭, 1个ACLK,SIFCH.1
SIFTSM8 = 0x1935;
//DAC打开, CA打开, 4个SIFCLK,SIFCH.1
SIFTSM9 = 0x4135;
//DAC打开, CA打开, 4个SIFCLK,SIFCH.1
SIFTSM10 = 0x2175;
//停止
SIFTSM11 = 0x0220;
//初始化SCAN IF接口寄存器
//DAC和比较器由SIFTSMx控制
SIFCTL2 = 0x0140;
//延迟一点时间
for (i = 0;i <= 857;i++) ;
//S1为SIF0OUT,S2为SIF1OUT
SIFCTL3 = 0x4000;
//初始化PSM计数器
SIFCTL4 = 0x33F0;
//SIFCLK由SIFTSMx控制,SIFCLK = 1MHz
SIFCTL5 = 0x0045;
//初始状态矢量
SIFPSMV = (unsigned int) &PSM;
//打开SCAN IF,中断使能
SIFCTL1 |= 0x1001;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -