資源簡介
使用msp430f5529測量高電平時間,本程序測量為50hz高電平時間,如要測高頻,可以更改定時器時鐘

代碼片段和文件信息
#include
unsigned?int?k=0;
unsigned?int?LastCCR1;
unsigned?int?dat[20];
void?TimeGetInit();
void?main()
{
TimeGetInit();
_EINT();
while(1)
{
}
}
void?TimeGetInit()
{
P1DIR&=~BIT4;
P1SEL|=BIT4;
TA0CTL=TASSEL_1+ID_0+MC_2+TACLR;
TA0CCTL3=CM_1+SCS+CAP+CCIE+CCIS_0;
}
#pragma?vector=TIMER0_A1_VECTOR
__interrupt?void?TIMER0_A1_ISR(void)
{
_DINT();
static?unsigned?char?times=1;
static?unsigned?char?i=0;
unsigned?char?j;
unsigned?int?t;
if(times==1)
{
LastCCR1=TA0CCR3; //記錄下上次CCR3的值
TA0CCTL3&=~CM_1; //清上升沿捕獲
TA0CCTL3|=CM_2; //改為下降沿捕獲
times++;
}
if(times==0)
{
if(i<20) //把采集到的20次的值都放到數(shù)組中
{
dat[i]=TA0CCR3-LastCCR1;
TA0CCR3=0;
i++;
}
if(i>=20) //為了防止誤差,排序把采集到的兩頭兩尾的值去掉,取中間的平均值
{
for(i=0;i<20;i++)
{
for(j=0;j<20-i;j++)
{
if(dat[j]>dat[j+1])
{
t=dat[j];
dat[j]=dat[j+1];
dat[j+1]=t;
}
}
}
t=0;
for(i=7;i<12;i++)
{
t=t+dat[i];
}
k=t/5;
i=0;
}
TA0CCTL3&=~CM_2; //清除下降沿觸發(fā)
TA0CCTL3|=CM_1; //變?yōu)樯仙赜|發(fā)
times++; //改變times的值
}
times?&=?0x01; //times>1時清0
TA0CCTL3&=~CCIFG; //清除中斷響應(yīng)標志
_EINT(); //開中斷
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????????677??2019-03-08?20:25??.ccsproject
?????文件???????31124??2019-03-24?14:49??.cproject
?????目錄???????????0??2019-03-24?15:02??.launches\
?????文件????????4780??2019-03-26?17:08??.launches\MSP430F55xx_gaodianping_02.c.launch
?????文件?????????858??2019-03-24?14:49??.project
?????目錄???????????0??2019-03-22?15:49??.settings\
?????文件??????????62??2019-03-08?20:25??.settings\org.eclipse.cdt.codan.core.prefs
?????文件?????????123??2019-03-08?20:25??.settings\org.eclipse.cdt.debug.core.prefs
?????文件?????????208??2019-03-22?15:49??.settings\org.eclipse.core.resources.prefs
?????目錄???????????0??2019-03-26?17:10??Debug\
?????文件??????????73??2019-03-26?17:10??Debug\ccsObjs.opt
?????文件????????4501??2019-03-26?17:10??Debug\makefile
?????文件???????73705??2019-03-26?17:10??Debug\MSP430F55xx_gaodianping_02.c.map
?????文件???????55624??2019-03-26?17:10??Debug\MSP430F55xx_gaodianping_02.c.out
?????文件??????227102??2019-03-26?17:10??Debug\MSP430F55xx_gaodianping_02.c_li
?????文件???????73854??2019-03-22?16:02??Debug\MSP430F55xx_ta0_02.c.map
?????文件??????229168??2019-03-22?16:02??Debug\MSP430F55xx_ta0_02.c_li
?????文件?????????713??2019-03-26?17:10??Debug\MSP430F55xx_ta0_02.d
?????文件???????10904??2019-03-26?17:10??Debug\MSP430F55xx_ta0_02.obj
?????文件?????????260??2019-03-24?19:28??Debug\ob
?????文件????????2073??2019-03-26?17:10??Debug\sources.mk
?????文件????????1031??2019-03-26?17:10??Debug\subdir_rules.mk
?????文件?????????595??2019-03-26?17:10??Debug\subdir_vars.mk
?????文件???????14573??2019-03-08?20:25??lnk_msp430f5529.cmd
?????文件????????1265??2019-03-26?17:18??MSP430F55xx_ta0_02.c
?????目錄???????????0??2019-03-08?20:25??targetConfigs\
?????文件?????????822??2019-03-08?20:25??targetConfigs\MSP430F5529.ccxm
?????文件?????????806??2019-03-08?20:25??targetConfigs\readme.txt
- 上一篇:基于51單片機電子琴程序
- 下一篇:軟件安全原理.pdf
評論
共有 條評論