Code/Resource
Windows Develop
Linux-Unix program
Internet-Socket-Network
Web Server
Browser Client
Ftp Server
Ftp Client
Browser Plugins
Proxy Server
Email Server
Email Client
WEB Mail
Firewall-Security
Telnet Server
Telnet Client
ICQ-IM-Chat
Search Engine
Sniffer Package capture
Remote Control
xml-soap-webservice
P2P
WEB(ASP,PHP,...)
TCP/IP Stack
SNMP
Grid Computing
SilverLight
DNS
Cluster Service
Network Security
Communication-Mobile
Game Program
Editor
Multimedia program
Graph program
Compiler program
Compress-Decompress algrithms
Crypt_Decrypt algrithms
Mathimatics-Numerical algorithms
MultiLanguage
Disk/Storage
Java Develop
assembly language
Applications
Other systems
Database system
Embeded-SCM Develop
FlashMX/Flex
source in ebook
Delphi VCL
OS Develop
MiddleWare
MPI
MacOS develop
LabView
ELanguage
Software/Tools
E-Books
Artical/Document
testeeprom.c
Package: DELPHI_CVAVR_EEPROM.rar [view]
Upload User: yanshikc
Upload Date: 2013-08-21
Package Size: 407k
Code Size: 3k
Category:
ARM-PowerPC-ColdFire-MIPS
Development Platform:
MultiPlatform
- #include <mega16.h>
- #include <USART.h>
- #include <TWI.h>
- #include <TWIAPP.h>
- #include <String.h>
- #include <Types.h>
- #include <delay.h>
- /************************
- 接线方式:
- DS1302 PortC
- 6.VCC 5.WP1 1.PC0 2.PC1
- 4.SCL 3.WP2 3.PC2 4.PC3
- 2.SDA 1.GND 5.PC4 6.PC5
- 7.PC6 8.PC7
- 9.GND 10.VCC
- 6.VCC -- 10.VCC
- 4.SCL -- 1.PC0
- 2.SDA -- 2.PC1
- 5.WP1 -- 3.PC2 (可不接)
- 3.WP2 -- 4.PC3 (可不接)
- 1.GND -- 9.GND
- ************************************/
- #define MAXCMDBUF 32
- #pragma warn-
- //eeprom unsigned char EEPROMS[512];
- #pragma warn+
- void port_init(void) //初始化各端口
- {
- PORTB = 0xF0;
- DDRB = 0x0F;
- PORTC = 0x00;
- DDRC = 0x00;
- PORTB =0b11001100;
- }
- void TestCmd(void)
- {
- unsigned int i;
- unsigned char CmdBuf[CMD_MAXBUFFER]; //命令缓冲区
- unsigned char Chip; //芯片地址
- unsigned int Addr; //内存地址
- unsigned char AddrType;//内存地址格式 8 bit 或16 bit
- unsigned int Cnt; //读取长度
- unsigned char LED; //LED显示,作用不大
- USART_Init(47); //3.6864M=23, 7.3728M=47
- TransmitStringF("Welcome AVR Zone");
- for (i=0;i<CMD_MAXBUFFER;i++) CmdBuf[i]=0; //初始化命令缓冲区
- LED=0;
- while (1)
- {
- ReceiveCMD(CmdBuf); //读取一条命令行
- if (CmdBuf[0]>0) //如果命令行长度不为零
- {
- //for (i=0;i<MAXCMDBUF;i++) TransmitByte(CmdBuf[i]);
- TransmitByte(CMDBEGIN); //送出命令开始符
- TransmitByte(CmdBuf[1]); //送出命令
- if (CmdBuf[1]=='H') //如果接收的是帮助命令
- {
- TransmitStringF("Command format(Hex):'1B CMD 1C'");
- TransmitByte(13);
- TransmitStringF("Read EEPROM Data:'R','Addr','Count'");
- TransmitByte(13);
- TransmitStringF("Write EEPROM Data:'W','Addr','Data'");
- TransmitByte(13);
- TransmitStringF("Show Help:'H'");
- TransmitByte(13);
- PORTB=~PORTB;
- }
- if (CmdBuf[1]=='R') //如果接收的是读取EEPROM命令
- {
- AddrType=HexToByte(&CmdBuf[2]); //EEPROM地址类型
- Chip=(HexToByte(&CmdBuf[4])&0B00001110)|EEPROM_BUS_ADDRESS; //芯片地址
- Addr=(((unsigned int)HexToByte(&CmdBuf[6]))<<8)|((unsigned int)HexToByte(&CmdBuf[8])); //内存地址
- Cnt=(((unsigned int)HexToByte(&CmdBuf[10]))<<8)|((unsigned int)HexToByte(&CmdBuf[12])); //读写个数
- if (Addr+Cnt>255) Cnt=255-Addr;
- for (i=0;i<Cnt;i++)
- {
- TransmitString(ByteToHex(EEPROM_Read(Chip,AddrType,Addr+i))); //送回上位机
- TransmitByte(32);
- }
- }
- if (CmdBuf[1]=='W') //如果接收的是写入EEPROM命令
- {
- AddrType=HexToByte(&CmdBuf[2]);
- Chip=(HexToByte(&CmdBuf[4])&0B00001110)|EEPROM_BUS_ADDRESS;
- Addr=(((unsigned int)HexToByte(&CmdBuf[6]))<<8)|((unsigned int)HexToByte(&CmdBuf[8]));
- EEPROM_Write(Chip,AddrType,Addr,HexToByte(&CmdBuf[10]));
- delay_ms(5); //写EEPROM的时候要隔5ms
- TransmitString(ByteToHex(EEPROM_Read(Chip,AddrType,Addr))); //回送给上位机做检查
- }
- TransmitByte(CMDEND); //送出命令结束符
- for (i=0;i<CMD_MAXBUFFER;i++) CmdBuf[i]=0; //清空命令缓冲区
- }
- LED++;
- //PORTB&=~((LED>>7)&0x03);
- }
- }
- void main()
- {
- port_init();
- TWI_DefaultInit();
- TestCmd();
- }