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

📄 test.c

📁 implementation OF i2c in lpc2148
💻 C
字号:
#include <string.h>
#include <LPC214X.H>
#include "lpc_config.h"
#include "efs.h"
#include "ls.h"
#include "mkfs.h"
#include "uart1.h"
#include "rtc.h"
#include "eeprom.h"
#include "delay.h"

//static char LogFileName[] = "logdat9.csv";

static void systemInit(void)
{
	// --- enable and connect the PLL (Phase Locked Loop) ---
	// a. set multiplier and divider
	PLL0CFG = MSEL | (1<<PSEL1) | (0<<PSEL0);
	// b. enable PLL
	PLL0CON = (1<<PLLE);
	// c. feed sequence
	PLL0FEED = PLL_FEED1;
	PLL0FEED = PLL_FEED2;
	// d. wait for PLL lock (PLOCK bit is set if locked)
	while (!(PLL0STAT & (1<<PLOCK)));
	// e. connect (and enable) PLL
	PLL0CON = (1<<PLLE) | (1<<PLLC);
	// f. feed sequence
	PLL0FEED = PLL_FEED1;
	PLL0FEED = PLL_FEED2;
	
	// --- setup and enable the MAM (Memory Accelerator Module) ---
	// a. start change by turning of the MAM (redundant)
	MAMCR = 0;	
	// b. set MAM-Fetch cycle to 3 cclk as recommended for >40MHz
	MAMTIM = MAM_FETCH;
	// c. enable MAM 
	MAMCR = MAM_MODE;
	
	// --- set VPB speed ---
	VPBDIV = VPBDIV_VAL;
	
	// --- map INT-vector ---
	#if defined(RAM_RUN)
	  MEMMAP = MEMMAP_USER_RAM_MODE;
	#elif defined(ROM_RUN)
	  MEMMAP = MEMMAP_USER_FLASH_MODE;
	#else
//	#error RUN_MODE not defined!
	#endif
}


EmbeddedFileSystem efs;
EmbeddedFile filer, filew;
DirList list;
unsigned short e;
unsigned char buf[513];
char file[20];

unsigned char mode;

int main(void)
{
	int res=10;
unsigned char mode;
unsigned char *ptr;	
	
	systemInit();
	InitSerial1(9600);
	i2cInit();
	RTCInit();
  	RTCStart();
  	
	//InitSerial1Int((unsigned)serial1_RxISR);

  putStrS1("RF--Attendence System\n\r");
  
  while(res)
  {
  putStrS1("Time: ");
  ptr=getTime();
  putStrS1(ptr);
  

  putStrS1("Date: ");
  ptr=getDate();
  putStrS1(ptr);
  putStrS1("\r");
  delay(100);
  res--;
  }
   putStrS1("\n\r");
   putStrE("TEST EEPROM---2",0x0020);
   ptr=getStrE(0x0020);
   putStrS1(ptr);
   putStrS1("\n\r");
  
  

	if ( ( res = efs_init( &efs, 0 ) ) != 0 ) {
//		rprintf("failed with %i\n",res);
	}
	else {
//		rprintf("ok\n");
//		rprintf("Directory of 'root':\n");
		ls_openDir( &list, &(efs.myFs) , "/");
		while ( ls_getNext( &list ) == 0 ) {
			list.currentEntry.FileName[LIST_MAXLENFILENAME-1] = '\0';
//			rprintf( "%s ( %li bytes )\n" ,
//				list.currentEntry.FileName,
//				list.currentEntry.FileSize ) ;
		}
		
				
	

	while(1)
	{	 
		  putStrS1("Enter the File name: ");
		  getStrS1(file);
		  putStrS1("\n\r");
		  putStrS1("Enter the mode: ");
		  mode=getCharS1();
		  putCharS1(mode);
		  putStrS1("\n\r");

	switch(mode)
	{
	case 'r':
	case 'R':	   
	 	if ( file_fopen( &filer, &efs.myFs , file , 'r' ) == 0 ) {

					
			if ( ( e = file_read( &filer, 512, buf ) ) != 0 ) {
				buf[e]='\0';
				putStrS1("\n\r");
				putStrS1(buf);
				putStrS1("\n\r");
			 }
			 else
			 putStrS1("Failed Reading\n\r");
			

			file_fclose( &filer );
							
		  }
		  else {
		     putStrS1("Fail--Opening\n\r");
			 }
		   break;

	   case 'a':
	   case 'A':

			 putStrS1("Enter the data: ");
			 getStrS1(buf);
			 putStrS1("\n\r");
		
		if ( file_fopen( &filew, &efs.myFs , file , 'a' ) == 0 ) {

			if ( file_write( &filew, strlen((char*)buf), buf ) == strlen((char*)buf) ) {
				putStrS1("ok--Appendng\n\r");
			}
			else {
				putStrS1("fail--Appendng\n\r");
			}
			file_fclose( &filew );
		}

		if ( file_fopen( &filer, &efs.myFs , file , 'r' ) == 0 ) {

					
			if ( ( e = file_read( &filer, 512, buf ) ) != 0 ) {
				buf[e]='\0';
			//	putStrS1("\n\r");
			//	putStrS1(buf);
			//	putStrS1("\n\r");
			 }
			 else
			 putStrS1("Failed Reading\n\r");
			

			file_fclose( &filer );
		  }
		break;

	  case 'w':
	  case 'W':
	    putStrS1("Enter the data: ");
			getStrS1(buf);
			putStrS1("\n\r");
		
		if ( file_fopen( &filew, &efs.myFs , file , 'w' ) == 0 ) {

			if ( file_write( &filew, strlen((char*)buf), buf ) == strlen((char*)buf) ) {
				putStrS1("ok--Writing\n\r");
			}
			else {
				putStrS1("fail--Writing\n\r");
			}
			file_fclose( &filew );
		}
	   break;
			 
	}	
		 	
	}
  }	
	fs_umount( &efs.myFs ) ;
	return 0; /* never reached */
}


 /*
void serial1_RxISR(void) __irq 
{
  getStrS1(buf);
  VICVectAddr 	= 0x00000000;						//Dummy write to signal end of interrupt
rx=0;
}
*/


⌨️ 快捷键说明

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