📄 dio.c
字号:
#include "LF2407.h"
#include "ioports.h"
/******根据CPLD得译码,DI_CSL地址为0xxx xxxx xxx0 1010,即IO空间0x000A
DI_CSH地址为0xxx xxxx xxx0 1011,即IO空间0x000B
DO_CSL地址为0xxx xxxx xxx0 1100,即IO空间0x000C
DO_CSH地址为0xxx xxxx xxx0 1101,即IO空间0x000D
*********************************************************************/
static int DOL_State=0;
static int DOH_State=0;
static int DIL_State=0;/*****初始状态为0*****/
static int DIH_State=0;
int testbit;
int testresult=0;
/************************************/
void DI_Read(int LowHigh,int Port_Num) /***LowHigh=1为低16位,0为高8位**************/
{
if(LowHigh==1)
{
inport(DILS,&DIL_State);
if(tstbit(DIL_State,Port_Num))
testbit=101;
}
else
{
inport(0x000B, &DIH_State);
tstbit(DIH_State,Port_Num);
}
}
void DO_Write(int LowHigh,int Port_Num,int SetClr) /***LowHigh=1,为低16位,LowHigh=0为高8位,Port_Num为端口号,SetClr=1,为置位1,=0为清零***/
{
if(LowHigh==1) /******读入低16位状态,与DOValue按位相与相或***********/
{
if(SetClr==1) setbit(DOL_State,Port_Num);
else clrbit(DOL_State,Port_Num);
outport(0x000C,DOL_State);
}
else
{
if(SetClr==1) setbit(DOH_State,Port_Num);
else clrbit(DOH_State,Port_Num);
outport(0x000D,DOH_State);
}
}
main()
{
int i;
asm(" setc SXM"); //抑制符号位扩展
asm(" clrc OVM"); //清楚累加器溢出位
asm(" clrc CNF"); //将B0配置为数据空间
*SCSR1=0X83FF; //×2模式,主频30MHz
*IMR=0X0000; //禁止所有中断
*IFR=0XFFFF; //清除所有中断标志
WSGR=0x00; //禁止所有等待状态
*WDCR=0X0E8;
while(1)
{
// DI_Read(1,3); //测试DI
inport(0x0001,&testresult);//测试手脉清计数
// inport(0x0000,&testresult);//测试编码器计数清零
// inport(0x0004,&testresult); //测试U51_Code3_Rd
// outport(0x0005,&testresult); //测试U51_PIO_WrState,ok,写信号
// outport(0x0006,&testresult); //测试U51_PIO_WrData,ok,写信号
// inport(0x0007,&testresult); //测试U51_PIO_RDState
// inport(0x0008,&testresult); //测试U51_PIO_RdData
// inport(0x0009,&testresult); //测试U53_Hand_Rd
// inport(0x000A,&testresult); //测试U53_DI_CsL
// inport(0x000B,&testresult); //测试U53_DI_CsH
// outport(0x000D,&testresult); //测试U53_DO_CsH
// DO_Write(1,2,1); //测试DO,写第17位
}
}
void interrupt nothing()
{
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -