?? capature._c
字號:
//***************FileName:Capature.C***************//
//***************ICCAVR V6.30編譯*****************//
#include <io8535v.h>
#define uchar unsigned char
#define uint unsigned int
//數(shù)碼管字型表,對應0,1,2,3,4,5,6,7,8,9//
uchar Table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar Data[4]={0,0,0,0}; //顯示初始值:0 0 0 0
uint CNT1,CNT2,CNT; //定義捕獲值
void DelayMs(uint i) //Ms級延時,參數(shù)i為延時時間
{uint j;
for(;i!=0;i--)
{for(j=8000;j!=0;j--) {;}}
}
void Display(uchar *p) //動態(tài)顯示函數(shù),參數(shù)p為待顯示的數(shù)組名
{uchar i,sel=0x01;
for(i=0;i<4;i++)
{PORTC=sel; //選通最右邊的數(shù)碼管
PORTA=Table[p[i]]; //送字型碼
DelayMs(2); //顯示延時
sel=sel<<1; //移位以顯示前一位
}
}
//計數(shù)值處理函數(shù)。參數(shù)i:捕獲時間差;參數(shù)p:處理數(shù)據(jù)存放的數(shù)組名//
//功能:此函數(shù)用于將計數(shù)值拆分為BCD碼的千,百,十,一數(shù)據(jù),用于查表顯示//
void Process(uint i,uchar *p)
{p[0]=i/1000;
i=i%1000;
p[1]=i/100;
i=i%100;
p[2]=i/10;
i=i%10;
p[3]=i;
}
void Init_IO(void) //初始化I/O口
{DDRA=0xff; //設置A口為推挽1輸出
PORTA=0xff;
DDRC=0xff; //設置C口為推挽1輸出
PORTC=0xff;
DDRD=0x00; //設置D口為不帶上拉電阻輸入
PORTD=0x00;
}
void Init_Timer1(void) //初始化T/C1的輸入捕獲中斷
{TIMSK=TIMSK|0x20; //輸入捕獲使能
TCCR1B=0x82; //輸入捕獲噪音清除使能,下降沿捕獲,時鐘8分頻1uS計數(shù)一次。
TIFR=0x00; //清中斷標志
SREG=SREG|0x80; //全局中斷開
}
void main(void)
{Init_IO(); //初始化I/O口
PORTA=0xff; //點亮以測試所有的數(shù)碼管
PORTC=0x00;
Init_Timer1();
DelayMs(3000); //延時
PORTC=0xff; //熄滅所有的數(shù)碼管
while(1)
{Process(CNT,Data); //計數(shù)值處理
Display(Data); //動態(tài)掃描顯示
}
}
#pragma interrupt_handler Capture:6
void Capture(void)
{CNT2=CNT2+ICR1L; //CNT2存放當前捕獲值
CNT2=(CNT2<<8)+ICR1H;
CNT=CNT2-CNT1; //CNT1存放上次捕獲值
CNT1=CNT2; //CNT存放兩次時間差
}
[Compiler Options]
Edit1=C:\icc\include\
Edit2=C:\icc\lib\
Edit8=
CheckBox1=0
CheckBox2=1
Edit3=
Edit4=
Edit11=16
Edit13=
ComboBox1=0
Edit9=8192
Edit10=512
ComboBox2=13
RadioGroup1=0
Edit15=
CheckBox6=0
Edit12=0x11
CheckBox7=0
CheckBox8=1
RadioGroup2=0
Edit5=
Edit6=
ComboBox3=-1
Edit14=
Edit17=
Edit7=
CheckBox3=0
Edit16=
Edit18=0x60
CheckBox4=0
RadioGroup4=4
ComboBox5=-1
ComboBox6=-1
CheckBox10=0
ComboBox8=-1
CheckBox5=0
RadioGroup5=0
ComboBox4=0
CheckBox9=0
Edit19=
Edit20=512
ChangeState=0
Edit21=0
AVROptionVersion=7
Edit23=
CheckBox13=0
Edit24=6.30
Edit25=
RadioGroup3=0
ComboBox10=0
ComboBox9=0
RadioGroup6=0
Edit26=5
RadioGroup7=0
CheckBox15=0
Edit27=
CheckBox17=0
CheckBox18=0
RadioGroup8=2
CheckBox11=0
Edit22=0.0x1FFFF
CheckBox12=0
CheckBox14=1
SalvoRadioGroup=6
RadioGroup9=0
SalvoPathEdit=
CheckBox16=0
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -