PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : کار با کتابخانه ff.h کدویژن



Ma3ood
25-03-2012, 00:05
درود بر دوستان گل :hi:
اقا یه سوال در مورد نوشتن در حافظه mmc دارم
برای نوشتن در این نوع حافظه باید کد دستوری به شکل زیر استفاده کرد:shj:

res=f_write(&file,buffer,14,&nbytes)
حالا سوال من اینه که چطور باید به متغییر buffer مقدار دهی کرد
مثلا بخواهیم مقدار یه سنسور را از خروجی بریزیم داخل این متغییر
اگه به این شیوه
buffer[u]=t; که u متغییری است که مقدارش از صفر تا ....
اضافه می شود حالا به جای اینکه عدد در این متغییر بافر ذخیره شود فاصله چاپ می کند( یعنی فضا را اشغال میکند و رایت می شود ولی فقط فاصله )دلیل چیست:cry:

esisafa
25-03-2012, 00:55
buffer[2] = 4;

در این مثال عدد 4 در خانه ی شماره 2 آرایه ی buffer قرار میگیرد

Ma3ood
25-03-2012, 01:10
buffer[2] = 4;

در این مثال عدد 4 در خانه ی شماره 2 آرایه ی buffer قرار میگیرد

ممنون دوست عزیز ولی مشکل من در فهم ارایه و .... نیست !
منظور از چطور باید مقدار دهی کرد اینکه با این روش نمی شه مثلا بیایم
متغییر t که مقدار دما از ورودی هست را مثلا این جوری بریزیم
buffer[u]=t;
از نظر تئوری درسته ولی در عمل ...:baad:

esisafa
25-03-2012, 01:41
میشه ولی باید دید که در منطق برنامه مشکلی نباشه.
شما ابتدا همون چیزی که گفتم رو بریزید رو حافظه و بعد در یک آرایه ی دیگه بخونید ببینین اگه کار نکرد معلوم میشه که مشکل از جای دیگس.
شما برای رفع یک مشکل باید مرحله به مرحله از درست بودن قضیه مطمئن بشین و مستقیم نرید سر آخر کار

Ma3ood
25-03-2012, 01:45
نه درسته من ابتدا همون طوری که شما در دوپست قبل نوشته بودید زدم همون نتیجه ای که گفتم حاصل شد
اما اگه اینجوری بنویسم درست میشه
buffer[2] =' 4';
ولی حالا یه مقدار متغییر را چیکار کنیم :wink:

gangi
25-03-2012, 04:56
با سلام
اطلاعات بافر را اگر به صورت باینری در فایل ذخیره می کنید، باید به صورت باینری بخوانید.

با سپاس

esisafa
25-03-2012, 11:26
نه درسته من ابتدا همون طوری که شما در دوپست قبل نوشته بودید زدم همون نتیجه ای که گفتم حاصل شد
اما اگه اینجوری بنویسم درست میشه
buffer[2] =' 4';
ولی حالا یه مقدار متغییر را چیکار کنیم :wink:

'4' یعنی کد اسکی کاراکتر 4 رو ذخیره کنه.
در حالت 4 خالی مقدار عدد 4 یعنی 0x04 رو ذخیره میکنید ولی در حالت '4' شما کاراکتر 4 یعنی 0x34 هگز معادل هدد 52 رو ذخیره میکنید.

برای ذخیره سازی فرقی ندارن. ولی برای جایی که استفاده میشه و نحوه ی استفاده سرتاپا فرق دارن.
اگه شما متغییر t رو درست مقدار بدین مشکلی نخواهد بود. که دارین اشتباه کار میکنین احتمالا

Ma3ood
25-03-2012, 12:16
همین دیگه کد اسکی رو توی فایل txt ذخیره میکنه ولی عدد معمولی را نه
من یه راهی میخوام که بتونم مقدار مثلا دما رو به اسکی تبدیل کنم بریزم داخلش:o

esisafa
25-03-2012, 18:30
دنبال توابع atoi و itoa در هلپ بگردین.
برای تبدیل عدد به رشته و برعکس استفاده میشن

ali_h
25-03-2012, 19:12
همین دیگه کد اسکی رو توی فایل txt ذخیره میکنه ولی عدد معمولی را نه


سلام
چطوری این قضیه رو تست کردین؟
اگر فایل رو با Notepad بازکنید عدد 4 چون معادل کاراکتری نداره اصلاً دیده نمی شه. باید فایل رو با Hex Editor باز کنید تا مطمئن بشین.

Ma3ood
25-03-2012, 21:24
سلام
چطوری این قضیه رو تست کردین؟
اگر فایل رو با Notepad بازکنید عدد 4 چون معادل کاراکتری نداره اصلاً دیده نمی شه. باید فایل رو با Hex Editor باز کنید تا مطمئن بشین.

ممنون دوست عزیز
همون طور که در بالا گفتم زمانی که ما مثلا این طوری مقدار بدهیم
buffer[2] = 4;
فضایی در فایل txt ایجاد شده و دیده نمی شه مثل یه فضای خالی هستش زمانی که ctrl+a میکنی مثلا در حدود 15 کاراکتر انتخاب میشه ولی دیده نمیشه ولی زمانی که اینطوری مقدار بدهیم
buffer[2] =' 4';
به طور معمولی عدد چهار دیده میشه
لطفا نرم افزار Hex Editor را در صورت امکان بگذارید:wink:

ali_h
25-03-2012, 21:34
نرم افزار های Hex Editor زیادی توی اینترنت براحتی پیدا می شن. من خودم از xvi32 استفاده می کنم که پیوستش کردم.

Ma3ood
26-03-2012, 01:47
ممنون دوست عزیز کاملا حق با شما بود زمانی که فایل txt را با این نرم افزار باز میکنم تمامی تغییرات دما رو می توان مشاهده کرد !

ali_h
26-03-2012, 13:19
خواهش می کنم. این همون گفته دوستمون بود که گفت اگر شما به صورت Binary در فایل می نویسید باید آنرا به صورت binary بخوانید و اگر به صورت ascii بنویسید باید به صورت ascii بخوانید.

Ma3ood
26-03-2012, 13:24
خواهش می کنم. این همون گفته دوستمون بود که گفت اگر شما به صورت Binary در فایل می نویسید باید آنرا به صورت binary بخوانید و اگر به صورت ascii بنویسید باید به صورت ascii بخوانید.

سلام
راه اینکه چه جوری بیایم توی متغییر اسکی بنویسیم هم راحته کافیه فقط ...


t=t|0x30;
buffer[]=t;

بعد راحت میتونیم توی فایل txt عدد مورد نظر را بخونیم!:o

ali_h
26-03-2012, 14:06
این راه فقط واسه اعداد یک رقمی جواب میده. علت این or کردن با 30 هگز همون جمع کردن به عدد 48 دسیماله. که اعداد 0 تا 9 رو به کاراکتر "0" تا "9" تبدیل می کنه.
اگر عددتون مثلاً 48 دسیمال باشه این کار هیچ تغییری روش نمیده و بصورت همون 48 ذخیرش می کنه و باز اگر عددتون 0 باشه این کار 48 تا بهش اضافه می کنه و بازم همون 48 رو ذخیره می کنه که باعث اشتباه میشه.
نمی دونم چرا اصرار دارید که فایل رو به صورت ascii ذخیره کنید که هم حجم فایلتون رو بیشتر می کنه و هم کار خوندن و نوشتن رو.

Ma3ood
26-03-2012, 22:29
درسته دوست عزیز الان دارم با این روش ساده دماکه عددی دو رقمی هست را روی فایل txt ذخیره کردم اینم راه حلش


i=t/10;
i1=t%10;
i=|0x30;
i1=|0x30;
buffer[u]=i;
buffer[u+1]=i1;

این کار من برای راحتی خوندن هستش همه که نمی تونن با نرم افزار هگز ادیتور باز کنن و تبدیل کنن به دسیمال

hamidam
23-06-2012, 13:09
سلام
شما با این ff.h در کدویژن جواب گرفته اید ؟

Ma3ood
23-06-2012, 20:48
سلام
شما با این ff.h در کدویژن جواب گرفته اید ؟

با درود :hi:
بله جواب گرفتم به لطف برادر چان :wink:

hamidam
24-06-2012, 18:48
با درود :hi:
بله جواب گرفتم به لطف برادر چان :wink:

می شه کمی توضیح در بارش بدهید :mrgreen:

Ma3ood
25-06-2012, 01:35
می شه کمی توضیح در بارش بدهید :mrgreen:

در مورد کدوم قسمتش
شما دقیق میخواهید چیکار کنید ؟
من فقط تا اونجا پیش رفتم که یه فایل txt بخونه و بنویسه و یا ایجاد کنه
دیگه ادامه اش ندادم خدایی کتابخونه کاملی داره

hamidam
25-06-2012, 09:49
در مورد کدوم قسمتش
شما دقیق میخواهید چیکار کنید ؟
من فقط تا اونجا پیش رفتم که یه فایل txt بخونه و بنویسه و یا ایجاد کنه
دیگه ادامه اش ندادم خدایی کتابخونه کاملی داره

سلام
کتابخانه ای که من در اختیار دارم در کدویژن اجرا نمیشه و ایراد میگیره
اگر کتابحانه ff.h شما سالمه لطفا" فایلش را بذارید اینجا.
من هم در همین حد میخوام که یک فایل txt بخونه و بنویسه و یا ایجاد کنه.
اگر میشه یک مثال ساده هم قرار بدهید.

Ma3ood
25-06-2012, 10:41
من کتابخانه ای به کدویژن اضافه نکردم بلکه از کتابخانه خودش استفاده کردم در ورژن 2.5.03
در مورد مثال هم بر روی چشم پیداش میکنم و براتون اپ میکنم

hamidam
26-06-2012, 09:56
من کتابخانه ای به کدویژن اضافه نکردم بلکه از کتابخانه خودش استفاده کردم در ورژن 2.5.03
در مورد مثال هم بر روی چشم پیداش میکنم و براتون اپ میکنم

مرسی و ممنون دوست گرامی

Ma3ood
26-06-2012, 23:45
خدمت شما


#include <mega32a.h>
#include <alcd.h>
#include <ff.h>
#include <stdio.h>
#include <delay.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[10];

FRESULT res;
unsigned int nbytes;
FATFS drive;
FIL file;
char path1[]="0:/MASOUD.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;

delay_ms(1000);
#asm("sei")

// Alphanumeric LCD initialization
// RS - PORTA Bit 0
// RD - PORTA Bit 6
// EN - PORTA Bit 1
// D4 - PORTA Bit 2
// D5 - PORTA Bit 3
// D6 - PORTA Bit 4
// D7 - PORTA Bit 5
// Characters/line: 16
lcd_init(16);
lcd_clear();


if ((res=f_mount(0,&drive))==FR_OK)
lcd_putsf("FAT mounted = OK");

delay_ms(1000);
lcd_clear();
if ((res=f_open(&file,path1,FA_READ))==FR_OK)
lcd_putsf("File open MASOUD");


delay_ms(1000);
lcd_clear();
if ((res=f_read(&file,buffer,14,&nbytes))==FR_OK)
lcd_putsf("Reading Data");
delay_ms(1000);
lcd_clear();
lcd_puts(buffer);

delay_ms(1000);
lcd_clear();
if ((res=f_close(&file))==FR_OK)
lcd_putsf("File closed");


while(1);
}



توضیح مختصر
فایل TXT به نام masoud که با همین نام در مموری کارت موجود هست را ابتدا باز و سپس می خواند و بعد میبنده وپایان برنامه .

mj3747
26-07-2012, 12:49
مسعود جان این برنامه تا رم چند گیگ جواب میده؟
من رم SD یک گیگ گذاشتم و با همین برنامه کار کردم اما جواب نداد، از سخت افزارم مطمئنم چون با یه برنامه دیگه البته شبیه همین تونستم یه فایل تو SD بسازم اما الان بعد از خط
if ((res=f_mount(0,&fat))==FR_OK)
lcd_putsf("FAT mounted = OK");
دیگه میکرو کار نمیکنه. :unh:
ممکنه به خاطر این باشه که از SD استفاده کردم؟ چون توی سایت eca خونم که با SD یکم اذیت میکنه اما جایی دیگه گفته بودن هم با SD و هم با MMC جواب میده.
یه راهنمایی کن :hi:

Ma3ood
26-07-2012, 17:30
مسعود جان این برنامه تا رم چند گیگ جواب میده؟
من رم SD یک گیگ گذاشتم و با همین برنامه کار کردم اما جواب نداد، از سخت افزارم مطمئنم چون با یه برنامه دیگه البته شبیه همین تونستم یه فایل تو SD بسازم اما الان بعد از خط
if ((res=f_mount(0,&fat))==FR_OK)
lcd_putsf("FAT mounted = OK");
دیگه میکرو کار نمیکنه. :unh:
ممکنه به خاطر این باشه که از SD استفاده کردم؟ چون توی سایت eca خونم که با SD یکم اذیت میکنه اما جایی دیگه گفته بودن هم با SD و هم با MMC جواب میده.
یه راهنمایی کن :hi:

سلام من تا رم دو گیگ میکرو sd جواب گرفتم . اره قبول دارم یه کم اذیت میکنه
از کریستال 8 مگ به بالا استفاده کن
رم را فرمتش کن روی fat 32
فایل txt به نامی که معرفی کردی تو رم قرار بده و یه اسمی چیزی توش بنویس
:0013:

Ma3ood
26-07-2012, 17:38
راستی این دستور خیلی مهمه


char path1[]="0:/MASOUD.txt";

اسمی که توی رم ایجاد میکنی باید دقیقا با این جا یکسان باشه و توی برنامه اگه توجه کنی 14 بایت از این فایل میخونه مثلا همون یه اسم

mj3747
26-07-2012, 19:10
مرسی مسعود جان
یه سوال...
من میخوام اطلاعات یه عکس رو که حدود 100KB میشه رو ذخیره کنم، چون حافظه های دیگه ای مثل at45db161b اذیت کرد :unh: اومدم سراغ MMC و SD اما از اونجایی که حافظه من (مثلا 1G) تلف میشه و همینطور هزینه من بالا میره پیشنهادی داری که بتونم این مساله رو حل کنم؟ آخه فکر نکنم اون MMC قدیمی ها که با ظرفیت 128 و 64 و یا حتی 512M دیگه گیر بیاد :sa:

Ma3ood
26-07-2012, 21:09
مرسی مسعود جان
یه سوال...
من میخوام اطلاعات یه عکس رو که حدود 100KB میشه رو ذخیره کنم، چون حافظه های دیگه ای مثل at45db161b اذیت کرد :unh: اومدم سراغ MMC و SD اما از اونجایی که حافظه من (مثلا 1G) تلف میشه و همینطور هزینه من بالا میره پیشنهادی داری که بتونم این مساله رو حل کنم؟ آخه فکر نکنم اون MMC قدیمی ها که با ظرفیت 128 و 64 و یا حتی 512M دیگه گیر بیاد :sa:
حق با شماست هزینه نسبت به کاری که میخواهیم انجام بدهیم متناسب نیست :0013:
در کل پیشنهاد من بازهم استفاده از mmc هست حافظه های 64 و 128 کم پیدا میشه ولی 256 و 512 زیاده تو بازار قیمتی هم ندارند 3 یا 4 تومن موبایل فروشی ها زیاد دارن چون خیلی ها رمشون را که ارتقا دادن اونا را هم انداختن دور :mrgreen:

mj3747
26-07-2012, 23:39
پیشنها خوبی بود :wink: چرا نرم موبایل فروشی ها بپرسم، مرسی :hi:

mj3747
27-07-2012, 01:41
آقا من این SD رو 100 بار به همه نوعش فرمت کردم، جواب نمیده :unh:
فقط اون اول برنامه ای که توی مجله نویز شماره 2 بود که مشابه برنامه آقا مسعود هست رو ریختم رو میکرو و فقط فایل txt رو برام ساخت و نمیشد داخلش چیزی نوشت :unh:
کچلم کرده دیگه :unh: یکی یه راهنمایی کنهcry::
مرسی :hi:

Ma3ood
27-07-2012, 16:00
دوست من لطف کن شماتیک و برنامه ای که نوشتی ایجا بزار به طور کامل :wink:

mj3747
27-07-2012, 19:14
دوست من لطف کن شماتیک و برنامه ای که نوشتی ایجا بزار به طور کامل :wink:
اینم شماتیک و سورس برنامه
- برنامه رو با کدویژن 2.5.3 نوشتم.
- روی بردبورد نزدیک پایه های تغذیه میکرو و همینطور SD کارت یه 100 نانو و 1000 میکرو گذاشتم.
- بجای زنر از رگولاتور LF33 برا تغذیه SD استفاده کردم.
- با رم 1 ، 2 و 8 گیگ تست کردم.
فکر کنم میکرو به دستور if ((res=f_open(&file,path,FA_CREATE_ALWAYS))==FR_OK) (خط 56 برنامه) که میرسه هنگ میکنه چون بعد اون دستور یه LED گذاشتم که روشن شه اما نشد.
ممکنه به خاطر کمبود SRAM میکرو باشه!!!؟
البته دفعه اول جواب گرفتم، فایل txt رو میساخت اما فقط اطلاعات توش نمینوشت!!!
بعد از اون دیگه نتونستم جواب بگیرم :unh:

Ma3ood
27-07-2012, 21:19
برنامه یه مشکلاتی داشت من زیاد وقت نداشتم برات تصحیحش کنم اما یه نمونه کد برات نوشتم اینو امتحان کن جواب میگیری
اما نکات
1- فرکانس کاری را 8 مگا خارجی بگذار
2- LCD به پورت a متصل هستش
3- در نرم افزار confing->lib->mmc را به نحوه تنظیم توجه کن
4-یه فایل txt در مموری به نام test بریز و اسمی با 10 کاراکتر توش بنویس
5- باید جواب بده 100%:0013:
در اخر این برنامه فعلا برای خوندن از MMC هستش .
در برنامه قبلی چه چیزی میخواستی در فایل txt بنویسه خوب فقط ایجاد میکرد و فکر نمی کنم هنگ هم کرده باشه چون داشته رایت میکرده و خوب چیزی هم نمی دیدی دیگه موفق باشی :0013:

mj3747
27-07-2012, 23:10
مرسی مسعود جان اما بازم جواب نداد!!!
- LCD که فرقی نداره به کدوم پورت باشه.
- تو تنظیمات MMC هم که اون 2 تا پایه اصلا استفاده نمیشه، با این حال رو پورت B تنظیم کردم بازم جواب داد.
برا بار اول که جواب گرفتم همه مراحل روی LCD نمایش میدادم، فقط مرحله writing رو نشون نمیداد اما تا آخر مراحل میرفت و باز کردن و بستن فایل نشون میداد!!!
میکروم mega32a که من توی برنامه mega32 انتخاب کردم، اونم درست کردم اما بازم جواب نداد.
دیگه مو تو سرم نمونده که بکنم cry::

Ma3ood
28-07-2012, 00:03
مرسی مسعود جان اما بازم جواب نداد!!!
- lcd که فرقی نداره به کدوم پورت باشه.
- تو تنظیمات mmc هم که اون 2 تا پایه اصلا استفاده نمیشه، با این حال رو پورت b تنظیم کردم بازم جواب داد.
برا بار اول که جواب گرفتم همه مراحل روی lcd نمایش میدادم، فقط مرحله writing رو نشون نمیداد اما تا آخر مراحل میرفت و باز کردن و بستن فایل نشون میداد!!!
میکروم mega32a که من توی برنامه mega32 انتخاب کردم، اونم درست کردم اما بازم جواب نداد.
دیگه مو تو سرم نمونده که بکنم cry::

ببین دوست عزیز برای اتصال mmc به میکرو از ارتباط spi استفاده میشه و پایه های اون باید استفاده بشه
و در تنظیمات باید دقیق تنظیم بشه
در ضمن الان با کریستال چند مگا امتحان کردی
همین برنامه را تست کردی ؟؟

