ارتباط با حافظه EEPROM داخلی
میکروکنترلرهای avr دارای حافظه جانبی در اندازه های مختلف هستند. هر حافظه جانبی تشکیل شده از خانه هایی که هر خانه آدرسی را به خود اختصاص داده است. برای خواندن و نوشتن در این آدرس ها دستورات زیر وجود دارد.
نکته : البته همانطور که در مباحث قبل گفته شده است می توان متغیرهایی را در این حافظه تعریف کرد. پس مواظب باشید در زمان برنامه نویسی در صورت استفاده از متغیر و کار با آدرس دهی حافظه دچار خطا و اشتباه نشوید.
نوشتن در حافظه eeprom در زبان بیسیک BASIC
1 2 3 |
Writeeeprom var , address Wait ms 4 |
در زمان ارتباط با حافظه EEPROM این دستور محتوی تغییر var را به درون آدرس خانه حافظه eeprom قرار می دهد.
Address : آدرس خانه حافظه مورد نظر
نکته : بعد از این دستور باید حدود 4ms تاخیر بوجود آید تا داده در حافظه نوشته شود.
خواندن از حافظه eeprom در زبان بیسیک BASIC
1 |
Readeeprom var , address |
در برنامه نویسی این دستور محتوی خانه حافظه eeprom را به درون متغیر vra می ریزد.
Address : آدرس خانه حافظه مورد نظر برای خوندن
دسترسی به حافظه eeprom در زبان بیسیک BASIC
1 |
$eeprom |
با این دستور شما می توانید به حافظه eeprom برای برنامه نویسی دسترسی پیدا کنید.
پایان دسترسی به حافظه eeprom در زبان بیسیک BASIC
1 |
$DATA |
برای پایان دادن به دسترسی به حافظه eeprom و برگشت به حافظه flash از این دستور استفاده می شود.
مثال:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
$regfile = "m48def.dat" 'specify the used micro $crystal = 4000000 'used crystal frequency $baud = 19200 'use baud rate Dim b as byte 'frist dimension a variable Dim yes as string*1 $eeprom Label1: Data 1,2,3,4,5 Label2: Data 10,20,30,40,50 $data Readeeprom b , label1 Print b 'prints 1 Readeeprom b Print b 'prints 2 Readeeprom b , label 2 Print b 'prints 10 Readeeprom b Print b 'print20 Input "ready?" , yes B = 100 Writeeeprom b , label1 B= 101 Writeeeprom b Readeeprom b , label1 Print b 'prints 1 Readeeprom b Print b 'prints 2 End |