⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mcutools.cpp

📁 MCUTool.exe 源代码 !!!超级单片机开发工具!!! 单片机开发过程中用到的多功能工具
💻 CPP
📖 第 1 页 / 共 5 页
字号:
                  }
                } else {

                  if(fCustom){
                    mLEDCode->Text = "const unsigned char LED14Char[]={\t\t// Character Encode";   // Character
                    for (i=1;i<vleLEDCodec->RowCount;i++){
                        s = vleLEDCodec->Keys[i];
                        mLEDCode->Lines->Add("\t0x" + s.IntToHex(led[i].ar[0],2)+ (",\t\t// ")+ s + " LSB");
                        mLEDCode->Lines->Add("\t0x" + s.IntToHex(led[i].ar[1],2)+ (i==vleLEDCodec->RowCount-1?"\t\t// ":",\t\t// ")+ s + " MSB");
                    }
                    mLEDCode->Lines->Add("};");
                  }else{

                    mLEDCode->Text = "const unsigned char LED14Char[]={\t\t// Character Encode";   // Character
                    for (i=0;i<26;i++){
                        s.printf("%c",'A'+i);
                        mLEDCode->Lines->Add("\t0x" + s.IntToHex(led[i].ar[0],2)+ (",\t\t// ")+ s + " LSB");
                        mLEDCode->Lines->Add("\t0x" + s.IntToHex(led[i].ar[1],2)+ (i==25?"\t\t// ":",\t\t// ")+ s + " MSB");
                    }
                    mLEDCode->Lines->Add("};");

                    mLEDCode->Lines->Add(" ");
                    mLEDCode->Lines->Add("const unsigned char LED14Num[]={\t\t// Number Encode");      // Number
                    for (i=26;i<42;i++){
                        s.printf("%c",'A'+i);
                        mLEDCode->Lines->Add("\t0x" + s.IntToHex(led[i].ar[0],2)+ (",\t\t// ")+ s.IntToHex(i-26,1) + " LSB");
                        mLEDCode->Lines->Add("\t0x" + s.IntToHex(led[i].ar[1],2)+ (i==41?"\t\t// ":",\t\t// ")+ s.IntToHex(i-26,1) + " MSB");
                    }
                    mLEDCode->Lines->Add("};");
                  }
                }
            }
        }
        if(rbLED7->Checked){
            try{
            patA = (1<<edLED7A->Text.ToInt());
            patB = (1<<edLED7B->Text.ToInt());
            patC = (1<<edLED7C->Text.ToInt());
            patD = (1<<edLED7D->Text.ToInt());
            patE = (1<<edLED7E->Text.ToInt());
            patF = (1<<edLED7F->Text.ToInt());
            patG = (1<<edLED7G->Text.ToInt());
            }
            catch(EConvertError &E)
            {
                        Application->MessageBox("Please input bit information correctly!","Error",MB_OK | MB_ICONERROR);
                        return;
            }

            if(vleLEDCodec->RowCount > 2 || !vleLEDCodec->Cells[1][1].IsEmpty()){
                for(i=1;i<vleLEDCodec->RowCount ;i++){
                        if(vleLEDCodec->Cells[1][i].IsEmpty()){
                                led[i].wd = 0;
                                continue;
                        }
                        try{
                                pat = vleLEDCodec->Cells[1][i].ToInt();
                        }catch(...){
                                pat = 0;
                        }
                        led[i].wd = (patA   & ((pat & (1<<0))?0xffff:0x0000))
                                     |(patB  & ((pat & (1<<1))?0xffff:0x0000))
                                     |(patC  & ((pat & (1<<2))?0xffff:0x0000))
                                     |(patD  & ((pat & (1<<3))?0xffff:0x0000))
                                     |(patE  & ((pat & (1<<4))?0xffff:0x0000))
                                     |(patF  & ((pat & (1<<5))?0xffff:0x0000))
                                     |(patG  & ((pat & (1<<6))?0xffff:0x0000));
                        fCustom = true;
                }
            }else{
                led[0].wd = patA|patB|patC|patD|patE|patF;
                led[1].wd = patB|patC;
                led[2].wd = patA|patB|patD|patE|patG;
                led[3].wd = patA|patB|patC|patD|patG;
                led[4].wd = patB|patC|patF|patG;
                led[5].wd = patA|patC|patD|patF|patG;
                led[6].wd = patA|patC|patD|patE|patF|patG;
                led[7].wd = patA|patB|patC;
                led[8].wd = patA|patB|patC|patD|patE|patF|patG;
                led[9].wd = patA|patB|patC|patD|patF|patG;
                led[10].wd = patA|patB|patC|patE|patF|patG;
                led[11].wd = patC|patD|patE|patF|patG;
                led[12].wd = patA|patD|patE|patF;
                led[13].wd = patB|patC|patD|patE|patG;
                led[14].wd = patA|patD|patE|patF|patG;
                led[15].wd = patA|patE|patF|patG;
            }

            if(cbLEDReverse->Checked){
                if(fCustom){
                        for (i=1;i<vleLEDCodec->RowCount;i++){
                                led[i].wd ^= 0xff;
                        }
                }else{
                        for (i=0;i<16;i++){
                                led[i].wd ^= 0xff;
                        }
                }
            }

            if(rb4Bits->Checked){
                if(rbASM->Checked ){
                    if(rbPre->Checked){
                        prefix = edHex->Text.Trim();
                    }else{
                        postfix = edHex->Text.Trim();
                    }
                  if(fCustom){
                    mLEDCode->Text = "LED7Code:";
                    for (i=1;i<vleLEDCodec->RowCount;i++){
                        s = vleLEDCodec->Keys[i];
                        mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex(led[i].ar[0] & 0x0f ,2)+ postfix + "\t\t; "+ s.IntToHex(i,1) + " LSB");
                        mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex((led[i].ar[0]>>4) & 0x0f ,2)+ postfix + "\t\t; "+ s.IntToHex(i,1) + " MSB" );
//                        mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex(led[i].ar[1] & 0x0f,2)+ postfix + "\t\t; "+ s + " ...");
//                        mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex((led[i].ar[1]>>4) & 0x0f,2)+ postfix + "\t\t; "+ s + " MSB");
                    }
                  }else{
                    mLEDCode->Text = "LED7Code:";
                    for (i=0;i<16;i++){
                        mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex(led[i].ar[0] & 0x0f ,2)+ postfix + "\t\t; "+ s.IntToHex(i,1) + " LSB");
                        mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex((led[i].ar[0]>>4) & 0x0f ,2)+ postfix + "\t\t; "+ s.IntToHex(i,1) + " MSB" );
//                        mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex(led[i].ar[1] & 0x0f,2)+ postfix + "\t\t; "+ s + " ...");
//                        mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex((led[i].ar[1]>>4) & 0x0f,2)+ postfix + "\t\t; "+ s + " MSB");
                    }
                  }
                } else {
                  if(fCustom){
                    mLEDCode->Text = "const unsigned char LED7Code[]={\n";
                    for (i=1;i<vleLEDCodec->RowCount;i++){
                        s = vleLEDCodec->Keys[i];
                        mLEDCode->Lines->Add("\t0x" + s.IntToHex(led[i].ar[0] & 0x0f ,2)+(",\t\t// ")+ s.IntToHex(i,1) + " LSB");
                        mLEDCode->Lines->Add("\t0x" + s.IntToHex((led[i].ar[0]>>4) & 0x0f ,2)+(i==15?"\t\t// ":",\t\t// ")+ s.IntToHex(i,1) + " MSB");
//                        mLEDCode->Lines->Add("\t0x" + s.IntToHex(led[i].ar[1] & 0x0f,2)+ (",\t\t// ")+ s.IntToHex(i-26,1) + " ...");
//                        mLEDCode->Lines->Add("\t0x" + s.IntToHex((led[i].ar[1]>>4) & 0x0f,2)+ (i==41?"\t\t// ":",\t\t// ")+ s.IntToHex(i-26,1) + " MSB");
                    }
                    mLEDCode->Lines->Add("};");
                  }else{
                    mLEDCode->Text = "const unsigned char LED7Code[]={\n";
                    for (i=0;i<16;i++){
                        mLEDCode->Lines->Add("\t0x" + s.IntToHex(led[i].ar[0] & 0x0f ,2)+(",\t\t// ")+ s.IntToHex(i,1) + " LSB");
                        mLEDCode->Lines->Add("\t0x" + s.IntToHex((led[i].ar[0]>>4) & 0x0f ,2)+(i==vleLEDCodec->RowCount-1?"\t\t// ":",\t\t// ")+ s.IntToHex(i,1) + " MSB");
//                        mLEDCode->Lines->Add("\t0x" + s.IntToHex(led[i].ar[1] & 0x0f,2)+ (",\t\t// ")+ s.IntToHex(i-26,1) + " ...");
//                        mLEDCode->Lines->Add("\t0x" + s.IntToHex((led[i].ar[1]>>4) & 0x0f,2)+ (i==41?"\t\t// ":",\t\t// ")+ s.IntToHex(i-26,1) + " MSB");
                    }
                  }  
                    mLEDCode->Lines->Add("};");
                }
            } else {
                if(rbASM->Checked ){
                    if(rbPre->Checked){
                        prefix = edHex->Text.Trim();
                    }else{
                        postfix = edHex->Text.Trim();
                    }

                  if(fCustom){
                    mLEDCode->Text = "LED7Code:";
                    for (i=1;i<vleLEDCodec->RowCount;i++){
                        s = vleLEDCodec->Keys[i];
                        mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex(led[i].wd ,3)+ postfix + "\t\t; "+ s);
                    }
                  }else{
                    mLEDCode->Text = "LED7Code:";
                    for (i=0;i<16;i++){
                        mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex(led[i].wd ,3)+ postfix + "\t\t; "+ s.IntToHex(i,1));
                    }
                  }
                } else {
                  if(fCustom){
                    mLEDCode->Text = "const unsigned char LED7Code[]={\n";
                    for (i=1;i<vleLEDCodec->RowCount;i++){
                        s = vleLEDCodec->Keys[i];
                        mLEDCode->Lines->Add("\t0x" + s.IntToHex(led[i].wd ,2)+(i==vleLEDCodec->RowCount-1 ?"\t\t// ":",\t\t// ")+ s);
                    }
                    mLEDCode->Lines->Add("};");
                  }else{
                    mLEDCode->Text = "const unsigned char LED7Code[]={\n";
                    for (i=0;i<16;i++){
                        mLEDCode->Lines->Add("\t0x" + s.IntToHex(led[i].wd ,2)+(i==15?"\t\t// ":",\t\t// ")+ s.IntToHex(i,1));
                    }
                    mLEDCode->Lines->Add("};");
                  }
                }
            }
        }
        mLEDCode->Lines->Add(" ");
