امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
تفاوت eeprom و flash در چي هست
نویسنده پیام
Abbaspour آفلاین
كاربر دو ستاره
**

ارسال‌ها: 90
موضوع‌ها: 16
تاریخ عضویت: شهریور ۱۳۸۸

تشکرها : 37
( 21 تشکر در 16 ارسال )
ارسال: #1
Question  تفاوت eeprom و flash در چي هست
سلام
1-من ميخوام بدونم فرق بين eeprom و flash در چي هست؟

2- وقتي در برنامه يک متغيير از نوع فلش يا پي رام تعريف ميکنيم مثل زير
کد:
#include <mega32.h>
#include <delay.h>
#include <stdio.h>
#include <string.h>

flash int b[7]={0xff,0x01,0x88,0x00,0x00,0x00,0x89}
eeprom char string[]="1236547899517532864987456321";
و در طول برنامه محتويات اين محل رو تغيير ميديم ايا با ريست کردن ميکرو دوباره محتويات پي رام يا فلش به همون چيزي که در ابتدا تعريف شده بود برميگرده؟ يا ثابت ميمونه.

3- وقتي ميکرو رو قفل خواندن نوشتن ميزاريم محتويات پيرام و فلش قابل خوندن هست ؟

4- من ميخوام واسه برنامم که با ميکرو در ارتباط هست و به ميکرو دستور ارسال ميکنه و ميکرو اجرا ميکنه يه قفل سخت افزاري ايجاد کنم و چه جايي بهتر از ميکرو. ميخوام چيزايي تو پي رام يا فلش بنويسم و هربار تغييراتي توش بدم بنظر شما از فلش استفاده کنم يا پي رام ؟
۱۵-آذر-۱۳۸۸, ۱۲:۱۳:۳۲
ارسال‌ها
پاسخ
t3r!p3000 آفلاین
         
*****

ارسال‌ها: 5,050
موضوع‌ها: 83
تاریخ عضویت: اردیبهشت ۱۳۸۵

تشکرها : 34447
( 17423 تشکر در 5116 ارسال )
ارسال: #2
RE: تفاوت eeprom و flash در چي هست
محتوی حافظه FLASH کلا خالی و پر می شه و چون برنامه هم تو فلاش ریخته می شه پس تو برنامه نمی شه متغییرهای که از حافظه فلاش استفاده می کنن رو تغییرش داد !!!!

EEPROM هم می شه متغییر ازش استفاده کرد و سرعت کمی داره ولی اطلاعاتش برعکس رم پاک نمی شه با قطع برق !!!!!

دیگه بقیه اش میل خودته !!!
۱۵-آذر-۱۳۸۸, ۱۲:۱۸:۵۹
ارسال‌ها
پاسخ
تشکر شده توسط : Abbaspour
Abbaspour آفلاین
كاربر دو ستاره
**

ارسال‌ها: 90
موضوع‌ها: 16
تاریخ عضویت: شهریور ۱۳۸۸

تشکرها : 37
( 21 تشکر در 16 ارسال )
ارسال: #3
RE: تفاوت eeprom و flash در چي هست
براي خواندن و نوشت بايد از چه کدهايي استفاده کنم من کدهاي زير رو پيدا کردم و يه تابع کوتاه و ساده وجود نداره ؟
کد:
#include<mega16.h>
#define xtal 1000000
/* the I2C bus is connected to PORTB */
/* the SDA signal is bit 3 */
/* the SCL signal is bit 4 */

#asm
.equ __i2c_port=0x18
.equ __sda_bit=3
.equ __scl_bit=4
#endasm
/* now you can include the I2C Functions */
#include <i2c.h>
/* function declaration for delay_ms */
#include <delay.h>
#define EEPROM_BUS_ADDRESS 0xa0
/* read a byte from the EEPROM */
unsigned char eeprom_read(unsigned char address) {
unsigned char data;
i2c_start();
i2c_write(EEPROM_BUS_ADDRESS);
i2c_write(address);
i2c_start();
i2c_write(EEPROM_BUS_ADDRESS | 1);
data=i2c_read(0);
i2c_stop();
return data;
}

/* write a byte to the EEPROM */
void eeprom_write(unsigned char address, unsigned char
data) {
i2c_start();
i2c_write(EEPROM_BUS_ADDRESS);
i2c_write(address);
i2c_write(data);
i2c_stop();
/* 10ms delay to complete the write operation */
delay_ms(10);
}
void main(void) {
unsigned char i;
DDRD=0xFF;
/* initialize the I2C bus */
i2c_init();
/* write the byte 55h at address 10h */
eeprom_write(0x10,0x55);
/* read the byte from address AAh */
i=eeprom_read(0x10);
PORTD=i;
while (1); /* loop forever */
}

اگه از آرايه استفاده کنم و با انديسش مقدار دهي و خواندن بکنم بازم دستورات و تعارف بالا لازم هست ؟

مثلا به جاي read.... از myarray(10) استفاده کنم
اگه ميکرو رو قفل کنم ميتونن محتويات پي رام رو بخونن؟؟
(آخرین ویرایش در این ارسال: ۱۵-آذر-۱۳۸۸, ۱۳:۱۰:۳۷، توسط Abbaspour.)
۱۵-آذر-۱۳۸۸, ۱۳:۰۱:۴۸
ارسال‌ها
پاسخ
t3r!p3000 آفلاین
         
*****

ارسال‌ها: 5,050
موضوع‌ها: 83
تاریخ عضویت: اردیبهشت ۱۳۸۵

تشکرها : 34447
( 17423 تشکر در 5116 ارسال )
ارسال: #4
RE: تفاوت eeprom و flash در چي هست
حاجی بسکام بفرست !
ما کدویژن رو تحریم کردیم !!!!!


اگه قفلش کنی !
نه نمی شه !!!
۱۵-آذر-۱۳۸۸, ۱۵:۰۶:۵۷
ارسال‌ها
پاسخ
تشکر شده توسط : محمد حسینی
Abbaspour آفلاین
كاربر دو ستاره
**

ارسال‌ها: 90
موضوع‌ها: 16
تاریخ عضویت: شهریور ۱۳۸۸

تشکرها : 37
( 21 تشکر در 16 ارسال )
ارسال: #5
RE: تفاوت eeprom و flash در چي هست
حالا چرا کد ويژن رو تحريم ميکنيد. من که خودم ويبي کارم با دستورات سي حال ميکنم.
۱۵-آذر-۱۳۸۸, ۱۵:۱۹:۵۶
ارسال‌ها
پاسخ
mehrdadgh آفلاین
کاربر با تجربه
****

ارسال‌ها: 830
موضوع‌ها: 58
تاریخ عضویت: مرداد ۱۳۸۷

تشکرها : 654
( 1904 تشکر در 596 ارسال )
ارسال: #6
RE: تفاوت eeprom و flash در چي هست
قفل رو هم میتونی برای eeprom هم برای فلش برازی !
برای اطلاعات بیشتر آموزش فیوزبیت ها رو ببین !


نقل قول: ياشاسين آذربايجان
یاشاسین

وبلاگ من : Azarrobot.blogfa.com

ISAplast.ir
۱۵-آذر-۱۳۸۸, ۱۵:۲۵:۰۹
ارسال‌ها
پاسخ
تشکر شده توسط : t3r!p3000, Abbaspour, محمد حسینی
Abbaspour آفلاین
كاربر دو ستاره
**

ارسال‌ها: 90
موضوع‌ها: 16
تاریخ عضویت: شهریور ۱۳۸۸

تشکرها : 37
( 21 تشکر در 16 ارسال )
ارسال: #7
RE: تفاوت eeprom و flash در چي هست
در ضمن اقا من کللي گشتم نتونستم دستور rotate رو در کدويژن پيدا کنم تو سايتها هم خيلي گشتم و لي نوشته بودن که بزرگترين اشکال کدويژن اينه که دستور چرخش بيتي رو ساپورت نميکنه.
حالا من چطور اين عمليات چرخش بيتي رو انجام بدم ؟
تو يه سايت اين کد رو گذاشته بود . آيا اين کد درسته؟
کد:
static inline int rotate_number_left(int input)
{
   return (input << 1) | ((input & (1<<15)) ? 1 : 0);
}

اين چيه تو دستور نوشته
کد:
? 1 : 0
(آخرین ویرایش در این ارسال: ۱۵-آذر-۱۳۸۸, ۱۵:۵۵:۳۵، توسط Abbaspour.)
۱۵-آذر-۱۳۸۸, ۱۵:۵۳:۳۱
ارسال‌ها
پاسخ
t3r!p3000 آفلاین
         
*****

ارسال‌ها: 5,050
موضوع‌ها: 83
تاریخ عضویت: اردیبهشت ۱۳۸۵

تشکرها : 34447
( 17423 تشکر در 5116 ارسال )
ارسال: #8
RE: تفاوت eeprom و flash در چي هست
من کدویژن کار نمی کنم ولی فکر کنم این بودش :

کد php:
<< 
کد php:
>> 

خوب برین سراغ بسکام !

منبع از کتاب به نفر : http://forum.iranled.com/showthread.php?tid=10869




<دستور SHIFT var :


با این دستور میتوان تمام بیت ها را یک بیت به سمت راست یا چپ منتقل کرد ، این دستور به فرم کلی زیر است :

کد php:
SHIFT var , LEFT/RIGHT 

Var : نام متغیر یا عدد ثابتی است که میخواهیم ان را شیفت دهیم (منتقل کنیم)LEFT/RIGHTجهت شیفت را مشخص میکند ، که میتواند راست یا چپ باشد مانند:

کد php:
$regfile "m16def.dat"
$crystal 12000000
Config Porta 
Output
Porta 
= &B10000000
Do
Shift Porta Right
Wait 1
Loop
End
مثال 
:
$regfile "m16def.dat"
$crystal 12000000
Config Lcd 
16 2
Config Lcdpin 
Pin Db4 Portd.0 Db5 Portd.1 Db6 Portd.2 Db7 Portd.3 Portd.4 Rs Portd.5
Dim A 
As Byte
5
Locate 1 
1
lcd a
Shift A 
Left
Locate 2 
1
Lcd A
End 

در مثال بالا مقدار اولیه 5 (0101 باینری) برای a در نظر گرفته شده است ، این مقدار بر روی سطر وستون اول lcd به نمایش در میاید ، سپس با دستور Shift A , Left تمام بیت های متغیر a به سمت چپ منتقل میشوند ، پس مقدار a برابر با 10 (1010 باینری )میشود .




<دستور ROTATE:


این دستور تقریبا مانند دستور shift میباشد و تمام بیت های یک متغیر را به سمت راست یا چپ جابجا میکند ، شما همنچنین با این دستور میتوانید پین های روشن یک پورت را جابجا کنید وبه فرم کلی زیر است:

کد php:
ROTATE var , LEFT/RIGHT 

Var : نام متغیر یا عدد ثابتی یا پورتی است که میخواهیم ان را شیفت دهیم (منتقل کنیم)
LEFT/RIGHT : جهت انتقال را مشخص میکند ، که میتواند را ست یا چپ باشد مانند:

کد php:
$regfile "m16def.dat"
$crystal 12000000
Config Porta 
Output
Config Portb 
Output
Dim B 
As Byte
Portb 
= &B00000001
1
Do
Rotate B Right
Rotate Portb 
Right
Wait 1
Porta 
B
Loop
End 
۱۵-آذر-۱۳۸۸, ۱۶:۰۰:۱۶
ارسال‌ها
پاسخ
تشکر شده توسط : Abbaspour, محمد حسینی
t3r!p3000 آفلاین
         
*****

ارسال‌ها: 5,050
موضوع‌ها: 83
تاریخ عضویت: اردیبهشت ۱۳۸۵

تشکرها : 34447
( 17423 تشکر در 5116 ارسال )
ارسال: #9
RE: تفاوت eeprom و flash در چي هست
مهندس خوب دستی این کار رو انجام بده وقتی کدویژن دستوراتش رو نداره !!!! ( خداییش این کدویژن چی داره که همه رفتن سراغ کدوِیژن )


فرضا فکر کن می خوای چرخش به سمت راست انجام بدی !
خوب بیت صفر رو بخون و تو یه جا بریز !
شیفت به راست بده !
بیت هفتم رو برابر بیت صفر که ذخیره اش کردی کن !!!
۱۵-آذر-۱۳۸۸, ۱۶:۰۷:۳۱
ارسال‌ها
پاسخ
تشکر شده توسط : Abbaspour, محمد حسینی
ajlajlajl آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 2,192
موضوع‌ها: 70
تاریخ عضویت: مهر ۱۳۸۴

تشکرها : 932
( 2618 تشکر در 1020 ارسال )
ارسال: #10
RE: تفاوت eeprom و flash در چي هست
(۱۵-آذر-۱۳۸۸, ۱۵:۵۳:۳۱)Abbaspour نوشته است: اين چيه تو دستور نوشته
کد:
? 1 : 0
این برای شرطه. عملگر : ؟ یه عملگر شرطیه. عبارت قبل ؟ شرطشه. اگه درست بود شرط، عبارت بین ؟ و : رو برمیگردونه وگرنه عبارت بعد : رو.

میزان رای دشمن است!
[تصویر:  cff100.png]
(آخرین ویرایش در این ارسال: ۱۵-آذر-۱۳۸۸, ۱۶:۳۴:۵۸، توسط ajlajlajl.)
۱۵-آذر-۱۳۸۸, ۱۶:۳۴:۳۱
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : t3r!p3000, Abbaspour, محمد حسینی
محمد حسینی آفلاین
کاربر فعال بخش رباتیک
****

ارسال‌ها: 1,363
موضوع‌ها: 139
تاریخ عضویت: آذر ۱۳۸۴

تشکرها : 974
( 1780 تشکر در 620 ارسال )
ارسال: #11
RE: تفاوت eeprom و flash در چي هست
سلام!
اینجا فقط منم که حرص کدویژن می زنم! Biggrin

برای eeprom که کاری نداره! باید متغیر رو سراسری(بالای main) با کلمه کلیدی eeprom تعریف کنی. اون کدا چیه گذاشتی !!
کد:
eeprom int i = 0;

void main(void)
{
i = i + 2;
}

دستور rotate تو کدویژن نیست. بیخود نگرد! یه تابع براش بنویس. شاید تو ورژن جدیدش باشه! خوب شد گفتی برم یه سرچی بزنم ببینم این جدیده داره ...
البته ...
الان که یکم بیشتر حالیم میشه اینو بگم برای برتری کدویژن به بیسکام همین بس که تو کدویژن به تمام رجیسترهای میکرو (با تک تک بیت هاشون) دسترسی داریم و می تونیم همه چی رو تغییر بدیم! از تمام امکانات میکرو با نهایت انعطاف پذیری میشه استفاده. حتی میشه توش اسمبلی نوشت. خلاصه اینکه دل و روده میکرو میشه ریخت بیرون و ... کتاب ره افروز رو ببینین ...... فکر نمی کنم تو بیسکام مستقیم بشه به همه رجیسترها دسترسی داشت.میشه؟ بیسکام برای هرکدوم از امکانات میکرو یه سری دستورات تعریف کرده و برنامه نویسی به اون دستورات محدود شده.
بله علی آقا! Biggrin
البته من هیچی بارم نیستا!! ما هنوز شاگرد علی تریپیم !!

به راه بادیه رفتن، به از نشستن باطل ------------- اگرچه وصل نیابم، بقدر وسع بکوشمRolleyes
۱۵-آذر-۱۳۸۸, ۱۷:۴۰:۵۱
ارسال‌ها
پاسخ
تشکر شده توسط : t3r!p3000


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  مشکل با eeprom بسکام کمک sky_man847 2 4,380 ۱۲-مهر-۱۳۹۷, ۰۰:۴۷:۰۸
آخرین ارسال: lrn1380
  [سوال] تفاوت کلاک و فرکانس babyy 3 2,150 ۱۸-خرداد-۱۳۹۷, ۲۲:۲۵:۴۴
آخرین ارسال: salehjg
  سوال در مورد اتصال حافظه eeprom جانبی به میکرو SBRE77 9 10,467 ۰۷-مهر-۱۳۹۵, ۲۳:۳۱:۲۹
آخرین ارسال: omidrn
  EEPROM Series 24C08 electroavr 4 3,791 ۲۸-آبان-۱۳۹۴, ۲۳:۴۲:۳۸
آخرین ارسال: sharin
Exclamation مشکل با eeprom های سریال bigbig 4 5,340 ۲۸-آبان-۱۳۹۴, ۰۱:۱۸:۰۰
آخرین ارسال: gray
  نوشتن و خواندن از EEPROM خارجی hadii 6 8,154 ۰۲-خرداد-۱۳۹۴, ۰۹:۴۶:۲۴
آخرین ارسال: sharin
  تفکیک عدد صحیح و اعشاری در کدویژن جهت ذخیره در EEPROM MicrowaveCO 6 5,534 ۲۶-اردیبهشت-۱۳۹۴, ۰۹:۲۵:۴۶
آخرین ارسال: sharin
  اتصال ای سی حافظه SRAM یا FLASH به میکرو nex2004 9 8,699 ۲۰-اردیبهشت-۱۳۹۳, ۱۲:۰۵:۲۹
آخرین ارسال: nex2004
  [سوال] محاسبه حجم eeprom مورد نیاز sajad.mollavaly 1 2,404 ۲۶-آذر-۱۳۹۲, ۱۶:۲۱:۱۷
آخرین ارسال: behzady
  علت کم شدن سرعت اجرای دستورات هنگام استفاده از دستورات eeprom hamed_458 13 10,930 ۰۶-اردیبهشت-۱۳۹۲, ۱۱:۳۱:۱۶
آخرین ارسال: M_Javad

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 7 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS