📄 f_11_32_i2cmemtst.c
字号:
#include "config.h"#include "serial.c"#include "serio.c"#include "delay.h"#include "i2cmsu.c"#include "i2c_memutil.c"#define EEPROM 0xA0 unsigned char membuf[BLKSIZE];unsigned int memaddr;void main(void){ unsigned char mode,i; serial_init(95,1); // 19200 in HSPLL mode, crystal = 7.3728 MHz if (!RI) { RI = 1; printf("Software reset!");pcrlf(); if (i2c_errstat) i2c_print_err(); } if (!TO) { printf("Watchdog timer reset has occurred.\n"); pcrlf(); if (i2c_errstat) i2c_print_err(); } i2c_init(73); // ~100 kHz @ FOSC = 29.4912 MHz pcrlf(); printf("I2C Mem Test Started"); pcrlf(); SWDTEN = 1; // enable watchdog timer memaddr = 0; printf ("Enter 'w' for write mode, anything else reads: "); mode = getche(); pcrlf(); while(1) { if (mode == 'w') { printf("Enter %d chars.",BLKSIZE);pcrlf(); for(i = 0;i< BLKSIZE;i++) { membuf[i] = getche(); } pcrlf();printf("Doing Write");pcrlf(); // write same string twice to check Write Busy polling i2c_memwrite(EEPROM,memaddr,(unsigned char *)membuf); // do write memaddr = memaddr +BLKSIZE; i2c_memwrite(EEPROM,memaddr,membuf); // do write memaddr = memaddr +BLKSIZE; } else { i2c_memread(EEPROM,memaddr,membuf); // do read for(i = 0;i< BLKSIZE;i++) putch(membuf[i]); pcrlf(); printf("Any key continues read...");pcrlf(); getch(); memaddr = memaddr + BLKSIZE; } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -