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

📄 programmer.h

📁 用于开发Atmel的AVR系列单片机的GCC集成开发环境
💻 H
字号:
//---------------------------------------------------------------------------

#ifndef ProgrammerH
#define ProgrammerH

#define MAX_FLASHBUF 131072
#define MAX_EEPROMBUF 4096
//---------------------------------------------------------------------------
/*#ifndef CHIP_STRUCT
#define CHIP_STRUCT
typedef struct
{
 int flashsize;
 bool paged;
 int pagesize;
 int WD_Flash;
 int eepromsize;
 int WD_EEPROM;
 int signature;
 int lockbittype;
 int fusebittype;
 int calibbytes;
 int stk500_dev;
 int progtype;
 bool hvserial;
 int parmode;
 int lockbytes;
 int fusebytes;
 int selftimed;
} TChipInfo;
#endif */
//---------------------------------------------------------------------------
#include <Inifiles.hpp>
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include "ParPgm.h"
#include <ExtCtrls.hpp>
#include <ComCtrls.hpp>
#include <Dialogs.hpp>
#include "ihex.h"
#include "srec.h"
#include <Buttons.hpp>
#include "BitBox.h"
#include "stk500.h"
#include "PSSlider.h"


//---------------------------------------------------------------------------
class TPgmDlg : public TForm
{
__published:	// Von der IDE verwaltete Komponenten
        TOpenDialog *OpenDialog1;
        TPageControl *PageControl1;
        TTabSheet *TabSheet1;
        TTabSheet *TabSheet2;
        TProgressBar *Progress;
        TButton *UpdSig;
        TGroupBox *GroupBox1;
        TLabel *Label1;
        TLabel *Label2;
        TLabel *FlashSize;
        TLabel *FlashFileSize;
        TButton *ReadFlButton;
        TButton *LoadFlButton;
        TGroupBox *GroupBox2;
        TLabel *Label3;
        TLabel *Label4;
        TLabel *EESize;
        TLabel *EEFileSize;
        TButton *ReadEEButton;
        TButton *LoadEEButton;
        TGroupBox *GroupBox3;
        TCheckBox *EraseBox;
        TCheckBox *BlankBox;
        TCheckBox *ProgFlBox;
        TCheckBox *ProgEEBox;
        TLabel *Label7;
        TLabel *StatusLabel;
        TGroupBox *GroupBox4;
        TLabel *Signature;
        TGroupBox *GroupBox5;
        TLabel *Label9;
        TLabel *Calib1;
        TLabel *Label10;
        TLabel *Calib2;
        TLabel *Label11;
        TLabel *Calib3;
        TLabel *Label12;
        TLabel *Calib4;
        TCheckBox *VerifyFlBox;
        TComboBox *ComboBox1;
        TButton *EditFlButton;
        TButton *EditEEButton;
        TTrackBar *TrackBar1;
        TLabel *Label5;
        TLabel *Label6;
        TLabel *Label8;
        TLabel *Label13;
        TLabel *Label14;
        TLabel *Label15;
        TLabel *Label16;
        TCheckBox *VerifyEEBox;
        TRadioGroup *LBLock;
        TGroupBox *BLB0Group;
        TGroupBox *BLB1Group;
        TButton *ReadLockBtn;
        TButton *WriteLockBtn;
        TButton *SaveFlButton;
        TButton *SaveEEButton;
        TSaveDialog *SaveDialog1;
        TCheckBox *SignBox;
        TTabSheet *TabSheet3;
        TGroupBox *GroupBox6;
        TGroupBox *GroupBox7;
        TGroupBox *GroupBox8;
        TButton *FuseRead;
        TButton *FuseWrite;
        TBitBtn *StartButton;
        TBitBox *FuseLBit0;
        TBitBox *FuseLBit1;
        TBitBox *FuseLBit2;
        TBitBox *FuseLBit3;
        TBitBox *FuseLBit4;
        TBitBox *FuseLBit5;
        TBitBox *FuseLBit6;
        TBitBox *FuseHBit0;
        TBitBox *FuseHBit1;
        TBitBox *FuseHBit2;
        TBitBox *FuseHBit3;
        TBitBox *FuseHBit4;
        TBitBox *FuseHBit5;
        TBitBox *FuseHBit6;
        TBitBox *FuseHBit7;
        TBitBox *FuseEBit0;
        TBitBox *FuseEBit1;
        TBitBox *FuseEBit2;
        TBitBox *FuseEBit3;
        TBitBox *FuseEBit4;
        TBitBox *BLB01Box;
        TBitBox *BLB02Box;
        TBitBox *BLB12Box;
        TBitBox *BLB11Box;
        TTabSheet *TabSheet4;
        TPSSlider *VTargSlider;
        TPSSlider *ARefSlider;
        TGroupBox *GroupBox9;
        TLabel *Label17;
        TLabel *Label18;
        TBevel *Bevel1;
        TBevel *Bevel2;
        TLabel *VTargLabel;
        TLabel *ARefLabel;
        TButton *VoltWrite;
        TButton *VoltRead;
        TGroupBox *GroupBox10;
        TTrackBar *CompBar;
        TTrackBar *PreBar;
        TLabel *Label19;
        TLabel *Label20;
        TLabel *Label21;
        TLabel *Label22;
        TLabel *Label23;
        TLabel *Label24;
        TBevel *Bevel3;
        TLabel *FreqLabel;
        TLabel *Label26;
        TButton *OscWrite;
        TButton *OscRead;
        TBitBox *FuseLBit7;
        void __fastcall UpdSigClick(TObject *Sender);
        void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
        void __fastcall LoadFlButtonClick(TObject *Sender);
        void __fastcall LoadEEButtonClick(TObject *Sender);
        void __fastcall ComboBoxKeyPress(TObject *Sender, char &Key);
        void __fastcall ReadFlButtonClick(TObject *Sender);
        void __fastcall EditFlButtonClick(TObject *Sender);
        void __fastcall EditEEButtonClick(TObject *Sender);
        void __fastcall StartButtonClick(TObject *Sender);
        void __fastcall TrackBar1Change(TObject *Sender);
        void __fastcall ReadEEButtonClick(TObject *Sender);
        void __fastcall ComboBox1Change(TObject *Sender);
        void __fastcall ComboBox2Change(TObject *Sender);
        void __fastcall SaveFlButtonClick(TObject *Sender);
        void __fastcall SaveEEButtonClick(TObject *Sender);
        void __fastcall ReadLockBtnClick(TObject *Sender);
        void __fastcall WriteLockBtnClick(TObject *Sender);
        
        void __fastcall ComboBoxKeyUpDown(TObject *Sender, WORD &Key,
          TShiftState Shift);
        void __fastcall FuseReadClick(TObject *Sender);
        void __fastcall FuseWriteClick(TObject *Sender);
        void __fastcall VTargSliderUserChange(TObject *Sender);
        void __fastcall ARefSliderUserChange(TObject *Sender);
        void __fastcall VTargSliderChange(TObject *Sender);
        void __fastcall ARefSliderChange(TObject *Sender);
        void __fastcall VoltReadClick(TObject *Sender);
        void __fastcall VoltWriteClick(TObject *Sender);
        void __fastcall OscBarChange(TObject *Sender);
        void __fastcall OscReadClick(TObject *Sender);
        void __fastcall OscWriteClick(TObject *Sender);

private:
        TParPgm *ParPgm;
        TSTK500 *STK500;
        TChipInfo chip;
        unsigned char *flashbuffer, *eeprombuffer;
        int flashbufsize, eeprombufsize;
        bool __fastcall StartPGM (void);
        void __fastcall StopPGM (void);
        bool __fastcall WriteFlashPage (void);
        bool __fastcall WriteFlashByte (void);
        bool __fastcall ChipErase (void);
        bool __fastcall VerifyFlash (void);
        bool __fastcall BlankCheck (void);
        bool __fastcall WriteEEProm (void);
        bool __fastcall VerifyEEProm (void);
        void __fastcall ErrorMessage (AnsiString Error);
        int __fastcall LoadFileToBuffer (AnsiString filename, unsigned char *buf,
                                         int maxsize);
        int __fastcall BSizeToWSize (int size);
        void __fastcall ChangeDevice (void);
        void __fastcall ChangeProgrammer (void);
        void __fastcall SaveBufferToFile (AnsiString filename, unsigned char *buf,
                                         int size);
        void __fastcall SetProgPort (void);
        void __fastcall WriteLHFuseBits (void);
        void __fastcall SetLFuseBoxes (unsigned char b);
        void __fastcall SetHFuseBoxes (unsigned char b);
        void __fastcall SetEFuseBoxes (unsigned char b);
        unsigned char __fastcall GetLFuseBoxes (void);
        unsigned char __fastcall GetHFuseBoxes (void);
        unsigned char __fastcall GetEFuseBoxes (void);
        void __fastcall DisableUIF (bool disable);
        TMemoryStream *memstream;
        TSRecord *srec;
        TIHex *ihex;
        int ProgrammerType, OscillatorFreq;
        void __fastcall DelayMS (int ms);
        bool ChangedManually;
public:		// Anwender-Deklarationen
        __fastcall TPgmDlg(TComponent* Owner);
        __fastcall ~TPgmDlg(void);
        void __fastcall ShowWindow (AnsiString mcu);
        void __fastcall SaveSettings (TIniFile *prj);
        void __fastcall LoadSettings (TIniFile *prj);
        void __fastcall ResetMCU (void);
};
//---------------------------------------------------------------------------
extern PACKAGE TPgmDlg *PgmDlg;
//---------------------------------------------------------------------------
#endif

⌨️ 快捷键说明

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