//    }else{
//        MessageBox(NULL,"No LEDs Selected! Please select one or more LED type and fit the pattern before encoder.","Error!",MB_OK);
//    }
}
//---------------------------------------------------------------------------



void __fastcall TfrmMain::edLED16A1Enter(TObject *Sender)
{
    edLED16A1->SelectAll();
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::edLED16A1Click(TObject *Sender)
{
    edLED16A1->SelectAll();
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::edLED16A2Click(TObject *Sender)
{
    edLED16A2->SelectAll();
}
//---------------------------------------------------------------------------


void __fastcall TfrmMain::edLED14AClick(TObject *Sender)
{
    edLED14A->SelectAll();
}
//---------------------------------------------------------------------------


void __fastcall TfrmMain::edLED14BClick(TObject *Sender)
{
    edLED14B->SelectAll();

}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::edLED14CClick(TObject *Sender)
{
    edLED14C->SelectAll();

}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::edLED14DClick(TObject *Sender)
{
    edLED14D->SelectAll();

}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::edLED14EClick(TObject *Sender)
{
    edLED14E->SelectAll();

}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::edLED14FClick(TObject *Sender)
{
    edLED14F->SelectAll();

}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::edLED14G1Click(TObject *Sender)
{
    edLED14G1->SelectAll();

}
//------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -