?? myprogdlg.cpp
字號:
check[2]->SetCheck(1);
check[3]->SetCheck(1);
break;
case 3:
check[12]->SetCheck(0);
check[0]->SetCheck(0);
check[1]->SetCheck(0);
check[2]->SetCheck(1);
check[3]->SetCheck(1);
break;
case 4:
check[12]->SetCheck(0);
check[0]->SetCheck(1);
check[1]->SetCheck(1);
check[2]->SetCheck(0);
check[3]->SetCheck(1);
break;
case 5:
check[0]->SetCheck(0);
check[1]->SetCheck(1);
check[2]->SetCheck(0);
check[3]->SetCheck(1);
break;
case 6:
check[0]->SetCheck(1);
check[1]->SetCheck(0);
check[2]->SetCheck(0);
check[3]->SetCheck(1);
break;
case 7:
check[0]->SetCheck(0);
check[1]->SetCheck(0);
check[2]->SetCheck(0);
check[3]->SetCheck(1);
break;
case 8:
check[0]->SetCheck(1);
check[1]->SetCheck(1);
check[2]->SetCheck(1);
check[3]->SetCheck(0);
break;
case 9:
check[0]->SetCheck(0);
check[1]->SetCheck(1);
check[2]->SetCheck(1);
check[3]->SetCheck(0);
break;
case 10:
//check[0]->SetCheck(1);
check[1]->SetCheck(0);
check[2]->SetCheck(1);
check[3]->SetCheck(0);
break;
case 11:
//check[0]->SetCheck(1);
check[1]->SetCheck(1);
check[2]->SetCheck(0);
check[3]->SetCheck(0);
break;
case 12:
//check[0]->SetCheck(1);
check[1]->SetCheck(0);
check[2]->SetCheck(0);
check[3]->SetCheck(0);
break;
case 13:
check[12]->SetCheck(1);
check[1]->SetCheck(0);
check[2]->SetCheck(0);
check[3]->SetCheck(0);
break;
case 14:
//check[0]->SetCheck(1);
check[1]->SetCheck(0);
check[2]->SetCheck(1);
check[3]->SetCheck(0);
break;
case 15:
//check[0]->SetCheck(1);
check[1]->SetCheck(1);
check[2]->SetCheck(0);
check[3]->SetCheck(0);
break;
case 16:
//check[0]->SetCheck(1);
check[1]->SetCheck(0);
check[2]->SetCheck(0);
check[3]->SetCheck(0);
break;
case 17:
check[12]->SetCheck(1);
check[1]->SetCheck(0);
check[2]->SetCheck(0);
check[3]->SetCheck(0);
break;
default:
check[0]->SetCheck(0);
check[1]->SetCheck(1);
check[2]->SetCheck(1);
check[3]->SetCheck(1);
break;
}
/*
fuse2Combo->0("啟動:BOD使能");
fuse2Combo->1("啟動:電源快速上升");
fuse2Combo->2("啟動:電源緩慢上升");
fuse2Combo->3("啟動:電源快速上升或BOD使能(外部RC或低頻晶振)");
fuse2Combo->4("啟動:啟動時頻率已經穩定(外部低頻晶振)");
fuse2Combo->SetCurSel(2);
*/
switch(fuse2Combo->GetCurSel())
{
case 0:
if( fuse1Combo->GetCurSel() <= 8 )
{
check[5]->SetCheck(1);
check[4]->SetCheck(1);
}
else if( fuse1Combo->GetCurSel() == 9 )
{
check[5]->SetCheck(1);
check[4]->SetCheck(1);
}
else if( fuse1Combo->GetCurSel() <= 13 )
{
check[0]->SetCheck(1);
check[5]->SetCheck(0);
check[4]->SetCheck(1);
}
else
{
check[0]->SetCheck(0);
check[5]->SetCheck(1);
check[4]->SetCheck(0);
}
break;
case 1:
if( fuse1Combo->GetCurSel() <= 8 )
{
check[5]->SetCheck(1);
check[4]->SetCheck(0);
}
else if( fuse1Combo->GetCurSel() == 9 )
{
check[5]->SetCheck(1);
check[4]->SetCheck(1);
}
else if( fuse1Combo->GetCurSel() <= 13 )
{
check[0]->SetCheck(1);
check[5]->SetCheck(0);
check[4]->SetCheck(0);
}
else
{
check[0]->SetCheck(0);
check[5]->SetCheck(0);
check[4]->SetCheck(1);
}
break;
case 2:
if( fuse1Combo->GetCurSel() <= 8 )
{
check[5]->SetCheck(0);
check[4]->SetCheck(1);
}
else if( fuse1Combo->GetCurSel() == 9 )
{
check[5]->SetCheck(1);
check[4]->SetCheck(0);
}
else if( fuse1Combo->GetCurSel() <= 13 )
{
check[0]->SetCheck(0);
check[5]->SetCheck(1);
check[4]->SetCheck(1);
}
else
{
check[0]->SetCheck(0);
check[5]->SetCheck(0);
check[4]->SetCheck(0);
}
break;
case 3:
if( fuse1Combo->GetCurSel() >= 5 && fuse1Combo->GetCurSel() <= 8 )
{
check[5]->SetCheck(0);
check[4]->SetCheck(0);
}
else if( fuse1Combo->GetCurSel() == 9 )
{
check[5]->SetCheck(1);
check[4]->SetCheck(1);
}
break;
case 4:
if( fuse1Combo->GetCurSel() == 9 )
{
check[5]->SetCheck(0);
check[4]->SetCheck(1);
}
break;
default:
break;
}
/*
fuse3Combo->0("無BOD功能");
fuse3Combo->1("BOD使能2.7V");
fuse3Combo->2("BOD使能4.0V");
fuse3Combo->SetCurSel(1);
*/
switch(fuse3Combo->GetCurSel())
{
case 0:
check[6]->SetCheck(0);
break;
case 1:
check[7]->SetCheck(1);
check[6]->SetCheck(1);
break;
case 2:
check[7]->SetCheck(0);
check[6]->SetCheck(1);
break;
default:
break;
}
/*
fuse4Combo->0("BOOT塊 1024 Words");
fuse4Combo->1("BOOT塊 512 Words");
fuse4Combo->2("BOOT塊 256 Words");
fuse4Combo->3("BOOT塊 128 Words");
fuse4Combo->SetCurSel(0);
*/
switch(fuse4Combo->GetCurSel())
{
case 0:
check[10]->SetCheck(1);
check[9]->SetCheck(1);
break;
case 1:
check[10]->SetCheck(1);
check[9]->SetCheck(0);
break;
case 2:
check[10]->SetCheck(0);
check[9]->SetCheck(1);
break;
case 3:
check[10]->SetCheck(0);
check[9]->SetCheck(0);
break;
default:
break;
}
}
}
//根據鎖定位判斷鎖定狀態
void CMYPROGDlg::GetLock()
{
bitmap *p=avrp.device.getLockMap();
if(p->ucCompatible == LockCompatibleIsAT89C51)
{
switch(avrp.device.LockBits & 0x07)
{
case 0:
lock1Combo->SetCurSel(0);
break;
case 1:
lock1Combo->SetCurSel(1);
break;
case 2:
lockb[0 ]->SetCheck(1);
case 3:
lock1Combo->SetCurSel(2);
break;
case 4:
//lockb[0 ]->SetCheck(1);
case 5:
lockb[1 ]->SetCheck(1);
case 6:
lockb[0 ]->SetCheck(1);
case 7:
lock1Combo->SetCurSel(3);
break;
default:
lock1Combo->SetCurSel(0);
break;
}
ResultLock();
}
if(p->ucCompatible == LockCompatibleIsAT90S1200)
{
switch(avrp.device.LockBits & 0x03)
{
case 3:
lock1Combo->SetCurSel(0);
break;
case 2:
lock1Combo->SetCurSel(1);
break;
case 1:
lock1Combo->SetCurSel(3);
break;
case 0:
lock1Combo->SetCurSel(2);
break;
default:
break;
}
}
if(p->ucCompatible == LockCompatibleIsATmeaga16)
{
switch(avrp.device.LockBits & 0x03)
{
case 3:
lock1Combo->SetCurSel(0);
break;
case 2:
lock1Combo->SetCurSel(1);
break;
case 1:
lock1Combo->SetCurSel(3);
break;
case 0:
lock1Combo->SetCurSel(2);
break;
default:
break;
}
switch((avrp.device.LockBits>>2) & 0x03)
{
case 3:
lock2Combo->SetCurSel(0);
break;
case 2:
lock2Combo->SetCurSel(1);
break;
case 0:
lock2Combo->SetCurSel(2);
break;
case 1:
lock2Combo->SetCurSel(3);
break;
default:
break;
}
switch((avrp.device.LockBits>>4) & 0x03)
{
case 3:
lock3Combo->SetCurSel(0);
break;
case 2:
lock3Combo->SetCurSel(1);
break;
case 0:
lock3Combo->SetCurSel(2);
break;
case 1:
lock3Combo->SetCurSel(3);
break;
default:
break;
}
}
}
//根據熔絲位判斷熔絲功能
void CMYPROGDlg::GetFuse()
{
/*
0 ("外部時鐘");
1 ("內部RC振蕩器,1MHz");
2 ("內部RC振蕩器,2MHz");
3 ("內部RC振蕩器,4MHz");
4 ("內部RC振蕩器,8MHz");
5 ("外部RC振蕩器,0-0.9MHz");
6 ("外部RC振蕩器,0.9MHz-3.0MHz");
7 ("外部RC振蕩器,3.0MHz-8.0MHz");
8 ("外部RC振蕩器,8.0MHz-12.0MHz");
9 ("外部低頻晶振(如:32.768KHz)");
10("陶瓷諧振器,低頻:0.4MHz-0.9MHz");
11("陶瓷諧振器,中頻:0.9MHz-3.0MHz");
12("陶瓷諧振器,高頻:3.0MHz-8.0MHz");
13("陶瓷諧振器,高頻:1.0MHz-16.0MHz");
14("石英振蕩器,低頻:0.4MHz-0.9MHz(不適用)");
15("石英振蕩器,中頻:0.9MHz-3.0MHz");
16("石英振蕩器,高頻:3.0MHz-8.0MHz");
17("石英振蕩器,高頻:1.0MHz-16.0MHz");
fuse1Combo->SetCurSel(1);
*/
/*
fuse2Combo->AddString("啟動:BOD使能");
fuse2Combo->AddString("啟動:電源快速上升");
fuse2Combo->AddString("啟動:電源緩慢上升");
fuse2Combo->AddString("啟動:電源快速上升或BOD使能(外部RC或低頻晶振)");
fuse2Combo->AddString("啟動:啟動時頻率已經穩定(外部低頻晶振)");
fuse2Combo->SetCurSel(2);
*/
bitmap *p=avrp.device.getFuseMap();
if(p->ucCompatible == FuseCompatibleIsATmeaga16)
{
if((avrp.device.FuseBits & 0x0f) <9)
{
switch(avrp.device.FuseBits & 0x0f)
{
case 0 :fuse1Combo->SetCurSel(0 );break;
case 1 :fuse1Combo->SetCurSel(1 );break;
case 2 :fuse1Combo->SetCurSel(2 );break;
case 3 :fuse1Combo->SetCurSel(3 );break;
case 4 :fuse1Combo->SetCurSel(4 );break;
case 5 :fuse1Combo->SetCurSel(5 );break;
case 6 :fuse1Combo->SetCurSel(6 );break;
case 7 :fuse1Combo->SetCurSel(7 );break;
case 8 :fuse1Combo->SetCurSel(8 );break;
default:
break;
}
switch(((avrp.device.FuseBits>>4) & 0x03))
{
case 0 :fuse2Combo->SetCurSel(0 );break;
case 1 :fuse2Combo->SetCurSel(1 );break;
case 2 :fuse2Combo->SetCurSel(2 );break;
case 3 :
if(5<=(avrp.device.FuseBits & 0x0f) )
fuse1Combo->SetCurSel(3 );
else fuse1Combo->SetCurSel(5 );
break;
default:
break;
}
}
else if((avrp.device.FuseBits & 0x0f) == 9)
{
fuse1Combo->SetCurSel(9 );
switch(((avrp.device.FuseBits>>4) & 0x03))
{
case 0 :fuse2Combo->SetCurSel(3 );break;
case 1 :fuse2Combo->SetCurSel(2 );break;
case 2 :fuse2Combo->SetCurSel(4 );break;
case 3 :fuse2Combo->SetCurSel(5 );break;
default:
break;
}
}
else
{
bool IsCrystal = false;
switch(((avrp.device.FuseBits>>4) & 0x03))
{
case 0 :
if(avrp.device.FuseBits & 0x01)
{
fuse2Combo->SetCurSel(2 );
IsCrystal = false;
}
else
{
fuse2Combo->SetCurSel(1 );
IsCrystal = false;
}
break;
case 1 :
if(avrp.device.FuseBits & 0x01)
{
fuse2Combo->SetCurSel(0 );
IsCrystal = true;
}
else
{
fuse2Combo->SetCurSel(2 );
IsCrystal = false;
}
break;
case 2 :
if(avrp.device.FuseBits & 0x01)
{
fuse2Combo->SetCurSel(1 );
IsCrystal = true;
}
else
{
fuse2Combo->SetCurSel(0 );
IsCrystal = false;
}
break;
case 3 :
if(avrp.device.FuseBits & 0x01)
{
fuse2Combo->SetCurSel(2 );
IsCrystal = true;
}
else
{
fuse2Combo->SetCurSel(1 );
IsCrystal = false;
}
break;
default:
break;
}
switch(((avrp.device.FuseBits>>1) & 0x07))
{
case 5:
if(IsCrystal)fuse1Combo->SetCurSel(14);
else fuse1Combo->SetCurSel(10 );
case 6:
if(IsCrystal)fuse1Combo->SetCurSel(15 );
else fuse1Combo->SetCurSel(11 );
case 7:
if(IsCrystal)
{
if(((avrp.device.FuseBits>>12) & 0x01))fuse1Combo->SetCurSel(16 );
else fuse1Combo->SetCurSel(17 );
}
else
{
if(((avrp.device.FuseBits>>12) & 0x01))fuse1Combo->SetCurSel(12 );
else fuse1Combo->SetCurSel(13 );
}
default:break;
}
}
/*
fuse2Combo->AddString("啟動:BOD使能");
fuse2Combo->AddString("啟動:電源快速上升");
fuse2Combo->AddString("啟動:電源緩慢上升");
fuse2Combo->AddString("啟動:電源快速上升或BOD使能(外部RC或低頻晶振)");
fuse2Combo->AddString("啟動:啟動時頻率已經穩定(外部低頻晶振)");
fuse2Combo->SetCurSel(2);
*/
switch((avrp.device.FuseBits>>6) & 0x03)
{
case 0:fuse3Combo->SetCurSel(1 );break;
case 2:fuse3Combo->SetCurSel(2 );break;
case 1:fuse3Combo->SetCurSel(0 );break;
case 3:fuse3Combo->SetCurSel(0 );break;
default:
break;
}
/*
fuse3Combo->AddString("無BOD功能");
fuse3Combo->AddString("BOD使能2.7V");
fuse3Combo->AddString("BOD使能4.0V");
fuse3Combo->SetCurSel(1);
*/
switch((avrp.device.FuseBits>>9) & 0x03)
{
case 0:fuse4Combo->SetCurSel(0 );break;
case 1:fuse4Combo->SetCurSel(1 );break;
case 2:fuse4Combo->SetCurSel(2 );break;
case 3:fuse4Combo->SetCurSel(3 );break;
default:
break;
}
/*
fuse4Combo->AddString("BOOT塊 1024 Words");
fuse4Combo->AddString("BOOT塊 512 Words");
fuse4Combo->AddString("BOOT塊 256 Words");
fuse4Combo->AddString("BOOT塊 128 Words");
fuse4Combo->SetCurSel(0);
*/
}
}
void CMYPROGDlg::OnCheckL0(){ResultLock();GetLock();}
void CMYPROGDlg::OnCheckL1(){ResultLock();GetLock();}
void CMYPROGDlg::OnCheckL2(){ResultLock();GetLock();}
void CMYPROGDlg::OnCheckL3(){ResultLock();GetLock();}
void CMYPROGDlg::OnCheckL4(){ResultLock();GetLock();}
void CMYPROGDlg::OnCheckL5(){ResultLock();GetLock();}
void CMYPROGDlg::OnCheckL6(){ResultLock();GetLock();}
void CMYPROGDlg::OnCheckL7(){ResultLock();GetLock();}
void CMYPROGDlg::OnSelchangeComboLock1() {SetLock();ResultLock();}
void CMYPROGDlg::OnSelchangeComboLock2() {SetLock();ResultLock();}
void CMYPROGDlg::OnSelchangeComboLock3() {SetLock();ResultLock();}
//熔絲位更改后,計算熔絲數據,更改功能
void CMYPROGDlg::OnCheck0(){ResultFuse();GetFuse();}
void CMYPROGDlg::OnCheck1(){ResultFuse();GetFuse();}
void CMYPROGDlg::OnCheck2(){ResultFuse();GetFuse();}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -