من تو ابتدای حافظه EEPROM دو تا متغیر ذخیره میکنم .وقتی میکرو ریست میشه این متغیرها مقداراشون صحیح نیست ولی وقتی از آدرس بالاتر شروع میکنم مثلا متغیرهامو از آدرس 10 هگز شروع میکنم این مورد وجود نداره.حالا میخوام بدونم جچوری میشه تو بسکام تعیین کرد که متغیرهای EEPROM از کدوم آدرس به بعد نوشته بشن.ممنون
اطلاعیه
Collapse
No announcement yet.
اتنخاب آدرس شروع متغیرهای EEPROM
Collapse
X
-
پاسخ : اتنخاب آدرس شروع متغیرهای EEPROM
نوشته اصلی توسط hamedhamidiمن تو ابتدای حافظه EEPROM دو تا متغیر ذخیره میکنم .وقتی میکرو ریست میشه این متغیرها مقداراشون صحیح نیست ولی وقتی از آدرس بالاتر شروع میکنم مثلا متغیرهامو از آدرس 10 هگز شروع میکنم این مورد وجود نداره.حالا میخوام بدونم جچوری میشه تو بسکام تعیین کرد که متغیرهای EEPROM از کدوم آدرس به بعد نوشته بشن.ممنون
چرا با آدرس کار میکنی ؟؟
اسم متغیرتون رو مشخص کنید راحته راحت (کامپایلر خودش همه کارها رو میکنه)
موفق باشید
-
پاسخ : اتنخاب آدرس شروع متغیرهای EEPROM
خوب اشکال کار دقیقا همین جاست دیگه.تو کامپایلر تو هلپ خودش گفته تو 10 بایت اول چیزی ننویسین که ممکنه کامپایلر اونا رو استفاده کنه و رونویسی بشه ولی خودش متاسفانه اینو رعایت نکرده و متغیرهایی که تو 10 بایت اول نوشته میشن رونویسی میشن و از بین میرن.حالا من میخوام بگم متغیرها رو مثلا از آدرس 10 به بعد آدرس دهی کن.
ممنون
دیدگاه
-
پاسخ : اتنخاب آدرس شروع متغیرهای EEPROM
نوشته اصلی توسط امیر . مبه شکل زیر :
کد:Dim bx as ERAM byte at $40
دیدگاه
-
پاسخ : اتنخاب آدرس شروع متغیرهای EEPROM
نوشته اصلی توسط SAMAN.ASADIبرنامه رو میشه بزاریدکد:$regfile = "m32def.dat" $crystal = 16000000 Config Lcdpin = Pin , Db4 = Portc.5 , Db5 = Portc.4 , Db6 = Portc.3 , Db7 = Portc.2 , E = Portc.6 , Rs = Portc.7 Config Lcd = 16 * 2 Dim Eram_stored_month As Eram Byte Stored_month = Eram_stored_month Do 'my program Loop End
دیدگاه
-
پاسخ : اتنخاب آدرس شروع متغیرهای EEPROM
من با بسکام کار نکردم ولی توی کدویژن همچین چیزی نداره خودش اتوماتیک انجام میده آدرس دهی رو.
اما به هر حال اگر نمیشه یا میخواید خودتون آدرس بدید میتونید آدرستون رو داخل یک متغیر قرار بدید و هر بار که آدرس دهی میکنید یک واحد به آدرستون اضافه کنید تا دفعه بعد به آدرس بعدی بره. البته اگر متغیر قبول میکنه.
خیلی عجیبه آخه مگه متغیرها رو برنامه تعریف میکنه که شما میخواید خودش اتوماتیک تعریف کنه! حتی اگر هم لازم باشه آدرس دهی رو خودتون انجام بدید معمولا متغیرها یک بار توسط برنامه نویس تعریف میشن و در طول برنامه ازشون استفاده میشه نه اینکه داخل خود برنامه متغیرها تعریف بشن! که در این صورت میتونید تک تک بهشون عدد بدید.
دیدگاه
-
پاسخ : اتنخاب آدرس شروع متغیرهای EEPROM
نوشته اصلی توسط hamedhamidiنمونه برنامه رو همگذاشتم
آقا من رفتم چک کردم
با این وجود که خیلی برام سخت بود(چون بسکام یادم رفته) ولی به خاطر اینکه رفع ابهام بشه خودم رفتم برنامه رو نوشتم!!!
تو کدویژن من تا به حال به چنین مشکلی بر نخوردم
این هم فایلش
http://s5.picofile.com/file/8114653476/EEPROM.zip.html
همان طور که میبینید مدار دو کلید داره
کلید بالایی یکی اضاف میکنه و کلید پایینی یکی کم میکنه
مثلا اگر عدد را به 110 برسانیم و شبیه ساز را استپ کنیم و دوباره برنامه را اجرا کنیم میبینیم که عدد نمایش داده شده همان عدد 110 هست!
1000 بار هم این عدد رو تغییر بدی و برنامه رو استارت استپ کنی میبینی که مقدار نشون داده شده برابر شده با همان عدد قبلی
این هم کدش
کد:$regfile = "m32def.dat" $crystal = 8000000 Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.2 , Rs = Portc.0 Config Lcd = 16 * 2 Dim _eram As Eram Byte , A As Byte If _eram = 255 Then _eram = 250 Ddrd = 0 Portd = 255 A = _eram Cls Lcd A '============================================== Do '------------------------------- If Pind.0 = 0 And A < 250 Then Waitms 20 If Pind.0 = 0 Then Incr A _eram = A Cls Lcd A While Pind.0 = 0 : Wend End If End If '------------------------------- If Pind.1 = 0 And A > 0 Then Waitms 20 If Pind.1 = 0 Then Decr A _eram = A Cls Lcd A While Pind.1 = 0 : Wend End If End If '------------------------------- Loop End
دیدگاه
-
پاسخ : اتنخاب آدرس شروع متغیرهای EEPROM
نوشته اصلی توسط morteza_fakhimy نمایش پست هاسلام. آیا ممکن است فقط آدرس شروع حافظه EEPROM را به میکرو دهیم. و از آن آدرس متغیرها به ترتیب بصورت خودکار ذخیره شوند؟Aristar Group - Always And Forever
دیدگاه
دیدگاه