📄 mb_dkxx.c
字号:
#ifdef MB_DKxx_DEBUG
printf("\r\nDKxx read coil 02: %02X",*value);
#endif
return MB_NO_ERROR;
}
//Get Bit 11 of timer counter var
int mb_dkxx_read_coil_13(unsigned char * value)
{
*value = (unsigned char)((mb_dkxx_var>>11) & 0x01);
#ifdef MB_DKxx_DEBUG
printf("\r\nDKxx read coil 13: %02X",*value);
#endif
return MB_NO_ERROR;
}
//Get Bit 12 of timer counter var
int mb_dkxx_read_coil_14(unsigned char * value)
{
*value = (unsigned char)((mb_dkxx_var>>12) & 0x01);
#ifdef MB_DKxx_DEBUG
printf("\r\nDKxx read coil 14: %02X",*value);
#endif
return MB_NO_ERROR;
}
//******************************************************************************
// Write coil functions
// Input Parameter value 0: OFF else ON
// Return 0: Sucessful,
// else errorcode see modbus.h
//******************************************************************************
int mb_dkxx_write_coil_00(unsigned char value)
{
#ifdef MB_DKxx_DEBUG
printf("\r\nDKxx write coil 00: %02X",value?1:0);
#endif
hal_write_pio (3,value?1:0);
return MB_NO_ERROR;
}
int mb_dkxx_write_coil_01(unsigned char value)
{
#ifdef MB_DKxx_DEBUG
printf("\r\nDKxx write coil 01: %02X",value?1:0);
#endif
hal_write_pio (13,value?1:0);
return MB_NO_ERROR;
}
//Set/Clear Bit 0 of dkxx timer variable
int mb_dkxx_write_coil_02(unsigned char value)
{
#ifdef MB_DKxx_DEBUG
printf("\r\nDKxx write coil 02: %02X",value?1:0);
#endif
if(value)
{
mb_dkxx_var |= 0x0001;
}
else
{
mb_dkxx_var &= (~0x0001);
}
return MB_NO_ERROR;
}
//Set/Clear Bit 1 of dkxx timer variable
int mb_dkxx_write_coil_03(unsigned char value)
{
#ifdef MB_DKxx_DEBUG
printf("\r\nDKxx write coil 03: %02X",value?1:0);
#endif
if(value)
{
mb_dkxx_var |= 0x0002;
}
else
{
mb_dkxx_var &= (~0x0002);
}
return MB_NO_ERROR;
}
//Set/Clear Bit 2 of dkxx timer variable
int mb_dkxx_write_coil_04(unsigned char value)
{
#ifdef MB_DKxx_DEBUG
printf("\r\nDKxx write coil 04: %02X",value?1:0);
#endif
if(value)
{
mb_dkxx_var |= 0x0004;
}
else
{
mb_dkxx_var &= (~0x0004);
}
return MB_NO_ERROR;
}
//Set/Clear Bit 3 of dkxx timer variable
int mb_dkxx_write_coil_05(unsigned char value)
{
#ifdef MB_DKxx_DEBUG
printf("\r\nDKxx write coil 05: %02X",value?1:0);
#endif
if(value)
{
mb_dkxx_var |= 0x0008;
}
else
{
mb_dkxx_var &= (~0x0008);
}
return MB_NO_ERROR;
}
//Set/Clear Bit 4 of dkxx timer variable
int mb_dkxx_write_coil_06(unsigned char value)
{
#ifdef MB_DKxx_DEBUG
printf("\r\nDKxx write coil 06: %02X",value?1:0);
#endif
if(value)
{
mb_dkxx_var |= 0x0010;
}
else
{
mb_dkxx_var &= (~0x0010);
}
return MB_NO_ERROR;
}
//Set/Clear Bit 5 of dkxx timer variable
int mb_dkxx_write_coil_07(unsigned char value)
{
#ifdef MB_DKxx_DEBUG
printf("\r\nDKxx write coil 07: %02X",value?1:0);
#endif
if(value)
{
mb_dkxx_var |= 0x0020;
}
else
{
mb_dkxx_var &= (~0x0020);
}
return MB_NO_ERROR;
}
//Set/Clear Bit 6 of dkxx timer variable
int mb_dkxx_write_coil_08(unsigned char value)
{
#ifdef MB_DKxx_DEBUG
printf("\r\nDKxx write coil 08: %02X",value?1:0);
#endif
if(value)
{
mb_dkxx_var |= 0x0040;
}
else
{
mb_dkxx_var &= (~0x0040);
}
return MB_NO_ERROR;
}
//Set/Clear Bit 7 of dkxx timer variable
int mb_dkxx_write_coil_09(unsigned char value)
{
#ifdef MB_DKxx_DEBUG
printf("\r\nDKxx write coil 09: %02X",value?1:0);
#endif
if(value)
{
mb_dkxx_var |= 0x0080;
}
else
{
mb_dkxx_var &= (~0x0080);
}
return MB_NO_ERROR;
}
//Set/Clear Bit 8 of dkxx timer variable
int mb_dkxx_write_coil_10(unsigned char value)
{
#ifdef MB_DKxx_DEBUG
printf("\r\nDKxx write coil 10: %02X",value?1:0);
#endif
if(value)
{
mb_dkxx_var |= 0x0100;
}
else
{
mb_dkxx_var &= (~0x0100);
}
return MB_NO_ERROR;
}
//Set/Clear Bit 9 of dkxx timer variable
int mb_dkxx_write_coil_11(unsigned char value)
{
#ifdef MB_DKxx_DEBUG
printf("\r\nDKxx write coil 11: %02X",value?1:0);
#endif
if(value)
{
mb_dkxx_var |= 0x0200;
}
else
{
mb_dkxx_var &= (~0x0200);
}
return MB_NO_ERROR;
}
//Set/Clear Bit 10 of dkxx timer variable
int mb_dkxx_write_coil_12(unsigned char value)
{
#ifdef MB_DKxx_DEBUG
printf("\r\nDKxx write coil 12: %02X",value?1:0);
#endif
if(value)
{
mb_dkxx_var |= 0x0400;
}
else
{
mb_dkxx_var &= (~0x0400);
}
return MB_NO_ERROR;
}
//Set/Clear Bit 11 of dkxx timer variable
int mb_dkxx_write_coil_13(unsigned char value)
{
#ifdef MB_DKxx_DEBUG
printf("\r\nDKxx write coil 13: %02X",value?1:0);
#endif
if(value)
{
mb_dkxx_var |= 0x0800;
}
else
{
mb_dkxx_var &= (~0x0800);
}
return MB_NO_ERROR;
}
//Set/Clear Bit 12 of dkxx timer variable
int mb_dkxx_write_coil_14(unsigned char value)
{
#ifdef MB_DKxx_DEBUG
printf("\r\nDKxx write coil 14: %02X",value?1:0);
#endif
if(value)
{
mb_dkxx_var |= 0x1000;
}
else
{
mb_dkxx_var &= (~0x1000);
}
return MB_NO_ERROR;
}
//******************************************************************************
// Read holding register functions
// Return 0: Sucessful, value contains register value
// else errorcode see modbus.h
//******************************************************************************
int mb_dkxx_read_register_00(unsigned int * value)
{
*value = (unsigned int)inportb(IO_ADDR);
#ifdef MB_DKxx_DEBUG
printf("\r\nDKxx Read reg 01: %04X",*value);
#endif
return MB_NO_ERROR;
}
int mb_dkxx_read_register_01(unsigned int * value)
{
*value = mb_dkxx_var;
#ifdef MB_DKxx_DEBUG
printf("\r\nDKxx Read reg 01: %04X",*value);
#endif
return MB_NO_ERROR;
}
int mb_dkxx_read_register_02(unsigned int * value)
{
*value = mb_dkxx_timercnt;
#ifdef MB_DKxx_DEBUG
printf("\r\nDKxx Read reg 02: %04X",*value);
#endif
return MB_NO_ERROR;
}
int mb_dkxx_read_register_03(unsigned int * value)
{
*value = mb_dkxx_timercnt_2;
#ifdef MB_DKxx_DEBUG
printf("\r\nDKxx Read reg 03: %04X",*value);
#endif
return MB_NO_ERROR;
}
//******************************************************************************
// Write register functions
// Return 0: Sucessful, value contains register value
// else errorcode see modbus.h
//******************************************************************************
int mb_dkxx_write_register_00(unsigned int value)
{
#ifdef MB_DKxx_DEBUG
printf("\r\nDKxx write reg 00: %04X",value);
#endif
if(value>0xFF)
{
return MB_ILL_DATA_VAL;
}
outportb(IO_ADDR,(unsigned char)value);
return MB_NO_ERROR;
}
int mb_dkxx_write_register_01(unsigned int value)
{
#ifdef MB_DKxx_DEBUG
printf("\r\nDKxx write reg 01: %04X",value);
#endif
mb_dkxx_var=value;
return MB_NO_ERROR;
}
int mb_dkxx_write_register_02(unsigned int value)
{
#ifdef MB_DKxx_DEBUG
printf("\r\nDKxx write reg 02: %04X",value);
#endif
mb_dkxx_timercnt=value;
return MB_NO_ERROR;
}
int mb_dkxx_write_register_03(unsigned int value)
{
#ifdef MB_DKxx_DEBUG
printf("\r\nDKxx write reg 03: %04X",value);
#endif
mb_dkxx_timercnt_2=value;
return MB_NO_ERROR;
}
//******************************************************************************
// Read input register functions
// Return 0: Sucessful, value contains register value
// else errorcode see modbus.h
//******************************************************************************
int mb_dkxx_read_inp_register_00(unsigned int * value)
{
*value = (unsigned int)inportb(IO_ADDR);
#ifdef MB_DKxx_DEBUG
printf("\r\nDKxx Read input reg 00: %04X",*value);
#endif
return MB_NO_ERROR;
}
int mb_dkxx_read_inp_register_01(unsigned int * value)
{
*value = mb_dkxx_var;
#ifdef MB_DKxx_DEBUG
printf("\r\nDKxx Read input reg 01: %04X",*value);
#endif
return MB_NO_ERROR;
}
int mb_dkxx_read_inp_register_02(unsigned int * value)
{
*value = mb_dkxx_timercnt;
#ifdef MB_DKxx_DEBUG
printf("\r\nDKxx Read input reg 02: %04X",*value);
#endif
return MB_NO_ERROR;
}
//******************************************************************************
//end of file
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -