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

📄 avrdevice.h

📁 上位机软件 for avricp 根据功能设定熔丝
💻 H
📖 第 1 页 / 共 2 页
字号:
	AVRDevice(UCHAR ucDCode ){};
	AVRDevice(){};
	
	/* Destructor */
	~AVRDevice(){};
	
	/* Methods */
	void SetDevice(UCHAR ucDCode )//;
	{
		deviceCode = ucDCode;
		flashSize = 0;
		eepromSize = 0;
		FuseBytes = 0;
		LockBytes = 0;
		signature0=0xff;
		signature1=0xff;
		signature2=0xff;    // 3字节器件签名
		pagesize = 0;
		strcpy(deviceName,"NoSupported");
		
		if(deviceCode == 0xff)return;
		unsigned char tempCode;
		int i = 0;
		do
		{
			tempCode = g_deviceTable[i].ucId;
			if (tempCode == 0) 
			{ 
				break; 
			} 
			if (tempCode == ucDCode) 
			{ 
				deviceCode = g_deviceTable[i].ucId;
				flashSize = g_deviceTable[i].dwFlashSize;
				eepromSize = g_deviceTable[i].wEepromSize;
				FuseBytes = g_deviceTable[i].ucFuseBytes;
				LockBytes = g_deviceTable[i].ucLockBytes;
				signature0=g_deviceTable[i].signature[0];
				signature1=g_deviceTable[i].signature[1];
				signature2=g_deviceTable[i].signature[2];
				pagesize = g_deviceTable[i].wPageSize;
				
				strcpy(deviceName,g_deviceTable[i].name);

				FuseMap.dwDefaultMode =g_deviceTable[i].bFuseMap.dwDefaultMode;
				FuseMap.dwNumber      =g_deviceTable[i].bFuseMap.dwNumber      ;
				FuseMap.dwProtectMode =g_deviceTable[i].bFuseMap.dwProtectMode;
				FuseMap.ucCompatible  =g_deviceTable[i].bFuseMap.ucCompatible;
				for(unsigned int j=0;j<g_deviceTable[i].bFuseMap.dwNumber; j++)
					FuseMap.bitname[j]=g_deviceTable[i].bFuseMap.bitname[j];
				
				LockMap.dwDefaultMode =g_deviceTable[i].bLockMap.dwDefaultMode ;
				LockMap.dwNumber      =g_deviceTable[i].bLockMap.dwNumber      ;
				LockMap.dwProtectMode =g_deviceTable[i].bLockMap.dwProtectMode;
				LockMap.ucCompatible  =g_deviceTable[i].bLockMap.ucCompatible;
				for(j=0;j<g_deviceTable[i].bLockMap.dwNumber; j++)
					LockMap.bitname[j]=g_deviceTable[i].bLockMap.bitname[j];
				
				break; 
			} 
		} while((i++) < 0x100);
	}
	void SetDevice(char *strDName )//;
	{
		deviceCode = 0xff;
		flashSize = 0;
		eepromSize = 0;
		FuseBytes = 0;
		LockBytes = 0;
		signature0=0xff;
		signature1=0xff;
		signature2=0xff;
		pagesize = 0;
		strcpy(deviceName,"NoSupported");
		
		unsigned char tempCode;
		int i = 0;
		do
		{
			tempCode = g_deviceTable[i].ucId;
			if (tempCode == 0) 
			{ 
				break; 
			} 
			if (!strcmp(strDName,g_deviceTable[i].name)) 
			{ 
				deviceCode = g_deviceTable[i].ucId;
				flashSize = g_deviceTable[i].dwFlashSize;
				eepromSize = g_deviceTable[i].wEepromSize;
				FuseBytes = g_deviceTable[i].ucFuseBytes;
				LockBytes = g_deviceTable[i].ucLockBytes;
				signature0=g_deviceTable[i].signature[0];
				signature1=g_deviceTable[i].signature[1];
				signature2=g_deviceTable[i].signature[2];
				pagesize = g_deviceTable[i].wPageSize;
				strcpy(deviceName,g_deviceTable[i].name);


				FuseMap.dwDefaultMode =g_deviceTable[i].bFuseMap.dwDefaultMode;
				FuseMap.dwNumber      =g_deviceTable[i].bFuseMap.dwNumber      ;
				FuseMap.dwProtectMode =g_deviceTable[i].bFuseMap.dwProtectMode;
				FuseMap.ucCompatible  =g_deviceTable[i].bFuseMap.ucCompatible;
				for(unsigned int j=0;j<g_deviceTable[i].bFuseMap.dwNumber; j++)
					FuseMap.bitname[j]=g_deviceTable[i].bFuseMap.bitname[j];
				
				LockMap.dwDefaultMode =g_deviceTable[i].bLockMap.dwDefaultMode ;
				LockMap.dwNumber      =g_deviceTable[i].bLockMap.dwNumber      ;
				LockMap.dwProtectMode =g_deviceTable[i].bLockMap.dwProtectMode;
				LockMap.ucCompatible  =g_deviceTable[i].bLockMap.ucCompatible;
				for(j=0;j<g_deviceTable[i].bLockMap.dwNumber; j++)
					LockMap.bitname[j]=g_deviceTable[i].bLockMap.bitname[j];
				
				break; 
			} 
		} while((i++) < 0x100);
		return ;
	}
	unsigned char getDeviceCode() {return deviceCode;}
	void getDeviceName(char *s) { strcpy(s, deviceName);}
	char *getDeviceName() { return deviceName;}
	long getFlashSize()   { return flashSize; }
	long getEEPROMSize()  { return eepromSize; }
	long getPageSize()    { return pagesize; }
	char getFuseBytes()   { return FuseBytes; }
	char getLockBytes()   { return LockBytes; }
	bitmap *getFuseMap()   { return &FuseMap; }
	bitmap *getLockMap()   { return &LockMap; }
	void getSignature(long *sig0, long *sig1, long *sig2)  
	{ 
		*sig0=signature0;
		*sig1=signature1; 
		*sig2=signature2; 
	}
};


/* Device List                                                      */ 
/* +---------------+----------+------+-------+------+------+------+-------+ */ 
/* | Device        |Signature | Code | Flash |EEProm| Lock | Fuse | PMode | */ 
/* +---------------+----------+------+-------+------+------+------+-------+ */ 
/* | tiny12        | 1E 90 05 | 0x55 |  R/W  | R/W  | R/W  | R/W  | Byte  | */ 
/* | tiny15        | 1E 90 06 | 0x66 |  R/W  | R/W  | R/W  | R/W  | Byte  | */ 
/* |               |          |      |       |      |      |      |       | */ 
/* | S1200         | 1E 90 01 | 0x13 |  R/W  | R/W  |  W   | NA   | Byte  | */ 
/* |               |          |      |       |      |      |      |       | */ 
/* | S2313         | 1E 91 01 | 0x20 |  R/W  | R/W  |  W   | NA   | Byte  | */ 
/* | S2323         | 1E 91 02 | 0x48 |  R/W  | R/W  | R/W  | R/W  | Byte  | */ 
/* | S2333         | 1E 91 05 | 0x34 |  R/W  | R/W  | R/W  | R/W  | Byte  | */ 
/* | S2343         | 1E 91 03 | 0x4C |  R/W  | R/W  | R/W  | R/W  | Byte  | */ 
/* |               |          |      |       |      |      |      |       | */ 
/* | S4414         | 1E 92 01 | 0x28 |  R/W  | R/W  |  W   | NA   | Byte  | */ 
/* | S4433         | 1E 92 03 | 0x30 |  R/W  | R/W  | R/W  | R/W  | Byte  | */ 
/* | S4434         | 1E 92 02 | 0x6C |  R/W  | R/W  | R/W  | R/W  | Byte  | */ 
/* |               |          |      |       |      |      |      |       | */ 
/* | S8515         | 1E 93 01 | 0x38 |  R/W  | R/W  |  W   | NA   | Byte  | */ 
/* | S8535         | 1E 93 03 | 0x68 |  R/W  | R/W  | R/W  | R/W  | Byte  | */ 
/* |               |          |      |       |      |      |      |       | */ 
/* |mega83         | 1E 93 05 | 0x65 |  R/W  | R/W  | R/W  | R/W  | Page  | */ 
/* |mega103        | 1E 97 01 | 0x41 |  R/W  | R/W  | R/W  | R/W  | Page  | */ 
/* |mega161        | 1E 94 01 | 0x60 |  R/W  | R/W  | R/W  | R/W  | Page  | */ 
/* |mega163        | 1E 94 02 | 0x64 |  R/W  | R/W  | R/W  | R/W  | Page  | */ 
/* |               |          |      |       |      |      |      |       | */ 
/* |mega8          | 1E 93 07 | 0x76 |  R/W  | R/W  | R/W  | R/W  | Page  | */ 
/* |mega16         | 1E 94 03 | 0x74 |  R/W  | R/W  | R/W  | R/W  | Page  | */ 
/* |mega32         | 1E 95 02 | 0x72 |  R/W  | R/W  | R/W  | R/W  | Page  | */ 
/* |mega128        | 1E 97 02 | 0x43 |  R/W  | R/W  | R/W  | R/W  | Page  | */ 
/* |mega8515       | 1E 93 06 | 0x3A |  R/W  | R/W  | R/W  | R/W  | Page  | */ 
/* |mega8535       | 1E 93 08 | 0x69 |  R/W  | R/W  | R/W  | R/W  | Page  | */ 
/* +---------------+----------+------+-------+------+------+------+-------+ */ 

/*--------------------------------------------------------------------------*/ 
/*                                     +-------------+------------+------+  */ 
/*  Commands                           | Host writes | Host reads |      |  */ 
/*  --------                           +-----+-------+------+-----+      |  */ 
/*                                     | ID  | data  | data |     | Note |  */ 
/* +-----------------------------------+-----+-------+------+-----+------+  */ 
/* | Enter programming mode            | 'P' |       |      | 13d |   1  |  */ 
/* | Report autoincrement address      | 'a' |       |      | 'Y' |      |  */ 
/* | Set address                       | 'A' | ah al |      | 13d |   2  |  */ 
/* | Write program memory, low byte    | 'c' |    dd |      | 13d |   3  |  */ 
/* | Write program memory, high byte   | 'C' |    dd |      | 13d |   3  |  */ 
/* | Issue Page Write                  | 'm' |       |      | 13d |      |  */ 
/* | Read program memory               | 'R' |       |dd(dd)|     |   4  |  */ 
/* | Write data memory                 | 'D' |    dd |      | 13d |      |  */ 
/* | Read data memory                  | 'd' |       |   dd |     |      |  */ 
/* | Chip erase                        | 'e' |       |      | 13d |      |  */ 
/* | Write lock bits                   | 'l' |    dd |      | 13d |      |  */ 
/* | Write fuse bits                   | 'f' |    dd |      | 13d |  11  |  */ 
/* | Read fuse bits                    | 'F' |       |   dd |     |  11  |  */ 
/* | Leave programming mode            | 'L' |       |      | 13d |   5  |  */ 
/* | Select device type                | 'T' |    dd |      | 13d |   6  |  */ 
/* | Read signature bytes              | 's' |       | 3*dd |     |      |  */ 
/* | Return supported device codes     | 't' |       | n*dd | 00d |   7  |  */ 
/* | Return software identifier        | 'S' |       | s[7] |     |   8  |  */ 
/* | Return sofware version            | 'V' |       |dd dd |     |   9  |  */ 
/* | Return hardware version           | 'v' |       |dd dd |     |   9  |  */ 
/* | Return programmer type            | 'p' |       |   dd |     |  10  |  */ 
/* | Set LED                           | 'x' |    dd |      | 13d |  12  |  */ 
/* | Clear LED                         | 'y' |    dd |      | 13d |  12  |  */ 
/* | Universial command                | ':' |  3*dd |   dd | 13d |      |  */ 
/* | New universal command             | '.' |  4*dd |   dd | 13d |      |  */ 
/* | Special test command              | 'Z' |  2*dd |   dd |     |      |  */ 
/* +-----------------------------------+-----+-------+------+-----+------+  */ 
/* | Read lock bits                    | 'r' |       |   dd |     |      |  */ 
/* | Read high fuse bits               | 'N' |       |   dd |     |      |  */ 
/* | Read extended fuse bits           | 'Q' |       |   dd |     |      |  */ 
/* | Write high fuse bits              | '.' |ACA8 2d|      | 13d |      |  */ 
/* | Write extended fuse bits          | '.' |ACA4 2d|      | 13d |      |  */ 
/* +-----------------------------------+-----+-------+------+-----+------+  */ 
/* | Check block support               | 'b' |       |"Y"2*dd     |      |  */ 
/* | Start block flash load            | 'B' |2*dd"F"|      | 13d |      |  */ 
/* |                                   |     | n*dd  |      |     |      |  */ 
/* | Start block eeprom load           | 'B' |2*dd"E"|      | 13d |      |  */ 
/* |                                   |     | n*dd  |      |     |      |  */ 
/* | Start block flash read            | 'g' |2*dd"F"| n*dd | 13d |      |  */ 
/* | Start block eeprom read           | 'g' |2*dd"E"| n*dd | 13d |      |  */ 
/* +-----------------------------------+-----+-------+------+-----+------+  */ 


#endif  //AVRDEVICE_H





⌨️ 快捷键说明

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