📄 prtcl.c
字号:
HALE = 1;
HALE = 0;
MDATA = _wdat;
HWRB = 0;
HWRB = 1;
// P1 = 0xf6; //... chip select all off
P1 = 0xf6; //... initial state
// P2 = 0x03; //... chip select all off
#if defined(__4CH__)
HCSB0=1;
HCSB1=1;
#elif defined(__16CH__)
// P2 = _dvc;
P2 |= _dvc;
#endif
MDATA = 0xff;
#if defined(__EN_ISR__)
EA = 1;
#endif
// }
}
//==================================================================================
void WriteAsicByte(U8 _dvc, U8 _pg, U8 _addr, U8 _wdat)
{
// U8 _t1_;
// if(_pg == DVC_PG0){
// WriteI2CByte(0x28,_addr,_wdat);
// }
// else{
#if defined(__EN_ISR__)
EA = 0;
#endif
// HCSB0=1;
// HCSB1=1;
P1 = 0xf6; //... initial state
// //... P[7:4]:INT[5:2], P1_3:HALE, P1_2:HRDB, P1_1:HWRB, P1_0:HSPB
#if defined(__4CH__)
_dvc = 0; //... temporal
if(_pg == DVC_PG0){ HCSB1=0; HCSB0=0;}
else if(_pg == DVC_PG1){ HCSB1=0; HCSB0=1;}
else if(_pg == DVC_PG2){ HCSB1=1; HCSB0=0;}
#elif defined(__16CH__)
if(_pg == DVC_PG0) P2 = _dvc^0xff;
else if(_pg == DVC_PG1) P2 = (_dvc^0xff)|0x55;
else if(_pg == DVC_PG2) P2 = (_dvc^0xff)|0xaa;
#endif
MDATA = _addr;
HALE = 1;
HALE = 0;
MDATA = _wdat;
HWRB = 0;
HWRB = 1;
// P1 = 0xf6; //... chip select all off
P1 = 0xf6; //... initial state
// P2 = 0x03; //... chip select all off
#if defined(__4CH__)
HCSB0=1;
HCSB1=1;
#elif defined(__16CH__)
// P2 = _dvc;
P2 |= _dvc;
#endif
MDATA = 0xff;
#if defined(__EN_ISR__)
EA = 1;
#endif
// }
}
//==================================================================================
void WriteAsicTable(U8 _dvc, U8 _pg, U8 _addr, U8 code *_tbl_ptr, U8 _tbl_cnt)
{
U8 _t1_;
// if(_pg == DVC_PG0){
// WriteI2CTable(0x28,_addr,_tbl_ptr,_tbl_cnt);
// }
// else{
#if defined(__EN_ISR__)
EA = 0;
#endif
// HCSB0=1;
// HCSB1=1;
P1 = 0xf6; //... initial state
// //... P[7:4]:INT[5:2], P1_3:HALE, P1_2:HRDB, P1_1:HWRB, P1_0:HSPB
#if defined(__4CH__)
_dvc = 0; //... temporal
if(_pg == DVC_PG0){ HCSB1=0; HCSB0=0;}
else if(_pg == DVC_PG1){ HCSB1=0; HCSB0=1;}
else if(_pg == DVC_PG2){ HCSB1=1; HCSB0=0;}
#elif defined(__16CH__)
if(_pg == DVC_PG0) P2 = _dvc^0xff;
else if(_pg == DVC_PG1) P2 = (_dvc^0xff)|0x55;
else if(_pg == DVC_PG2) P2 = (_dvc^0xff)|0xaa;
#endif
for(_t1_=0;_t1_<_tbl_cnt;_t1_++)
{
MDATA = _addr+_t1_;
HALE = 1;
HALE = 0;
MDATA = *_tbl_ptr;
HWRB = 0;
HWRB = 1;
_tbl_ptr++;
}
// P1 = 0xf6; //... chip select all off
P1 = 0xf6; //... initial state
// P2 = 0x03; //... chip select all off
#if defined(__4CH__)
HCSB0=1;
HCSB1=1;
#elif defined(__16CH__)
// P2 = _dvc;
P2 |= _dvc;
#endif
MDATA = 0xff;
#if defined(__EN_ISR__)
EA = 1;
#endif
// }
}
//==================================================================================
/*
void WriteAsicByte(U8 dvc, U8 page_cs, U8 wadd, U8 wdata)
{
// U8 t1;
// if(page_cs == PAGE0){
// WriteI2CByte(0x28,wadd,wdata);
// }
// else{
EA = 0;
HSPB = 0; //... parallel interface
// for(t1=0;t1<100;t1++);
if(page_cs == DVC_PG0) ChipSelPage0();
else if(page_cs == DVC_PG1) ChipSelPage1();
else if(page_cs == DVC_PG2) ChipSelPage2();
HWRB = 1;
HRDB = 1;
HALE = 0;
MDATA = wadd;
HALE = 1;
HALE = 0;
MDATA = wdata;
HWRB = 0;
HWRB = 1;
ChipSelAllOff();
MDATA = 0xff;
EA = 1;
// }
}
//==================================================================================
void WriteAsicTable(U8 dvc, U8 page_cs, U8 wadd, U8 code *tbl_ptr, U8 tbl_cntr)
{
U8 i;
U8 _dly_;
// if(page_cs == PAGE0){
// WriteI2CTable(0x28,wadd,tbl_ptr,tbl_cntr);
// }
// else{
EA = 0;
HSPB = 0; //... parallel interface
if(page_cs == DVC_PG0) ChipSelPage0();
else if(page_cs == DVC_PG1) ChipSelPage1();
else if(page_cs == DVC_PG2) ChipSelPage2();
HWRB = 1;
HRDB = 1;
HALE = 0;
// MDATA = wadd;
// HALE = 1;
// HALE = 0;
for(i=0;i<tbl_cntr;i++)
{
// WriteAsicByte(dvc,page_cs,wadd+i,*tbl_ptr);
MDATA = wadd+i;
HALE = 1;
HALE = 0;
MDATA = *tbl_ptr;
//DLY_FOR(10);
HWRB = 0;
HWRB = 1;
tbl_ptr++;
}
ChipSelAllOff();
MDATA = 0xff;
EA = 1;
// }
}
// */
//==================================================================================
/*
void WriteAsicTablePair(U8 _dvc, U8 _pg, U8 code *_tbl_ptr, U8 _tbl_cnt_pair)
{
U8 _t1_;
// if(_pg == DVC_PG0){
// WriteI2CTable(0x28,_addr,_tbl_ptr,_tbl_cnt);
// }
// else{
#if defined(__EN_ISR__)
EA = 0;
#endif
_dvc = 0; //... temporal
//... P1_7:HPSB_M, P1_6:HCSB1, P1_5:HPSB_D, P1_4:HCSB0, P1_3:HALE, P1_2:HRDB, P1_1:HWRB, P1_0:HSPB
if(_pg == DVC_PG0) P1 = 0xc6;
else if(_pg == DVC_PG1) P1 = 0x76;
else if(_pg == DVC_PG2) P1 = 0xb6;
for(_t1_=0;_t1_<_tbl_cnt_pair;_t1_++)
{
MDATA = *_tbl_ptr;
HALE = 1;
HALE = 0;
_tbl_ptr++;
MDATA = *_tbl_ptr;
HWRB = 0;
HWRB = 1;
_tbl_ptr++;
}
// ChipSelAllOff();
// HCSB1 = 1;
// HPSB_M = 1;
//
// HCSB0 = 1;
// HPSB_D = 1;
P1 = 0xf6; //... chip select all off
MDATA = 0xff;
#if defined(__EN_ISR__)
EA = 1;
#endif
// }
}
// */
//==================================================================================
U8 ReadAsicByte(U8 _dvc, U8 _pg, U8 _addr)
{
U8 _rdat_;
//U8 _dly_;
// if(_pg == DVC_PG0){
// _rdat_ = ReadI2CByte(0x28,_addr);
// }
// else{
#if defined(__EN_ISR__)
EA = 0;
#endif
// HCSB0=1;
// HCSB1=1;
P1 = 0xf6; //... initial state
// //... P[7:4]:INT[5:2], P1_3:HALE, P1_2:HRDB, P1_1:HWRB, P1_0:HSPB
#if defined(__4CH__)
_dvc = 0; //... temporal
if(_pg == DVC_PG0){ HCSB1=0; HCSB0=0;}
else if(_pg == DVC_PG1){ HCSB1=0; HCSB0=1;}
else if(_pg == DVC_PG2){ HCSB1=1; HCSB0=0;}
#elif defined(__16CH__)
if(_pg == DVC_PG0) P2 = _dvc^0xff;
else if(_pg == DVC_PG1) P2 = (_dvc^0xff)|0x55;
else if(_pg == DVC_PG2) P2 = (_dvc^0xff)|0xaa;
#endif
MDATA = _addr;
HALE = 1;
HALE = 0;
MDATA = 0xff; // port0(MDATA) input mode
HRDB = 0;
_rdat_ = MDATA;
//DLY_FOR(30);
HRDB = 1;
// P1 = 0xf6; //... chip select all off
P1 = 0xf6; //... initial state
// P2 = 0x03; //... chip select all off
#if defined(__4CH__)
HCSB0=1;
HCSB1=1;
#elif defined(__16CH__)
// P2 = _dvc;
P2 |= _dvc;
#endif
#if defined(__EN_ISR__)
EA = 1;
#endif
// }
return _rdat_;
}
//==================================================================================
/*
U8 ReadAsicByte(U8 dvc, U8 page_cs, U8 radd)
{
U8 read_data;
// if(page_cs == PAGE0){
// read_data = ReadI2CByte(0x28,radd);
// }
// else{
EA = 0;
HSPB = 0; //... parallel interface
if(page_cs == DVC_PG0) ChipSelPage0();
else if(page_cs == DVC_PG1) ChipSelPage1();
else if(page_cs == DVC_PG2) ChipSelPage2();
HWRB = 1;
HRDB = 1;
HALE = 0;
MDATA = radd;
HALE = 1;
HALE = 0;
MDATA = 0xff; // port0(MDATA) input mode
HRDB = 0;
read_data = MDATA;
HRDB = 1;
ChipSelAllOff();
EA = 1;
// }
return read_data;
}
// */
//==================================================================================
//==================================================================================
// //... HALE->0, HSPB->0, HRDB->1, HWRB->1 and HCSB control for DVC_PG2
// if(_pg == DVC_PG0) rGPDDAT = 0x300|(_dvc^0xff);
// else if(_pg == DVC_PG1) rGPDDAT = 0x300|((_dvc^0xff)|0x55);
// else if(_pg == DVC_PG2) rGPDDAT = 0x300|((_dvc^0xff)|0xaa);
//==================================================================================
//==================================================================================
//==================================================================================
/*
U8 ReadAsicFld(void)
{
U8 _rdat_;
// if(_pg == DVC_PG0){
// _rdat_ = ReadI2CByte(0x28,_addr);
// }
// else{
#if defined(__EN_ISR__)
EA = 0;
#endif
//... P1_7:HPSB_M, P1_6:HCSB1, P1_5:HPSB_D, P1_4:HCSB0, P1_3:HALE, P1_2:HRDB, P1_1:HWRB, P1_0:HSPB
// if(_pg == DVC_PG0) P1 = 0xc6;
// else if(_pg == DVC_PG1) P1 = 0x76;
// else if(_pg == DVC_PG2) P1 = 0xb6;
P1 = 0x76;
MDATA = 0xab;
HALE = 1;
HALE = 0;
MDATA = 0xff; // port0(MDATA) input mode
HRDB = 0;
_rdat_ = MDATA;
HRDB = 1;
// ChipSelAllOff();
// HCSB1 = 1;
// HPSB_M = 1;
//
// HCSB0 = 1;
// HPSB_D = 1;
P1 = 0xf6; //... chip select all off
#if defined(__EN_ISR__)
EA = 1;
#endif
// }
return _rdat_;
}
// */
//==================================================================================
//*
U8 ReadAsicOSDMemWr(U8 _dvc)//void)
{
U8 _rdat_;
// if(_pg == DVC_PG0){
// _rdat_ = ReadI2CByte(0x28,_addr);
// }
// else{
#if defined(__EN_ISR__)
EA = 0;
#endif
// HCSB0=1;
// HCSB1=1;
P1 = 0xf6; //... initial state
// //... P[7:4]:INT[5:2], P1_3:HALE, P1_2:HRDB, P1_1:HWRB, P1_0:HSPB
#if defined(__4CH__)
_dvc = 0; //... temporal
HCSB0=0;
HCSB1=1;
#elif defined(__16CH__)
P2 = (_dvc^0xff)|0xaa;
#endif
MDATA = 0x0a;
HALE = 1;
HALE = 0;
MDATA = 0xff; // port0(MDATA) input mode
HRDB = 0;
_rdat_ = MDATA;
HRDB = 1;
// P1 = 0xf6; //... chip select all off
P1 = 0xf6; //... initial state
// P2 = 0x03; //... chip select all off
#if defined(__4CH__)
HCSB0=1;
HCSB1=1;
#elif defined(__16CH__)
// P2 = _dvc;
P2 |= _dvc;
#endif
#if defined(__EN_ISR__)
EA = 1;
#endif
// }
return _rdat_;
}
// */
//==================================================================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -