با تشکر از آقا حامد
من عین برنامه آقا حامد که توی مجله نویز 2 نوشته بود رو کپی کردم توی کدویژن(البته تنظیمات مربوط به mega64 رو تبدیل کردم به mega32 و تنظیمات مربوط خواندن sd cart کدویژن را هم انجام دادم)
این کد:
این هم شماتیک:
http://santooristan.persiangig.com/image/Schematic.png
البته همه توی این فایل هستند:
http://santooristan.persiangig.com/پروژه کارشناسی/FAT.rar
میشه یکی به من بگه چرا وقتی به تابع f_open میرسه گیر می کنه و دیگه از اون تابع بیرون نمیاد؟
من عین برنامه آقا حامد که توی مجله نویز 2 نوشته بود رو کپی کردم توی کدویژن(البته تنظیمات مربوط به mega64 رو تبدیل کردم به mega32 و تنظیمات مربوط خواندن sd cart کدویژن را هم انجام دادم)
این کد:
کد:
#include <mega32.h>
#include <ff.h>
#include <stdio.h>
#include <delay.h>
#include <alcd.h>
#define T1_OVF_FREQ 100
#define T1_PRESC 1024L
#define T1_INIT (0x10000L-(_MCU_CLOCK_FREQUENCY_/(T1_PRESC*T1_OVF_FREQ)))
unsigned char buffer[15]="ECA the BEST..";
unsigned char buffer2[10];
unsigned char buffer3[5];
FRESULT res;
unsigned int nbytes;
FATFS fat;
FIL file;
char path[]="0:/ECA.txt";
interrupt [TIM1_OVF] void timer_comp_isr(void)
{
/* re-initialize Timer1 */
TCNT1H=T1_INIT>>8;
TCNT1L=T1_INIT&0xFF;
/* card access low level timing function */
disk_timerproc();
}
void main(void)
{
TCCR1A=0x00;
TCCR1B=(1<<CS12)|(1<<CS10);
TCNT1H=T1_INIT>>8;
TCNT1L=T1_INIT&0xFF;
TIMSK=1<<TOIE1;
#asm("sei")
lcd_init(16);
lcd_clear();
if ((res=f_mount(0,&fat))==FR_OK)
lcd_putsf("FAT mounted = OK");
delay_ms(100);
lcd_clear();
if ((res=f_open(&file,path,FA_CREATE_ALWAYS))==FR_OK)
lcd_putsf("File opened");
delay_ms(1000);
lcd_clear();
if ((res=f_write(&file,buffer,15,&nbytes))==FR_OK)
lcd_putsf("Writing Data");
delay_ms(1000);
lcd_clear();
if ((res=f_close(&file))==FR_OK)
lcd_putsf("File closed");
delay_ms(1000);
lcd_clear();
if ((res=f_open(&file,path,FA_READ))==FR_OK)
lcd_putsf("File opened");
delay_ms(1000);
lcd_clear();
if ((res=f_read(&file,buffer2,10,&nbytes))==FR_OK)
lcd_putsf("Reading Data");
delay_ms(1000);
lcd_clear();
if ((res=f_read(&file,buffer3,5,&nbytes))==FR_OK)
lcd_putsf("Reading Data");
delay_ms(1000);
lcd_clear();
if ((res=f_close(&file))==FR_OK)
lcd_putsf("File closed");
while(1);
}
این هم شماتیک:
http://santooristan.persiangig.com/image/Schematic.png
البته همه توی این فایل هستند:
http://santooristan.persiangig.com/پروژه کارشناسی/FAT.rar
میشه یکی به من بگه چرا وقتی به تابع f_open میرسه گیر می کنه و دیگه از اون تابع بیرون نمیاد؟





دیدگاه