mj3747
28-07-2012, 00:33
ببین دوست عزیز برای اتصال mmc به میکرو از ارتباط spi استفاده میشه و پایه های اون باید استفاده بشه
و در تنظیمات باید دقیق تنظیم بشه
در ضمن الان با کریستال چند مگا امتحان کردی
همین برنامه را تست کردی ؟؟
بله درسته، دقت کردم!
تست کردم، هم با 14.745600 هم با 10 خارجی و هم با 8 داخلی، البته کریستال 8 نداشتم اما خب بازم فکر کنم باید کار کنه دیگه!!!
مدار رو هم طبق مدار مجله نویز بسته بودم که البته جای 3.3 و 1.8 جابجا بود، شایدم فرقی نداشته باشه، در هر صورت الان طبق مدار شما میبندم و تست میکنم.
مرسی :hi:

Ma3ood
28-07-2012, 00:40
بله درسته، دقت کردم!
تست کردم، هم با 14.745600 هم با 10 خارجی و هم با 8 داخلی، البته کریستال 8 نداشتم اما خب بازم فکر کنم باید کار کنه دیگه!!!
مدار رو هم طبق مدار مجله نویز بسته بودم که البته جای 3.3 و 1.8 جابجا بود، شایدم فرقی نداشته باشه، در هر صورت الان طبق مدار شما میبندم و تست میکنم.
مرسی :hi:
1- خوب جای مقاومت ها رو که جابجا بستی ولتاژش فرق داره :sa:
2- ببینید شما که بهتر از من میدونید در این پروژه از تایمر 1 استفاده شده و و از اونجایی که تایمر ها وابسته به کلاک میکرو هستن پس گذاشتن کریستال 8 با 10 و یا 14 فرق داره برای تایمر و تنظیمات تایمر ممکنه بهم بخوره .
3-کدوم شماره مجله نویز این مطلب را داره :0013:

sadmonew
28-07-2012, 00:47
بله درسته، دقت کردم!
تست کردم، هم با 14.745600 هم با 10 خارجی و هم با 8 داخلی، البته کریستال 8 نداشتم اما خب بازم فکر کنم باید کار کنه دیگه!!!
مدار رو هم طبق مدار مجله نویز بسته بودم که البته جای 3.3 و 1.8 جابجا بود، شایدم فرقی نداشته باشه، در هر صورت الان طبق مدار شما میبندم و تست میکنم.
مرسی :hi:
سلام مهندس
شما اينو هم تست كن. من كه باهاش كامل جواب گرفتم البته با STM32:


FATFS fs; // ijade drive
FIL file_temp;
UINT bw;
.
.
.
f_mount(0,&fs);
f_open(&file_temp, "Iranmicro.txt", FA_WRITE|FA_OPEN_ALWAYS|FA_OPEN_EXISTING);
f_write(&file_temp,"You can see links before reply",23,&bw);
f_close(&file_temp);
f_mount(0, 0);

Ma3ood
28-07-2012, 00:55
دوباره این تاپیک اومد بالا یادش افتادم :brk:
از دوستان کسی تونسته با کتابخانه اقای چان فایل wave را با میکرو پخش کنیه و کسی نمونه کدی برای این کار نداره یا توضیحی در این مورد :o

mj3747
28-07-2012, 00:59
1- خوب جای مقاومت ها رو که جابجا بستی ولتاژش فرق داره :sa:
2- ببینید شما که بهتر از من میدونید در این پروژه از تایمر 1 استفاده شده و و از اونجایی که تایمر ها وابسته به کلاک میکرو هستن پس گذاشتن کریستال 8 با 10 و یا 14 فرق داره برای تایمر و تنظیمات تایمر ممکنه بهم بخوره .
3-کدوم شماره مجله نویز این مطلب را داره :0013:
جای مقاومت ها رو تغییر دادم، نشون میده فایل باز شد اما فایلی نمیسازه!
درسته تایمر وابسته است به فرکانس میکرو، با وقفه تایمر هر 10 میلی ثانیه یکی از توابع رو فراخونی میکنه، خودش اون اول برنامه یه دستور داره که فکر کنم این تنظیمات رو نسبت به فرکانس کاری میکرو انجام میده.
شماره 2 ، برنامه ش هم بصورت کامل گذاشته.

Ma3ood
28-07-2012, 01:04
جای مقاومت ها رو تغییر دادم، نشون میده فایل باز شد اما فایلی نمیسازه!
درسته تایمر وابسته است به فرکانس میکرو، با وقفه تایمر هر 10 میلی ثانیه یکی از توابع رو فراخونی میکنه، خودش اون اول برنامه یه دستور داره که فکر کنم این تنظیمات رو نسبت به فرکانس کاری میکرو انجام میده.
شماره 2 ، برنامه ش هم بصورت کامل گذاشته.
با درود
در مورد کدوم برنامه صحبت کردید الان برنامه ای که من بهتون دادم فقط یه فایل txt را از رم بارگذاری کرده و میخونه همین :0013:

mj3747
28-07-2012, 01:35
با درود
در مورد کدوم برنامه صحبت کردید الان برنامه ای که من بهتون دادم فقط یه فایل txt را از رم بارگذاری کرده و میخونه همین :0013:
همون برنامه زمیمه شده مجله نویز.
گذاشتم اینجا دانلود کنید.

mj3747
28-07-2012, 02:58
مسعود جان من دارم رو برنامه شما هم کار میکنم، فایل باز میکنه اما چیزی نمیخونه!!!
شرط تابع f_read و f_close هم برقرار نمیشه چون پیام مربوطه رو نشون نمیده!!!

mj3747
28-07-2012, 17:31
مسعود جان من تونستم با برنامه شما اطلاعات یه فایل رو بخونم اما بطور کاملا اتفاقی!!!!:sa:
اونم اینکه وقتی داشتم یه برنامه دیگه رو تست میکردم که پایه CS رو روی PB.3 تعریف کرده بود فراموش کردم بعد از پروگرام کردن میکرو با برنامه خودم که پایه CS رو روی PB.4 تعریف کردم ارتباطش رو درست کنم و بعد از روشن کردن مدار با کمال تعجب فهمیدم که از اونجایی که من پایه CS رو روی PB.4 تعریف کردم مدار داره کار میکنه و اطلاعات رو از توی فایل txt که خودم توی میکرو ریختم میخونه و نشون میده!!!!!!!!!!!!!!!!!!!!!!!!!!!
در هر صورت بازم نمیتونم فایل ایجاد کنم و توش اطلاعات بنویسم :unh:
فکر میکنم این پایه CS مربوط به خوندن و نوشتن باشه، درسته؟
این پایه CS مموری کارش چیه؟
لطفا راهنمایی کنین :hi:

Ma3ood
28-07-2012, 17:43
خوبه به نتایجی رسیدی دوست من
cs که مربوط به انتخاب مموری کارته که اتصالش تو حافظه های mmc بیشتر مورد استفاده قرار میگیره و که اتصالش به اینکه به کدوم پایه باشه دلخواه هستش. این بر میگرده به تنظیماتتون
راستی پایه های میکرو SD باید اینجوری متصل بشه من دقیق نمی دونم چطوری پایه مموری را به میکرو متصل کردید
عکس زیر را یه نیگاه بندازید

