📄 ap_tw2835.c
字号:
WriteAsicByte(DVC_PG1,0x59,_t1_); //...
WriteAsicByte(DVC_PG1,0x5a,BIT7|_t1_); //...
}
#endif
//------------------------------------------------------------------------------------------------
/*initPG2*/
//------------------------------------------------------------------------------------------------
InitOSDCol();
WriteAsicByte(DVC_PG2,0x0f,0x08);
Ap_MotionDetectOSDAreaSetingOFF();
Ap_MotionDetectOSDAreaSetingOFF();
WriteAsicByte(DVC_PG2,0x10,0xf0);
//... other ( mouse, single box, 2d box, mask ..)
WriteAsicTable(DVC_PG2,0x10,tbl_pg2_mse_box,80);
WriteAsicTable(DVC_PG2,0x60,tbl_ntsc_pg2_2dbox,32);
for(_t1_=0;_t1_<4;_t1_++) {
WriteAsicTable(DVC_PG2,0x80+0x20*_t1_,tbl_ntsc_pg2_mtn1,32);
}
//------------------------------------------------------------------------------------------------
//-- IRQENA register setting(Interrupt)
//------------------------------------------------------------------------------------------------
#if 1
WriteAsicByte(DVC_PG1,0x76,0x82);// 0x82
WriteAsicByte(DVC_PG1,0x77,0x00);
WriteAsicByte(DVC_PG1,0x78,0x00);
WriteAsicByte(DVC_PG1,0x79,0x0f);
WriteAsicByte(DVC_PG1,0x7a,0x00);
WriteAsicByte(DVC_PG1,0x7b,0x00);
WriteAsicByte(DVC_PG1,0x76,0x02);
#endif
//------------------------------------------------------------------------------------------------
//-- Motion detect quality setting
//------------------------------------------------------------------------------------------------
for(_t1_=0;_t1_<4;_t1_++){
WriteAsicByte(DVC_PG0,0x0d+0x10*_t1_,0x00);
WriteAsicByte(DVC_PG2,0x80+0x20*_t1_,0x00);
WriteAsicByte(DVC_PG2,0x81+0x20*_t1_,0x00);
WriteAsicByte(DVC_PG2,0x82+0x20*_t1_,0x80);
WriteAsicByte(DVC_PG2,0x83+0x20*_t1_,0x00);
WriteAsicByte(DVC_PG2,0x84+0x20*_t1_,0x07);
WriteAsicByte(DVC_PG2,0x85+0x20*_t1_,0xf4);
}
//WriteAsicByte(DVC_PG1,0xa2,0x98);//BECK TEST
_channel = 17;
_sel_channel = 5;
//------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------
#if 0
while(1){
if(P1_6 == 0) {
_channel_set = 0;
_t1_ = Ap_getTriggerchannel(_channel_set);
if(_t1_ == TRUE) {
_t4_ = *_channel_set;
if(_t4_ == 0x01) {_t4_ = 1;}
else if(_t4_ == 0x02) {_t4_ = 2;}
else if(_t4_ == 0x04) {_t4_ = 3;}
else if(_t4_ == 0x08) {_t4_ = 4;}
Ap_channel_select(_t4_);
_timer_delay = 0;
//_timer_delay2 = 0;
//while(1){if(_timer_delay2 == 3)break;}
//_t1_ = Ap_channel_select(5);
}
}
if(P2_6 == 0){
Ap_MotionDetectOSDAreaSetingInit();
for(_t4_ = 1 ; _t4_ < 37 ; _t4_++) {
_t1_ = (_t4_-1)/8;
_t2_ = (_t4_-1)%8;
switch(_t1_){
case 0: _t3_ = md_byte_1; break;
case 1: _t3_ = md_byte_2; break;
case 2: _t3_ = md_byte_3; break;
case 3: _t3_ = md_byte_4; break;
case 4: _t3_ = md_byte_5; break;
}
switch(_t2_){
case 0: _osd_md_flag = _t3_ & 0x01; break;
case 1: _osd_md_flag = (_t3_>>1) & 0x01; break;
case 2: _osd_md_flag = (_t3_>>2) & 0x01; break;
case 3: _osd_md_flag = (_t3_>>3) & 0x01; break;
case 4: _osd_md_flag = (_t3_>>4) & 0x01; break;
case 5: _osd_md_flag = (_t3_>>5) & 0x01; break;
case 6: _osd_md_flag = (_t3_>>6) & 0x01; break;
case 7: _osd_md_flag = (_t3_>>7) & 0x01; break;
}
if(_osd_md_flag == 0){Ap_Draw_Index(_t4_,TRUE);}
}
_osd_flag=FALSE;
_timer_osd_sel = 0;
while(1) {
if(_timer_osd_sel <= 3){
_timer_osd_sel = 0;
Ap_Draw_Index(_channel,_osd_flag);
_osd_flag = ~_osd_flag;
}
if(P2_1 == 0) {
_channel++;
if( _channel == 37){_channel=36;}
else {
_t1_ = (_channel-2)/8;
_t2_ = (_channel-2)%8;
switch(_t1_){
case 0: _t3_ = md_byte_1; break;
case 1: _t3_ = md_byte_2; break;
case 2: _t3_ = md_byte_3; break;
case 3: _t3_ = md_byte_4; break;
case 4: _t3_ = md_byte_5; break;
}
switch(_t2_){
case 0: _osd_md_flag = _t3_ & 0x01; break;
case 1: _osd_md_flag = (_t3_>>1) & 0x01; break;
case 2: _osd_md_flag = (_t3_>>2) & 0x01; break;
case 3: _osd_md_flag = (_t3_>>3) & 0x01; break;
case 4: _osd_md_flag = (_t3_>>4) & 0x01; break;
case 5: _osd_md_flag = (_t3_>>5) & 0x01; break;
case 6: _osd_md_flag = (_t3_>>6) & 0x01; break;
case 7: _osd_md_flag = (_t3_>>7) & 0x01; break;
}
if(_osd_md_flag == 0){Ap_Draw_Index(_channel-1,TRUE);}
else {Ap_Draw_Index(_channel-1,FAIL);}
}
//_timer_delay2 = 0;
//while(1){if(_timer_delay2 == 1)break;}
}
if(P2_2 == 0) {
if( _channel != 1){_channel--;}
_t1_ = (_channel)/8;
_t2_ = (_channel)%8;
switch(_t1_){
case 0: _t3_ = md_byte_1; break;
case 1: _t3_ = md_byte_2; break;
case 2: _t3_ = md_byte_3; break;
case 3: _t3_ = md_byte_4; break;
case 4: _t3_ = md_byte_5; break;
}
switch(_t2_){
case 0: _osd_md_flag = _t3_ & 0x01; break;
case 1: _osd_md_flag = (_t3_>>1) & 0x01; break;
case 2: _osd_md_flag = (_t3_>>2) & 0x01; break;
case 3: _osd_md_flag = (_t3_>>3) & 0x01; break;
case 4: _osd_md_flag = (_t3_>>4) & 0x01; break;
case 5: _osd_md_flag = (_t3_>>5) & 0x01; break;
case 6: _osd_md_flag = (_t3_>>6) & 0x01; break;
case 7: _osd_md_flag = (_t3_>>7) & 0x01; break;
}
if(_osd_md_flag == 0){Ap_Draw_Index(_channel+1,TRUE);}
else {Ap_Draw_Index(_channel+1,FAIL);}
//_timer_delay2 = 0;
//while(1){if(_timer_delay2 == 1)break;}
}
if(P2_3 == 0){
_t1_ = (_channel-1)/8;
_t2_ = (_channel-1)%8;
switch(_t1_){
case 0: _t3_ = md_byte_1; break;
case 1: _t3_ = md_byte_2; break;
case 2: _t3_ = md_byte_3; break;
case 3: _t3_ = md_byte_4; break;
case 4: _t3_ = md_byte_5; break;
}
switch(_t2_){
case 0: _t3_ &= 0xfe; break;
case 1: _t3_ &= 0xfd; break;
case 2: _t3_ &= 0xfb; break;
case 3: _t3_ &= 0xf7; break;
case 4: _t3_ &= 0xef; break;
case 5: _t3_ &= 0xdf; break;
case 6: _t3_ &= 0xbf; break;
case 7: _t3_ &= 0x7f; break;
}
switch(_t1_){
case 0: md_byte_1 = _t3_; break;
case 1: md_byte_2 = _t3_; break;
case 2: md_byte_3 = _t3_; break;
case 3: md_byte_4 = _t3_; break;
case 4: md_byte_5 = _t3_; break;
}
//_timer_delay2 = 0;
//while(1){if(_timer_delay2 == 1)break;}
}
if(P2_4 == 0){
_t1_ = (_channel-1)/8;
_t2_ = (_channel-1)%8;
switch(_t1_){
case 0: _t3_ = md_byte_1; break;
case 1: _t3_ = md_byte_2; break;
case 2: _t3_ = md_byte_3; break;
case 3: _t3_ = md_byte_4; break;
case 4: _t3_ = md_byte_5; break;
}
switch(_t2_){
case 0: _t3_ |= 0x01; break;
case 1: _t3_ |= 0x02; break;
case 2: _t3_ |= 0x04; break;
case 3: _t3_ |= 0x08; break;
case 4: _t3_ |= 0x10; break;
case 5: _t3_ |= 0x20; break;
case 6: _t3_ |= 0x40; break;
case 7: _t3_ |= 0x80; break;
}
switch(_t1_){
case 0: md_byte_1 = _t3_; break;
case 1: md_byte_2 = _t3_; break;
case 2: md_byte_3 = _t3_; break;
case 3: md_byte_4 = _t3_; break;
case 4: md_byte_5 = _t3_; break;
}
//_timer_delay2 = 0;
//while(1){if(_timer_delay2 == 1)break;}
}
if(P2_5 == 0){
for(_t4_ = 1 ; _t4_ < 37 ; _t4_++) {
_t1_ = (_t4_-1)/8;
_t2_ = (_t4_-1)%8;
switch(_t1_){
case 0: _t3_ = md_byte_1; break;
case 1: _t3_ = md_byte_2; break;
case 2: _t3_ = md_byte_3; break;
case 3: _t3_ = md_byte_4; break;
case 4: _t3_ = md_byte_5; break;
}
switch(_t2_){
case 0: _osd_md_flag = _t3_ & 0x01; break;
case 1: _osd_md_flag = (_t3_>>1) & 0x01; break;
case 2: _osd_md_flag = (_t3_>>2) & 0x01; break;
case 3: _osd_md_flag = (_t3_>>3) & 0x01; break;
case 4: _osd_md_flag = (_t3_>>4) & 0x01; break;
case 5: _osd_md_flag = (_t3_>>5) & 0x01; break;
case 6: _osd_md_flag = (_t3_>>6) & 0x01; break;
case 7: _osd_md_flag = (_t3_>>7) & 0x01; break;
}
if(_osd_md_flag == 0){Ap_Motion_Set(_t4_,TRUE);}
else {Ap_Motion_Set(_t4_,FAIL);}
}
Ap_MotionDetectOSDAreaSetingOFF();
Ap_MotionDetectOSDAreaSetingOFF();
break;
}
}
}
//------------------------------------------------------------------------------------------------
if(P2_3 == 0) {
_sel_channel++;
if(_sel_channel == 6) {_sel_channel = 1;}
Ap_channel_select(_sel_channel);
_timer_delay = 0;
_timer_delay2 = 0;
while(1){
if(_timer_delay2 == 1)break;
}
}
if(P2_4 == 0) {
for(_t4_ = 1 ; _t4_ < 37 ; _t4_++) {
_t1_ = (_t4_-1)/8;
_t2_ = (_t4_-1)%8;
switch(_t1_){
case 0: _t3_ = md_byte_1; break;
case 1: _t3_ = md_byte_2; break;
case 2: _t3_ = md_byte_3; break;
case 3: _t3_ = md_byte_4; break;
case 4: _t3_ = md_byte_5; break;
}
switch(_t2_){
case 0: _osd_md_flag = _t3_ & 0x01; break;
case 1: _osd_md_flag = (_t3_>>1) & 0x01; break;
case 2: _osd_md_flag = (_t3_>>2) & 0x01; break;
case 3: _osd_md_flag = (_t3_>>3) & 0x01; break;
case 4: _osd_md_flag = (_t3_>>4) & 0x01; break;
case 5: _osd_md_flag = (_t3_>>5) & 0x01; break;
case 6: _osd_md_flag = (_t3_>>6) & 0x01; break;
case 7: _osd_md_flag = (_t3_>>7) & 0x01; break;
}
if(_osd_md_flag == 0){Ap_Draw_Index(_t4_,TRUE);}
}
//_timer_delay2 = 0;
//while(1){if(_timer_delay2 == 1)break;}
}
if(P2_5 == 0) {
Ap_MotionDetectOSDAreaSetingOFF();
Ap_MotionDetectOSDAreaSetingOFF();
//_timer_delay2 = 0;
//while(1){if(_timer_delay2 == 1)break;}
}
}
#endif
}
void key_13(void)
{
unsigned char _read_value_=0,kk=0;
ReadAsicByte(DVC_PG1,0x5f,(unsigned char *)&_read_value_);
kk=0;
}
void key_12(void)//clear trigger by read data
{
// while(1){
// if(P1_6 == 0) {
_channel_set = 0;
_t1_ = Ap_getTriggerchannel(_channel_set);
if(_t1_ == TRUE) {
_t4_ = *_channel_set;
if(_t4_ == 0x01) {_t4_ = 1;}
else if(_t4_ == 0x02) {_t4_ = 2;}
else if(_t4_ == 0x04) {_t4_ = 3;}
else if(_t4_ == 0x08) {_t4_ = 4;}
//Ap_channel_select(_t4_);
}
// }
}
void key_2(void)//trigger by interrupt from motion detect
{
// while(1){
// if(P1_6 == 0) {
_channel_set = 0;
_t1_ = Ap_getTriggerchannel(_channel_set);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -