توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : کار با کتابخانه ff.h کدویژن
درود بر دوستان گل :hi:
اقا یه سوال در مورد نوشتن در حافظه mmc دارم
برای نوشتن در این نوع حافظه باید کد دستوری به شکل زیر استفاده کرد:shj:
res=f_write(&file,buffer,14,&nbytes)
حالا سوال من اینه که چطور باید به متغییر buffer مقدار دهی کرد
مثلا بخواهیم مقدار یه سنسور را از خروجی بریزیم داخل این متغییر
اگه به این شیوه
buffer[u]=t; که u متغییری است که مقدارش از صفر تا ....
اضافه می شود حالا به جای اینکه عدد در این متغییر بافر ذخیره شود فاصله چاپ می کند( یعنی فضا را اشغال میکند و رایت می شود ولی فقط فاصله )دلیل چیست:cry:
buffer[2] = 4;
در این مثال عدد 4 در خانه ی شماره 2 آرایه ی buffer قرار میگیرد
buffer[2] = 4;
در این مثال عدد 4 در خانه ی شماره 2 آرایه ی buffer قرار میگیرد
ممنون دوست عزیز ولی مشکل من در فهم ارایه و .... نیست !
منظور از چطور باید مقدار دهی کرد اینکه با این روش نمی شه مثلا بیایم
متغییر t که مقدار دما از ورودی هست را مثلا این جوری بریزیم
buffer[u]=t;
از نظر تئوری درسته ولی در عمل ...:baad:
میشه ولی باید دید که در منطق برنامه مشکلی نباشه.
شما ابتدا همون چیزی که گفتم رو بریزید رو حافظه و بعد در یک آرایه ی دیگه بخونید ببینین اگه کار نکرد معلوم میشه که مشکل از جای دیگس.
شما برای رفع یک مشکل باید مرحله به مرحله از درست بودن قضیه مطمئن بشین و مستقیم نرید سر آخر کار
نه درسته من ابتدا همون طوری که شما در دوپست قبل نوشته بودید زدم همون نتیجه ای که گفتم حاصل شد
اما اگه اینجوری بنویسم درست میشه
buffer[2] =' 4';
ولی حالا یه مقدار متغییر را چیکار کنیم :wink:
با سلام
اطلاعات بافر را اگر به صورت باینری در فایل ذخیره می کنید، باید به صورت باینری بخوانید.
با سپاس
نه درسته من ابتدا همون طوری که شما در دوپست قبل نوشته بودید زدم همون نتیجه ای که گفتم حاصل شد
اما اگه اینجوری بنویسم درست میشه
buffer[2] =' 4';
ولی حالا یه مقدار متغییر را چیکار کنیم :wink:
'4' یعنی کد اسکی کاراکتر 4 رو ذخیره کنه.
در حالت 4 خالی مقدار عدد 4 یعنی 0x04 رو ذخیره میکنید ولی در حالت '4' شما کاراکتر 4 یعنی 0x34 هگز معادل هدد 52 رو ذخیره میکنید.
برای ذخیره سازی فرقی ندارن. ولی برای جایی که استفاده میشه و نحوه ی استفاده سرتاپا فرق دارن.
اگه شما متغییر t رو درست مقدار بدین مشکلی نخواهد بود. که دارین اشتباه کار میکنین احتمالا
همین دیگه کد اسکی رو توی فایل txt ذخیره میکنه ولی عدد معمولی را نه
من یه راهی میخوام که بتونم مقدار مثلا دما رو به اسکی تبدیل کنم بریزم داخلش:o
دنبال توابع atoi و itoa در هلپ بگردین.
برای تبدیل عدد به رشته و برعکس استفاده میشن
همین دیگه کد اسکی رو توی فایل txt ذخیره میکنه ولی عدد معمولی را نه
سلام
چطوری این قضیه رو تست کردین؟
اگر فایل رو با Notepad بازکنید عدد 4 چون معادل کاراکتری نداره اصلاً دیده نمی شه. باید فایل رو با Hex Editor باز کنید تا مطمئن بشین.
سلام
چطوری این قضیه رو تست کردین؟
اگر فایل رو با Notepad بازکنید عدد 4 چون معادل کاراکتری نداره اصلاً دیده نمی شه. باید فایل رو با Hex Editor باز کنید تا مطمئن بشین.
ممنون دوست عزیز
همون طور که در بالا گفتم زمانی که ما مثلا این طوری مقدار بدهیم
buffer[2] = 4;
فضایی در فایل txt ایجاد شده و دیده نمی شه مثل یه فضای خالی هستش زمانی که ctrl+a میکنی مثلا در حدود 15 کاراکتر انتخاب میشه ولی دیده نمیشه ولی زمانی که اینطوری مقدار بدهیم
buffer[2] =' 4';
به طور معمولی عدد چهار دیده میشه
لطفا نرم افزار Hex Editor را در صورت امکان بگذارید:wink:
نرم افزار های Hex Editor زیادی توی اینترنت براحتی پیدا می شن. من خودم از xvi32 استفاده می کنم که پیوستش کردم.
ممنون دوست عزیز کاملا حق با شما بود زمانی که فایل txt را با این نرم افزار باز میکنم تمامی تغییرات دما رو می توان مشاهده کرد !
خواهش می کنم. این همون گفته دوستمون بود که گفت اگر شما به صورت Binary در فایل می نویسید باید آنرا به صورت binary بخوانید و اگر به صورت ascii بنویسید باید به صورت ascii بخوانید.
خواهش می کنم. این همون گفته دوستمون بود که گفت اگر شما به صورت Binary در فایل می نویسید باید آنرا به صورت binary بخوانید و اگر به صورت ascii بنویسید باید به صورت ascii بخوانید.
سلام
راه اینکه چه جوری بیایم توی متغییر اسکی بنویسیم هم راحته کافیه فقط ...
t=t|0x30;
buffer[]=t;
بعد راحت میتونیم توی فایل txt عدد مورد نظر را بخونیم!:o
این راه فقط واسه اعداد یک رقمی جواب میده. علت این or کردن با 30 هگز همون جمع کردن به عدد 48 دسیماله. که اعداد 0 تا 9 رو به کاراکتر "0" تا "9" تبدیل می کنه.
اگر عددتون مثلاً 48 دسیمال باشه این کار هیچ تغییری روش نمیده و بصورت همون 48 ذخیرش می کنه و باز اگر عددتون 0 باشه این کار 48 تا بهش اضافه می کنه و بازم همون 48 رو ذخیره می کنه که باعث اشتباه میشه.
نمی دونم چرا اصرار دارید که فایل رو به صورت ascii ذخیره کنید که هم حجم فایلتون رو بیشتر می کنه و هم کار خوندن و نوشتن رو.
درسته دوست عزیز الان دارم با این روش ساده دماکه عددی دو رقمی هست را روی فایل txt ذخیره کردم اینم راه حلش
i=t/10;
i1=t%10;
i=|0x30;
i1=|0x30;
buffer[u]=i;
buffer[u+1]=i1;
این کار من برای راحتی خوندن هستش همه که نمی تونن با نرم افزار هگز ادیتور باز کنن و تبدیل کنن به دسیمال
سلام
شما با این ff.h در کدویژن جواب گرفته اید ؟
سلام
شما با این ff.h در کدویژن جواب گرفته اید ؟
با درود :hi:
بله جواب گرفتم به لطف برادر چان :wink:
با درود :hi:
بله جواب گرفتم به لطف برادر چان :wink:
می شه کمی توضیح در بارش بدهید :mrgreen:
می شه کمی توضیح در بارش بدهید :mrgreen:
در مورد کدوم قسمتش
شما دقیق میخواهید چیکار کنید ؟
من فقط تا اونجا پیش رفتم که یه فایل txt بخونه و بنویسه و یا ایجاد کنه
دیگه ادامه اش ندادم خدایی کتابخونه کاملی داره
در مورد کدوم قسمتش
شما دقیق میخواهید چیکار کنید ؟
من فقط تا اونجا پیش رفتم که یه فایل txt بخونه و بنویسه و یا ایجاد کنه
دیگه ادامه اش ندادم خدایی کتابخونه کاملی داره
سلام
کتابخانه ای که من در اختیار دارم در کدویژن اجرا نمیشه و ایراد میگیره
اگر کتابحانه ff.h شما سالمه لطفا" فایلش را بذارید اینجا.
من هم در همین حد میخوام که یک فایل txt بخونه و بنویسه و یا ایجاد کنه.
اگر میشه یک مثال ساده هم قرار بدهید.
من کتابخانه ای به کدویژن اضافه نکردم بلکه از کتابخانه خودش استفاده کردم در ورژن 2.5.03
در مورد مثال هم بر روی چشم پیداش میکنم و براتون اپ میکنم
من کتابخانه ای به کدویژن اضافه نکردم بلکه از کتابخانه خودش استفاده کردم در ورژن 2.5.03
در مورد مثال هم بر روی چشم پیداش میکنم و براتون اپ میکنم
مرسی و ممنون دوست گرامی
خدمت شما
#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 که با همین نام در مموری کارت موجود هست را ابتدا باز و سپس می خواند و بعد میبنده وپایان برنامه .
مسعود جان این برنامه تا رم چند گیگ جواب میده؟
من رم SD یک گیگ گذاشتم و با همین برنامه کار کردم اما جواب نداد، از سخت افزارم مطمئنم چون با یه برنامه دیگه البته شبیه همین تونستم یه فایل تو SD بسازم اما الان بعد از خط
if ((res=f_mount(0,&fat))==FR_OK)
lcd_putsf("FAT mounted = OK");
دیگه میکرو کار نمیکنه. :unh:
ممکنه به خاطر این باشه که از SD استفاده کردم؟ چون توی سایت eca خونم که با SD یکم اذیت میکنه اما جایی دیگه گفته بودن هم با SD و هم با MMC جواب میده.
یه راهنمایی کن :hi:
مسعود جان این برنامه تا رم چند گیگ جواب میده؟
من رم 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:
راستی این دستور خیلی مهمه
char path1[]="0:/MASOUD.txt";
اسمی که توی رم ایجاد میکنی باید دقیقا با این جا یکسان باشه و توی برنامه اگه توجه کنی 14 بایت از این فایل میخونه مثلا همون یه اسم
مرسی مسعود جان
یه سوال...
من میخوام اطلاعات یه عکس رو که حدود 100KB میشه رو ذخیره کنم، چون حافظه های دیگه ای مثل at45db161b اذیت کرد :unh: اومدم سراغ MMC و SD اما از اونجایی که حافظه من (مثلا 1G) تلف میشه و همینطور هزینه من بالا میره پیشنهادی داری که بتونم این مساله رو حل کنم؟ آخه فکر نکنم اون MMC قدیمی ها که با ظرفیت 128 و 64 و یا حتی 512M دیگه گیر بیاد :sa:
مرسی مسعود جان
یه سوال...
من میخوام اطلاعات یه عکس رو که حدود 100KB میشه رو ذخیره کنم، چون حافظه های دیگه ای مثل at45db161b اذیت کرد :unh: اومدم سراغ MMC و SD اما از اونجایی که حافظه من (مثلا 1G) تلف میشه و همینطور هزینه من بالا میره پیشنهادی داری که بتونم این مساله رو حل کنم؟ آخه فکر نکنم اون MMC قدیمی ها که با ظرفیت 128 و 64 و یا حتی 512M دیگه گیر بیاد :sa:
حق با شماست هزینه نسبت به کاری که میخواهیم انجام بدهیم متناسب نیست :0013:
در کل پیشنهاد من بازهم استفاده از mmc هست حافظه های 64 و 128 کم پیدا میشه ولی 256 و 512 زیاده تو بازار قیمتی هم ندارند 3 یا 4 تومن موبایل فروشی ها زیاد دارن چون خیلی ها رمشون را که ارتقا دادن اونا را هم انداختن دور :mrgreen:
پیشنها خوبی بود :wink: چرا نرم موبایل فروشی ها بپرسم، مرسی :hi:
آقا من این SD رو 100 بار به همه نوعش فرمت کردم، جواب نمیده :unh:
فقط اون اول برنامه ای که توی مجله نویز شماره 2 بود که مشابه برنامه آقا مسعود هست رو ریختم رو میکرو و فقط فایل txt رو برام ساخت و نمیشد داخلش چیزی نوشت :unh:
کچلم کرده دیگه :unh: یکی یه راهنمایی کنهcry::
مرسی :hi:
دوست من لطف کن شماتیک و برنامه ای که نوشتی ایجا بزار به طور کامل :wink:
دوست من لطف کن شماتیک و برنامه ای که نوشتی ایجا بزار به طور کامل :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:
برنامه یه مشکلاتی داشت من زیاد وقت نداشتم برات تصحیحش کنم اما یه نمونه کد برات نوشتم اینو امتحان کن جواب میگیری
اما نکات
1- فرکانس کاری را 8 مگا خارجی بگذار
2- LCD به پورت a متصل هستش
3- در نرم افزار confing->lib->mmc را به نحوه تنظیم توجه کن
4-یه فایل txt در مموری به نام test بریز و اسمی با 10 کاراکتر توش بنویس
5- باید جواب بده 100%:0013:
در اخر این برنامه فعلا برای خوندن از MMC هستش .
در برنامه قبلی چه چیزی میخواستی در فایل txt بنویسه خوب فقط ایجاد میکرد و فکر نمی کنم هنگ هم کرده باشه چون داشته رایت میکرده و خوب چیزی هم نمی دیدی دیگه موفق باشی :0013:
مرسی مسعود جان اما بازم جواب نداد!!!
- LCD که فرقی نداره به کدوم پورت باشه.
- تو تنظیمات MMC هم که اون 2 تا پایه اصلا استفاده نمیشه، با این حال رو پورت B تنظیم کردم بازم جواب داد.
برا بار اول که جواب گرفتم همه مراحل روی LCD نمایش میدادم، فقط مرحله writing رو نشون نمیداد اما تا آخر مراحل میرفت و باز کردن و بستن فایل نشون میداد!!!
میکروم mega32a که من توی برنامه mega32 انتخاب کردم، اونم درست کردم اما بازم جواب نداد.
دیگه مو تو سرم نمونده که بکنم cry::
مرسی مسعود جان اما بازم جواب نداد!!!
- lcd که فرقی نداره به کدوم پورت باشه.
- تو تنظیمات mmc هم که اون 2 تا پایه اصلا استفاده نمیشه، با این حال رو پورت b تنظیم کردم بازم جواب داد.
برا بار اول که جواب گرفتم همه مراحل روی lcd نمایش میدادم، فقط مرحله writing رو نشون نمیداد اما تا آخر مراحل میرفت و باز کردن و بستن فایل نشون میداد!!!
میکروم mega32a که من توی برنامه mega32 انتخاب کردم، اونم درست کردم اما بازم جواب نداد.
دیگه مو تو سرم نمونده که بکنم cry::
ببین دوست عزیز برای اتصال mmc به میکرو از ارتباط spi استفاده میشه و پایه های اون باید استفاده بشه
و در تنظیمات باید دقیق تنظیم بشه
در ضمن الان با کریستال چند مگا امتحان کردی
همین برنامه را تست کردی ؟؟
ببین دوست عزیز برای اتصال mmc به میکرو از ارتباط spi استفاده میشه و پایه های اون باید استفاده بشه
و در تنظیمات باید دقیق تنظیم بشه
در ضمن الان با کریستال چند مگا امتحان کردی
همین برنامه را تست کردی ؟؟
بله درسته، دقت کردم!
تست کردم، هم با 14.745600 هم با 10 خارجی و هم با 8 داخلی، البته کریستال 8 نداشتم اما خب بازم فکر کنم باید کار کنه دیگه!!!
مدار رو هم طبق مدار مجله نویز بسته بودم که البته جای 3.3 و 1.8 جابجا بود، شایدم فرقی نداشته باشه، در هر صورت الان طبق مدار شما میبندم و تست میکنم.
مرسی :hi:
بله درسته، دقت کردم!
تست کردم، هم با 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);
دوباره این تاپیک اومد بالا یادش افتادم :brk:
از دوستان کسی تونسته با کتابخانه اقای چان فایل wave را با میکرو پخش کنیه و کسی نمونه کدی برای این کار نداره یا توضیحی در این مورد :o
1- خوب جای مقاومت ها رو که جابجا بستی ولتاژش فرق داره :sa:
2- ببینید شما که بهتر از من میدونید در این پروژه از تایمر 1 استفاده شده و و از اونجایی که تایمر ها وابسته به کلاک میکرو هستن پس گذاشتن کریستال 8 با 10 و یا 14 فرق داره برای تایمر و تنظیمات تایمر ممکنه بهم بخوره .
3-کدوم شماره مجله نویز این مطلب را داره :0013:
جای مقاومت ها رو تغییر دادم، نشون میده فایل باز شد اما فایلی نمیسازه!
درسته تایمر وابسته است به فرکانس میکرو، با وقفه تایمر هر 10 میلی ثانیه یکی از توابع رو فراخونی میکنه، خودش اون اول برنامه یه دستور داره که فکر کنم این تنظیمات رو نسبت به فرکانس کاری میکرو انجام میده.
شماره 2 ، برنامه ش هم بصورت کامل گذاشته.
جای مقاومت ها رو تغییر دادم، نشون میده فایل باز شد اما فایلی نمیسازه!
درسته تایمر وابسته است به فرکانس میکرو، با وقفه تایمر هر 10 میلی ثانیه یکی از توابع رو فراخونی میکنه، خودش اون اول برنامه یه دستور داره که فکر کنم این تنظیمات رو نسبت به فرکانس کاری میکرو انجام میده.
شماره 2 ، برنامه ش هم بصورت کامل گذاشته.
با درود
در مورد کدوم برنامه صحبت کردید الان برنامه ای که من بهتون دادم فقط یه فایل txt را از رم بارگذاری کرده و میخونه همین :0013:
با درود
در مورد کدوم برنامه صحبت کردید الان برنامه ای که من بهتون دادم فقط یه فایل txt را از رم بارگذاری کرده و میخونه همین :0013:
همون برنامه زمیمه شده مجله نویز.
گذاشتم اینجا دانلود کنید.
مسعود جان من دارم رو برنامه شما هم کار میکنم، فایل باز میکنه اما چیزی نمیخونه!!!
شرط تابع f_read و f_close هم برقرار نمیشه چون پیام مربوطه رو نشون نمیده!!!
مسعود جان من تونستم با برنامه شما اطلاعات یه فایل رو بخونم اما بطور کاملا اتفاقی!!!!:sa:
اونم اینکه وقتی داشتم یه برنامه دیگه رو تست میکردم که پایه CS رو روی PB.3 تعریف کرده بود فراموش کردم بعد از پروگرام کردن میکرو با برنامه خودم که پایه CS رو روی PB.4 تعریف کردم ارتباطش رو درست کنم و بعد از روشن کردن مدار با کمال تعجب فهمیدم که از اونجایی که من پایه CS رو روی PB.4 تعریف کردم مدار داره کار میکنه و اطلاعات رو از توی فایل txt که خودم توی میکرو ریختم میخونه و نشون میده!!!!!!!!!!!!!!!!!!!!!!!!!!!
در هر صورت بازم نمیتونم فایل ایجاد کنم و توش اطلاعات بنویسم :unh:
فکر میکنم این پایه CS مربوط به خوندن و نوشتن باشه، درسته؟
این پایه CS مموری کارش چیه؟
لطفا راهنمایی کنین :hi:
خوبه به نتایجی رسیدی دوست من
cs که مربوط به انتخاب مموری کارته که اتصالش تو حافظه های mmc بیشتر مورد استفاده قرار میگیره و که اتصالش به اینکه به کدوم پایه باشه دلخواه هستش. این بر میگرده به تنظیماتتون
راستی پایه های میکرو SD باید اینجوری متصل بشه من دقیق نمی دونم چطوری پایه مموری را به میکرو متصل کردید
عکس زیر را یه نیگاه بندازید
مسعود جان واقعا این دیگه نوبرشه!!!!!!!!!!!
من الان هم فایل txt میسازم هم توش اطلاعات مینویسم و هم ازش میخونم، اما چطوری......؟
اینطور که اول تغذیه رو وصل میکنم و پایه CS هم طبق پیکربندی خودم به PB.4 (مطابق تصویری که شما زمیمه کردی) وصل هست، تو این حالت 2 شرط اول اکی میشه ولی به بعدش دیگه چیزی رو LCD نمایش نمیده و معنیش اینه که اون شرط های دیگه درست نیست و بعد در همون حالت پایه CS از روی PB.4 میذارم روی PB.3 و با نهایت تعجب میبینم همه دستورات اجرا میشه و بعد از اتمام رم رو لپ تاپ میخونم و میبینم هم MMC.txt رو ساخته و هم توش اطلاعات رو نوشته!!!!!!!!!!!!!!!!!!!!!
اما این فایده ای نداره :( چون اینطوری که نمیشه کار کرد :sa: مگر اینکه یه کارگر افغانی استخدام کنم جای CS عوض کنه :baad:
یه نگاهی به برنامه بنداز و نظرت بگو.
مرسی :hi:
من برنامه تون را چک کردم مشکل خاصی نداشت در مورد تنظیمات اتصال به مموری هم میدونم حتما درست وصل کردید یه چیزی شما گفتی وقتی پایه را درش میارم و میزنم به اون یکی بقیه برنامه اجرا میشه این دفعه پایه cs/ را به زمین وصل کن ببین برنامه درست کار میکنه یا نه:0013:
درسته مسعود جان...
احساس کردم که چون اون پورت پیکر بندی نشده و در حالت عادی صفر بعد از اتصال کار میکنه، که همین کار هم انجام داده بودم اما بی نتیجه بود.
رو pb.4 که به cs وصل یه led گذاشتم و دیدم که با یه تاخیر 1 و 0 میشه، فکر میکنم این یک و صفر شدن cs منظم نیست که درست کار نمیکنه اما کجای تابع و چطور به cs دستور داده میشه نمیدونم.
درسته مسعود جان...
احساس کردم که چون اون پورت پیکر بندی نشده و در حالت عادی صفر بعد از اتصال کار میکنه، که همین کار هم انجام داده بودم اما بی نتیجه بود.
رو pb.4 که به cs وصل یه led گذاشتم و دیدم که با یه تاخیر 1 و 0 میشه، فکر میکنم این یک و صفر شدن cs منظم نیست که درست کار نمیکنه اما کجای تابع و چطور به cs دستور داده میشه نمیدونم.
ببین فرکانس کاری هم خیلی مهمه مثلا من برای تست mmc از کریستال 12 استفاده میکردم جواب نمی گرفتم و فقط از کریستال 8 مگ جواب گرفتم به نظرم شاید به کریستال هم ربط داشته باشه:0013:
شایدم همینطور باشه اما اگه اینطور باشه من نمیتونم فرکانس کای رو بیارم پایین :( چون سرعت برام مهمه :(
شایدم همینطور باشه اما اگه اینطور باشه من نمیتونم فرکانس کای رو بیارم پایین :( چون سرعت برام مهمه :(
نه بابا اینجوریان نیست شما دقیقا چه اطلاعاتی را میخواهید در mmc ذخیره کنید
مثلا من در پروژه ای که داشتم اطلاعات مربوط به یه سنسور را در مموری ذخیره میکردم .
اطلاعات مربوط به عکس که با یه دوربین میگیرم.
با کریستال 8 مگا هم تست کردم جواب نداد. :unh::unh::unh:
با کریستال 8 مگا هم تست کردم جواب نداد. :unh::unh::unh:
راستی مموریت که یک گیگ میکرو sd نیست ؟
راستی مموریت که یک گیگ میکرو sd نیست ؟
نه، از همین SD معمولیاست، هم با 8 تست کردم هم 2 و هم 1 :(:(:(:unh::unh::unh:
You can see links before reply
لطف کن یه عکس از بستن روی برد بردن بذار :0013:
دیگه کم کم حالم داره بهم میخوره از AVR و codevision :baad::baad::baad::baad::baad:
سخت افزارم رو دوتا بردبورد جدید بستم، سوکت مموری رو عوض کردم و هزار و یک احتمال مسخره ای که فکر میکردم چک کردم و تغییر دادم.
حتی برنامه رو یکی از اساتید سایت eca آقای اسدی برام نوشت و جواب گرفت اما من نتونستم جواب بگیرم :baad::baad::baad::baad::baad:
دیگه کم کم حالم داره بهم میخوره از AVR و codevision :baad::baad::baad::baad::baad:
سخت افزارم رو دوتا بردبورد جدید بستم، سوکت مموری رو عوض کردم و هزار و یک احتمال مسخره ای که فکر میکردم چک کردم و تغییر دادم.
حتی برنامه رو یکی از اساتید سایت eca آقای اسدی برام نوشت و جواب گرفت اما من نتونستم جواب بگیرم :baad::baad::baad::baad::baad:
واقعا دیگه نوبرشه :baad:
مدارت که خیلی تمیز بسته شده خدایی کیف کردم مدارهای منو ببنی میفهمی چی میگم :mrgreen:
میکروت را عوض کردی
با یه mega32 دیگه هم تست کردم جواب نداد، قصد کردم با mega64 یا mega128 کار کنم، خدا کنه جواب بده وگرنه... :(
shayanmelody
01-08-2012, 01:34
سلام داداش
من با كدويژن در مورد رم كار نكردم ، اما با avr-dos رم رو راه انداختم.منم مثل شما اولش مشكل داشتم ، هركاري ميكردم ميكرو رم رو نميشناخت
اومدم رم رو گذاشتم كنار ، يه ال اي دي به پايه clk وصل كردم.همونطور كه ميدونيد براي شروع كار ميكرو 100 تا كلاك براي سنكرون شدن رم با خودش ميفرسته
در كمال ناباوري ديدم كه ال اي دي روشن نشد ! بعد فهميدم اشكال كارم از كانفيگ spi بود :دي
بعدش كه مشكل رو رفع كردم مثل هلو كار كرد !
شما اگه با بسكام بلدي كار كني ، بهم بگو تا يه برنامه واس تست رم بهت بدم
اگه بلد نيستي و مايل بودي ، فقط كد هگز رو بريز تو ميكرو و تست كن تا مطمئن بشي مشكلت نرم افزاري نيست
شایان جان من با تابع 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 روشن ميشه و برنامه تموم ميشه
قبل از اينكه رم رو قرار بدي يكبار فرمتش هم بكني بهتره
سلام مهندس
يعني تو عكسي كه نشون دادم، پايه cs رو روي pb.4 تنظيم كردين؟ و بازم اين مشكل پيش مياد؟
آره صادق جان :(:baad:
فايل هاي مورد نياز رو ضميمه كردم
از اين خلاصه تر ديگه نميشد !
چيپ سلكت مموري هم بي.4 گذاشتم تا مثل سخت افزار خودت بشه
فركانسش هم 16 مگ هست
اگه مموري مشكل نداشته باشه و سخت افزارت درست باشه ، پايه دي.0 روشن ميشه
اگه يه جاي كار مشكل داشته باشه ، دي.1 روشن ميشه و برنامه تموم ميشه
قبل از اينكه رم رو قرار بدي يكبار فرمتش هم بكني بهتره
مرسی شایان جانPD.0 روشن شد و درست کار کرد.
میشه با این روش یه فایل txt ایجاد کرد و اطلاعات ازش خوند و یا توش نوشت؟
چطوری؟
shayanmelody
01-08-2012, 11:14
بله ،ميشه
اگه ميخواي برنامه اونم واست بزارم
فقط براي درست كردن فايل تكست بهتره كه يه كريستال ساعت به پايه هاي سي.6 و 7 وصل كني
شایان جان زحمتش بکش، اگه امکان داره دستورات خوندن و نوشتن از فایل 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
اين چند خط يه فايل تكست با نام تست ميسازه و توش متن سلام دنيا رو مينويسه
تاكيد ميكنم ، قسمت كانفيگ ساعت حتما بايد تو متن برنامه باشه وگرنه فايل تكست رو ميسازه ، ولي توش چيزي نمينويسه
من با اين كتابخونه يه ويو پلير درست كردم.اينقدر راحت بود كه نگو !
فکرشو بکن بعد این همه پرسش و پاسخ و این همه دردسر و اعصاب خوردی بعد دو هفته همون مدار دست نخورده رو میاری تست میکنی مثل قبل، میبینی مثل بچه آدم داره کار میکنه :x:x:x:x:x:cry::cry::cry::cry::cry:
فکرشو بکن بعد این همه پرسش و پاسخ و این همه دردسر و اعصاب خوردی بعد دو هفته همون مدار دست نخورده رو میاری تست میکنی مثل قبل، میبینی مثل بچه آدم داره کار میکنه :x:x:x:x:x:cry::cry::cry::cry::cry:
کدووم مدار ؟
خودش کار کرد :mrgreen: کلا گاهی اینجوری میشه
به هر حال خوشحال شدم:0013:
کدووم مدار ؟
خودش کار کرد :mrgreen: کلا گاهی اینجوری میشه
به هر حال خوشحال شدم:0013:
همون مداری که عکسش گذاشتم.
esfelecomp
06-07-2016, 13:49
همون مداری که عکسش گذاشتم.
سلام . امدوارم که در همه ی مراحل زندگیت موفق باشی . میشه این برنامه ای که تو mmc فایل تکست ایجاد و ویرایش و .... می کردی رو برام بذاری ممنون میشم . با همون کتابخونه ff.c . ممنون
Powered by vBulletin® Version 4.2.1 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.