mj3747
28-07-2012, 23:50
مسعود جان واقعا این دیگه نوبرشه!!!!!!!!!!!
من الان هم فایل txt میسازم هم توش اطلاعات مینویسم و هم ازش میخونم، اما چطوری......؟
اینطور که اول تغذیه رو وصل میکنم و پایه CS هم طبق پیکربندی خودم به PB.4 (مطابق تصویری که شما زمیمه کردی) وصل هست، تو این حالت 2 شرط اول اکی میشه ولی به بعدش دیگه چیزی رو LCD نمایش نمیده و معنیش اینه که اون شرط های دیگه درست نیست و بعد در همون حالت پایه CS از روی PB.4 میذارم روی PB.3 و با نهایت تعجب میبینم همه دستورات اجرا میشه و بعد از اتمام رم رو لپ تاپ میخونم و میبینم هم MMC.txt رو ساخته و هم توش اطلاعات رو نوشته!!!!!!!!!!!!!!!!!!!!!
اما این فایده ای نداره :( چون اینطوری که نمیشه کار کرد :sa: مگر اینکه یه کارگر افغانی استخدام کنم جای CS عوض کنه :baad:
یه نگاهی به برنامه بنداز و نظرت بگو.
مرسی :hi:

Ma3ood
29-07-2012, 02:22
من برنامه تون را چک کردم مشکل خاصی نداشت در مورد تنظیمات اتصال به مموری هم میدونم حتما درست وصل کردید یه چیزی شما گفتی وقتی پایه را درش میارم و میزنم به اون یکی بقیه برنامه اجرا میشه این دفعه پایه cs/ را به زمین وصل کن ببین برنامه درست کار میکنه یا نه:0013:

mj3747
29-07-2012, 03:18
درسته مسعود جان...
احساس کردم که چون اون پورت پیکر بندی نشده و در حالت عادی صفر بعد از اتصال کار میکنه، که همین کار هم انجام داده بودم اما بی نتیجه بود.
رو pb.4 که به cs وصل یه led گذاشتم و دیدم که با یه تاخیر 1 و 0 میشه، فکر میکنم این یک و صفر شدن cs منظم نیست که درست کار نمیکنه اما کجای تابع و چطور به cs دستور داده میشه نمیدونم.

Ma3ood
29-07-2012, 14:03
درسته مسعود جان...
احساس کردم که چون اون پورت پیکر بندی نشده و در حالت عادی صفر بعد از اتصال کار میکنه، که همین کار هم انجام داده بودم اما بی نتیجه بود.
رو pb.4 که به cs وصل یه led گذاشتم و دیدم که با یه تاخیر 1 و 0 میشه، فکر میکنم این یک و صفر شدن cs منظم نیست که درست کار نمیکنه اما کجای تابع و چطور به cs دستور داده میشه نمیدونم.

ببین فرکانس کاری هم خیلی مهمه مثلا من برای تست mmc از کریستال 12 استفاده میکردم جواب نمی گرفتم و فقط از کریستال 8 مگ جواب گرفتم به نظرم شاید به کریستال هم ربط داشته باشه:0013:

mj3747
29-07-2012, 14:25
شایدم همینطور باشه اما اگه اینطور باشه من نمیتونم فرکانس کای رو بیارم پایین :( چون سرعت برام مهمه :(

Ma3ood
29-07-2012, 14:27
شایدم همینطور باشه اما اگه اینطور باشه من نمیتونم فرکانس کای رو بیارم پایین :( چون سرعت برام مهمه :(

نه بابا اینجوریان نیست شما دقیقا چه اطلاعاتی را میخواهید در mmc ذخیره کنید
مثلا من در پروژه ای که داشتم اطلاعات مربوط به یه سنسور را در مموری ذخیره میکردم .

mj3747
29-07-2012, 15:20
اطلاعات مربوط به عکس که با یه دوربین میگیرم.

mj3747
31-07-2012, 00:28
با کریستال 8 مگا هم تست کردم جواب نداد. :unh::unh::unh:

Ma3ood
31-07-2012, 00:55
با کریستال 8 مگا هم تست کردم جواب نداد. :unh::unh::unh:

راستی مموریت که یک گیگ میکرو sd نیست ؟

mj3747
31-07-2012, 02:11
راستی مموریت که یک گیگ میکرو sd نیست ؟
نه، از همین SD معمولیاست، هم با 8 تست کردم هم 2 و هم 1 :(:(:(:unh::unh::unh:
You can see links before reply

Ma3ood
31-07-2012, 11:31
لطف کن یه عکس از بستن روی برد بردن بذار :0013:

mj3747
31-07-2012, 16:42
اینم عکس :(

mj3747
31-07-2012, 22:27
دیگه کم کم حالم داره بهم میخوره از AVR و codevision :baad::baad::baad::baad::baad:
سخت افزارم رو دوتا بردبورد جدید بستم، سوکت مموری رو عوض کردم و هزار و یک احتمال مسخره ای که فکر میکردم چک کردم و تغییر دادم.
حتی برنامه رو یکی از اساتید سایت eca آقای اسدی برام نوشت و جواب گرفت اما من نتونستم جواب بگیرم :baad::baad::baad::baad::baad:

Ma3ood
31-07-2012, 23:00
دیگه کم کم حالم داره بهم میخوره از AVR و codevision :baad::baad::baad::baad::baad:
سخت افزارم رو دوتا بردبورد جدید بستم، سوکت مموری رو عوض کردم و هزار و یک احتمال مسخره ای که فکر میکردم چک کردم و تغییر دادم.
حتی برنامه رو یکی از اساتید سایت eca آقای اسدی برام نوشت و جواب گرفت اما من نتونستم جواب بگیرم :baad::baad::baad::baad::baad:

واقعا دیگه نوبرشه :baad:
مدارت که خیلی تمیز بسته شده خدایی کیف کردم مدارهای منو ببنی میفهمی چی میگم :mrgreen:
میکروت را عوض کردی

mj3747
01-08-2012, 01:09
با یه mega32 دیگه هم تست کردم جواب نداد، قصد کردم با mega64 یا mega128 کار کنم، خدا کنه جواب بده وگرنه... :(

shayanmelody
01-08-2012, 01:34
سلام داداش
من با كدويژن در مورد رم كار نكردم ، اما با avr-dos رم رو راه انداختم.منم مثل شما اولش مشكل داشتم ،‌ هركاري ميكردم ميكرو رم رو نميشناخت
اومدم رم رو گذاشتم كنار ، يه ال اي دي به پايه clk وصل كردم.همونطور كه ميدونيد براي شروع كار ميكرو 100 تا كلاك براي سنكرون شدن رم با خودش ميفرسته
در كمال ناباوري ديدم كه ال اي دي روشن نشد !‌ بعد فهميدم اشكال كارم از كانفيگ spi بود :دي
بعدش كه مشكل رو رفع كردم مثل هلو كار كرد !‌
شما اگه با بسكام بلدي كار كني ، بهم بگو تا يه برنامه واس تست رم بهت بدم
اگه بلد نيستي و مايل بودي ، فقط كد هگز رو بريز تو ميكرو و تست كن تا مطمئن بشي مشكلت نرم افزاري نيست

mj3747
01-08-2012, 02:25
شایان جان من با تابع ff خود کدویژن کار کردم و چون قسمت های دیگه پروژه رو نوشتم و جواب گرفتم نمیتونم از اول شروع کنم.
ممنون میشم اگه کد هگز و شماتیک رو بذاری تا تست کنم.
شایان جان در جریان مشکل من هستی؟ احتمالا شما با این مشکل مواجه نشدی؟
دفعه اول میکرو کار میکنه و هیچکدوم از شرط ها برقرار نمیشه و فایل نمیسازه و بعد اینکه برنامه اصلی تموم میشه و میره توی حلقه بینهایت پایه CS رو که روی PB.4 تنظیم کرده بودم رو در میارم و میذارم روی PB.3 که اصلا برای هیچ کاری پیکربندی نکردم، بعد میکرو رو ریست میکنم و در کمال ناباوری همه دستورات رو انجام میده، فایل میسازه و توش مینویسه و ازش میخونه و نمایش میده :baad:
شایان جان لطفا راهنماییم کن، مرسی. :hi:

sadmonew
01-08-2012, 02:39
سلام مهندس
يعني تو عكسي كه نشون دادم، پايه cs رو روي pb.4 تنظيم كردين؟ و بازم اين مشكل پيش مياد؟

shayanmelody
01-08-2012, 02:44
فايل هاي مورد نياز رو ضميمه كردم
از اين خلاصه تر ديگه نميشد !
چيپ سلكت مموري هم بي.4 گذاشتم تا مثل سخت افزار خودت بشه
فركانسش هم 16 مگ هست
اگه مموري مشكل نداشته باشه و سخت افزارت درست باشه ،‌ پايه دي.0 روشن ميشه
اگه يه جاي كار مشكل داشته باشه ، دي.1 روشن ميشه و برنامه تموم ميشه
قبل از اينكه رم رو قرار بدي يكبار فرمتش هم بكني بهتره

mj3747
01-08-2012, 03:42
سلام مهندس
يعني تو عكسي كه نشون دادم، پايه cs رو روي pb.4 تنظيم كردين؟ و بازم اين مشكل پيش مياد؟
آره صادق جان :(:baad:

mj3747
01-08-2012, 03:52
فايل هاي مورد نياز رو ضميمه كردم
از اين خلاصه تر ديگه نميشد !
چيپ سلكت مموري هم بي.4 گذاشتم تا مثل سخت افزار خودت بشه
فركانسش هم 16 مگ هست
اگه مموري مشكل نداشته باشه و سخت افزارت درست باشه ،‌ پايه دي.0 روشن ميشه
اگه يه جاي كار مشكل داشته باشه ، دي.1 روشن ميشه و برنامه تموم ميشه
قبل از اينكه رم رو قرار بدي يكبار فرمتش هم بكني بهتره
مرسی شایان جانPD.0 روشن شد و درست کار کرد.
میشه با این روش یه فایل txt ایجاد کرد و اطلاعات ازش خوند و یا توش نوشت؟
چطوری؟

shayanmelody
01-08-2012, 11:14
بله ،‌ميشه
اگه ميخواي برنامه اونم واست بزارم
فقط براي درست كردن فايل تكست بهتره كه يه كريستال ساعت به پايه هاي سي.6 و 7 وصل كني

mj3747
01-08-2012, 11:59
شایان جان زحمتش بکش، اگه امکان داره دستورات خوندن و نوشتن از فایل txt رو هم بگو.
مرسی.

shayanmelody
01-08-2012, 12:13
ترتيب پايه هاي ال سي ديت رو بزار

shayanmelody
01-08-2012, 12:15
اينم يك pdf فوق العاده براي كار با اين كتابخونه از مهندس تروشه

shayanmelody
01-08-2012, 12:23
بعد از دستور set ok ، اين خط هارو اضافه كن :





Dim Ff As Byte
Ff = Freefile()

Open "test.txt" For Output As #ff
Print #ff , "Hello World !"
Close #ff



اين چند خط يه فايل تكست با نام تست ميسازه و توش متن سلام دنيا رو مينويسه
تاكيد ميكنم ، قسمت كانفيگ ساعت حتما بايد تو متن برنامه باشه وگرنه فايل تكست رو ميسازه ، ولي توش چيزي نمينويسه
من با اين كتابخونه يه ويو پلير درست كردم.اينقدر راحت بود كه نگو !

mj3747
09-08-2012, 03:18
فکرشو بکن بعد این همه پرسش و پاسخ و این همه دردسر و اعصاب خوردی بعد دو هفته همون مدار دست نخورده رو میاری تست میکنی مثل قبل، میبینی مثل بچه آدم داره کار میکنه :x:x:x:x:x:cry::cry::cry::cry::cry:

Ma3ood
09-08-2012, 11:10
فکرشو بکن بعد این همه پرسش و پاسخ و این همه دردسر و اعصاب خوردی بعد دو هفته همون مدار دست نخورده رو میاری تست میکنی مثل قبل، میبینی مثل بچه آدم داره کار میکنه :x:x:x:x:x:cry::cry::cry::cry::cry:

کدووم مدار ؟
خودش کار کرد :mrgreen: کلا گاهی اینجوری میشه
به هر حال خوشحال شدم:0013:

mj3747
09-08-2012, 17:15
کدووم مدار ؟
خودش کار کرد :mrgreen: کلا گاهی اینجوری میشه
به هر حال خوشحال شدم:0013:
همون مداری که عکسش گذاشتم.

esfelecomp
06-07-2016, 13:49
همون مداری که عکسش گذاشتم.

سلام . امدوارم که در همه ی مراحل زندگیت موفق باشی . میشه این برنامه ای که تو mmc فایل تکست ایجاد و ویرایش و .... می کردی رو برام بذاری ممنون میشم . با همون کتابخونه ff.c . ممنون