?? 8254_a.c
字號(hào):
#include "8254_A.h"
#include "Delay_T0.h"
/*
06.05.13完成了計(jì)數(shù)器的工作,開始擴(kuò)展兩片
計(jì)數(shù)器采用ReadBack命令,
CLK0----10M
,65536*0.1US
CLK1----OUT0中間接74ls04反相器
373鎖存
A0 Q0
A1 Q1
CS_A Q2
CS_B Q3
要做的有以下工作
*/
#define C0_A XBYTE[0x08]
#define C1_A XBYTE[0x09]
#define C2_A XBYTE[0x0A]
#define CW_A XBYTE[0x0B]
extern tWord idata Buff_8254_A[3];
extern tByte idata Status_8254_A[3];
tByte Get8254_DATA_A(tByte xdata *p0)
{
tByte Rst;
Rst =*p0;
return Rst;
}
// 讀取狀態(tài),計(jì)數(shù)值,
void GetAll_A(void)
{
tByte high,low;
EA=0;
CW_A=0XC8;
Status_8254_A[2]=Get8254_DATA_A(&C2_A);
low =Get8254_DATA_A(&C2_A);
high =Get8254_DATA_A(&C2_A);
Buff_8254_A[2] =high*0x100+low;
CW_A=0XC4;
Status_8254_A[1]=Get8254_DATA_A(&C1_A);
low =Get8254_DATA_A(&C1_A);
high =Get8254_DATA_A(&C1_A);
Buff_8254_A[1] =high*0x100+low;
CW_A=0XC2;
Status_8254_A[0]=Get8254_DATA_A(&C0_A);
low =Get8254_DATA_A(&C0_A);
high =Get8254_DATA_A(&C0_A);
Buff_8254_A[0] =high*0x100+low;
EA=1;
}
void Init_8254_A(void)
{
CW_A=0X34;
CW_A=0X74;
CW_A=0XB4;
C0_A=0X00;
C1_A=0XFF;
C2_A=0X00;
C0_A=0X00;
C1_A=0XFF;
C2_A=0X00;
}
tLong Get_A(void)
{
tLong Rst;
GetAll_A();
_nop_();
// Init_8254_A();
if(Status_8254_A[1]==0xF4)//C1無(wú)效。
Rst=0x10000-Buff_8254_A[0];
if(Status_8254_A[1]==0xB4)//C1有效。
Rst=(0XFFFF-Buff_8254_A[1])*0X10000+0X10000-Buff_8254_A[0]+0x10000;
return Rst;
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -