我用的Atmega128单片机,只有4k内部ram,没有外扩ram,我想通过扇区模式通过CH375向右盘写数据,可是我看资料上说,使用扇区模式都要用到外部ram,如果我把这写外部ram的缓冲区放到内部ram的话,应该修改哪些程序?谢谢
你如果想以扇区写数据的话,那么你定义文件缓冲区和磁盘缓冲区的时候将缓冲区定义为内部的RAM就可以了,如果想以文件系统操作U盘的话,那么就去下载CH375LIB.ZIP,里面有AVR单片机ICC和GCC编译器的库
文件缓冲区和磁盘缓冲区 是用什么名字表示的?在那个文件里定义的?
我们提供的例子程序里面有对磁盘缓冲区和文件缓冲区的定义,你可以参考
我现在文件读写的数据的复制方式采用“内部复制”,扇区模式,用的ATMEGA128单片机,通讯波特率为9600,新建一个文件传送320个字节的数据还需要15秒左右的时间,这个速度正常吗?
你用的是扇区方式还是字节方式?
使用CH375FileWrite(),应该是扇区模式呀?
帮我看下代码吧, 定义访问方式: #define LIB_CFG_FILE_IO 1 /* 文件读写的数据的复制方式,0为"外部子程序",1为"内部复制" */ #define LIB_CFG_INT_EN 0 /* CH375的INT#引脚连接方式,0为"查询方式",1为"中断方式" */ 代码段: 先向FILE_DATA_BUF中存了320个字节的数据 mCmdParam.Write.mSectorCount =1; i = CH375FileWriteX( ); /* 向文件写入数据 */ mStopIfError( i );
mCmdParam.Modify.mFileAttr = 0xff; /* 输入参数: 新的文件属性,为0FFH则不修改 */ twi_ReadN(0x0030,dispTime,8,wrx1228_device_add,rdx1228_device_add);//读取时间 mCmdParam.Modify.mFileTime =0xFFFF /* 输入参数: 新的文件时间,为0FFFFH则不修改,使用新建文件产生的默认时间 */ mCmdParam.Modify.mFileDate =MAKE_FILE_DATE(2005,10,9); mCmdParam.Modify.mFileSize = 320; /* 输入参数: 如果原文件较小,那么新的文件长度与原文件一样长,否则被RAM所限,如果文件长度大于64KB,那么NewSize必须为UINT32 */ i = CH375FileModify( ); /* 修改当前文件的信息,修改日期和长度 */ mStopIfError( i ); mCmdParam.Close.mUpdateLen = 0; /* 不要自动计算文件长度,如果自动计算,那么该长度总是512的倍数 */ i = CH375FileClose( ); mStopIfError( i );