Arduino Uno EEPROM

ratman
Offline
Зарегистрирован: 11.10.2015

Простите за невежество, а какой лимит на перезапись EEPROM у Ардуин?

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

 

100.000 раз)

bwn
Offline
Зарегистрирован: 25.08.2014

Yarik.Yar пишет:

 

100.000 раз)

Гарантированных, на самом деле побольше. Не помню, на этом форуме или другом, опыт проводили. Сыпаться начала где то в районе 230тыс. перезаписей.

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Я пишу из даташита)

bwn
Offline
Зарегистрирован: 25.08.2014

Yarik.Yar пишет:
Я пишу из даташита)

Я чтоб ТС порадовать, не знаю, что он замутить хочет, но по соседству деятель пытается каждую секунду туда писать))))

Maverik
Offline
Зарегистрирован: 12.09.2012

пользуйте EEPROM самой ардуины только для записи констант или редко изменяемых переменных.

для часто изменяемых переменных пользуйте SD-карту или внешнюю микросхему EEPROM,  каковые на ебее до сих пор стоят копейки. микросхему можно подключить по i2c, можно купить готовый модуль с такой микросхемой, но это уже чуть дороже.

например at24c256 (вроде 32 килобайта)  http://www.ebay.com/itm/5PCS-ATMEL-AT24C256-24C256-DIP8-24C256-DIP-8-EEPROM-NEW-/381374419319?hash=item58cbafd177  цена 150 руб за пять штук, т.е. 30 руб штука.

микросхему можно положить в кроватку и менять по мере износа. 

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

Maverik пишет:

для часто изменяемых переменных пользуйте SD-карту

Она типа гарантировано дольше прослужит?

Immortal
Offline
Зарегистрирован: 28.12.2013

Не советую SD-карту, это совет из разряда бить из пушки по воробьям.

Купите микросхемы 24-й серии, это проще и намного надежнее

По документации у серии 24lc гарантировано 1 миллион циклов записи/стирания.

Есть серия 25lc, там уже 10 милиионов циклов.

Но с ними свои приколы - писать в них нужно только постранично, весь массив (или структуру) настроек за раз.

Большинство EEPROM разных фирм на самом-то деле имеют страничное стирание и перезапись страницы, даже если меняется один байт. Кроме самых мелких. Там байт == страница. Запись байта по какому-то адресу EEPROM автоматом запускает последовательность действий: копирование страницы EEPROM (той, где расположена записываемая ячейка) во временную RAM-страницу; модификация записываемого байта в RAM-странице; очистка всей страницы EEPROM, и, наконец, запись RAM-страницы в EEPROM.
 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Угу.

При этом еще и писать через границу страницы нельзя (вместо начала следующей страницы запишет в начало текущей страницы), а интервал между операциями записи 5 мс - это 32к побайтно писать займет почти 3 минуты.

rexmoney
Offline
Зарегистрирован: 23.11.2015

Здравствуйте!

А в атмелах стоят EEPROMы которые по страницам перезаписывают?

У меня вопрос: если я перезаписываю одну ячейку – износ идет одной ячейки, или страницы?

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Ячейки, если не ошибаюсь.

Immortal
Offline
Зарегистрирован: 28.12.2013

rexmoney пишет:

А в атмелах стоят EEPROMы которые по страницам перезаписывают?

Это очень интересный вопрос.

Я когда то давно изучал документацию атмела на AVR, судя по ней EEPROM перезаписывается конечно же постранично. Однако размер страницы мелкий - 4 или 8 байт (зависит от модели)

Например у AT90CAN64 #define E2PAGESIZE 8

The factory has confirmed, via my FAE, that the listed EEPROM Endurance (100,000 Write/Erase Cycles) figures are on a page bases, and not a byte bases.

If you need to know how far to spread the bytes so that you can archive higher endurance figures, for example if you need a byte, but for 200,000 cycles you need to use two DIFFERENT pages, or 16 bytes in the CAN64 part.

The most important efficiency with EEPROM is to read first, and only update the EEPROM byte if changed. avr-gcc now has 'eeprom_update_xxx()' macros. CodeVision has always done update rather than write. I would assume that ICC, IAR and everyone else behaves the same.
Для конкретной модели его можно узнать имея установленную CodeVision и сделав grep E2PAGESIZE io*.h

iom128.h:#define E2PAGESIZE 8
iom1280.h:#define E2PAGESIZE      8
iom1281.h:#define E2PAGESIZE      8
iom1284p.h:#define E2PAGESIZE   8
iom16.h:#define E2PAGESIZE      4
iom161.h:#define E2PAGESIZE  0
iom162.h:#define E2PAGESIZE  4
iom163.h:#define E2PAGESIZE  0
iom164.h:#define E2PAGESIZE      4
iom165.h:#define E2PAGESIZE      4
iom165p.h:#define E2PAGESIZE      4
iom168.h:#define E2PAGESIZE  4
iom168p.h:#define E2PAGESIZE   4
iom169.h:#define E2PAGESIZE  4
iom169p.h:#define E2PAGESIZE  4
iom169pa.h:#define E2PAGESIZE   (4)
iom16a.h:#define E2PAGESIZE   (4)

А вот что у нас в ардуино ИДЕ:

Search "#define E2PAGESIZE" (222 hits in 222 files)
    Line 46: #define E2PAGESIZE   8
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom103.h (1 hit)
    Line 670: #define E2PAGESIZE 0
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom128.h (1 hit)
    Line 1191: #define E2PAGESIZE 8
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom1280.h (1 hit)
    Line 46: #define E2PAGESIZE      8
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom1281.h (1 hit)
    Line 46: #define E2PAGESIZE      8
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom1284.h (1 hit)
    Line 958: #define E2PAGESIZE  8
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom1284p.h (1 hit)
    Line 1152: #define E2PAGESIZE   8
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom1284rfr2.h (1 hit)
    Line 2491: #define E2PAGESIZE  8
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom128a.h (1 hit)
    Line 901: #define E2PAGESIZE  8
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom128rfa1.h (1 hit)
    Line 5322: #define E2PAGESIZE                      (0x08)
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom128rfr2.h (1 hit)
    Line 2507: #define E2PAGESIZE  8
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom16.h (1 hit)
    Line 592: #define E2PAGESIZE      4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom161.h (1 hit)
    Line 664: #define E2PAGESIZE  0
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom162.h (1 hit)
    Line 930: #define E2PAGESIZE  4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom163.h (1 hit)
    Line 620: #define E2PAGESIZE  0
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom164.h (1 hit)
    Line 46: #define E2PAGESIZE      4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom164pa.h (1 hit)
    Line 878: #define E2PAGESIZE  4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom165.h (1 hit)
    Line 793: #define E2PAGESIZE      4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom165a.h (1 hit)
    Line 774: #define E2PAGESIZE  4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom165p.h (1 hit)
    Line 796: #define E2PAGESIZE      4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom165pa.h (1 hit)
    Line 772: #define E2PAGESIZE  4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom168.h (1 hit)
    Line 44: #define E2PAGESIZE  4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom168p.h (1 hit)
    Line 877: #define E2PAGESIZE   4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom168pa.h (1 hit)
    Line 723: #define E2PAGESIZE  4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom168pb.h (1 hit)
    Line 767: #define E2PAGESIZE  4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom169.h (1 hit)
    Line 1081: #define E2PAGESIZE  4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom169p.h (1 hit)
    Line 1004: #define E2PAGESIZE  4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom169pa.h (1 hit)
    Line 1051: #define E2PAGESIZE   (4)
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom16a.h (1 hit)
    Line 727: #define E2PAGESIZE   (4)
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom16hva.h (1 hit)
    Line 46: #define E2PAGESIZE  4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom16hva2.h (1 hit)
    Line 719: #define E2PAGESIZE   (4)
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom16hvb.h (1 hit)
    Line 883: #define E2PAGESIZE   (4)
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom16hvbrevb.h (1 hit)
    Line 883: #define E2PAGESIZE   (4)
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom16m1.h (1 hit)
    Line 1505: #define E2PAGESIZE   (4)
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom16u2.h (1 hit)
    Line 935: #define E2PAGESIZE   (4)
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom16u4.h (1 hit)
    Line 1352: #define E2PAGESIZE   (4)
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom2560.h (1 hit)
    Line 46: #define E2PAGESIZE      8
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom2561.h (1 hit)
    Line 46: #define E2PAGESIZE      8
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom2564rfr2.h (1 hit)
    Line 2492: #define E2PAGESIZE  8
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom256rfr2.h (1 hit)
    Line 2508: #define E2PAGESIZE  8
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom3000.h (1 hit)
    Line 231: #define E2PAGESIZE   0
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom32.h (1 hit)
    Line 674: #define E2PAGESIZE  4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom323.h (1 hit)
    Line 669: #define E2PAGESIZE  0
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom324a.h (1 hit)
    Line 876: #define E2PAGESIZE  4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom324p.h (1 hit)
    Line 878: #define E2PAGESIZE  4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom324pa.h (1 hit)
    Line 985: #define E2PAGESIZE   (4)
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom325.h (1 hit)
    Line 795: #define E2PAGESIZE      4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom3250.h (1 hit)
    Line 887: #define E2PAGESIZE      4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom3250pa.h (1 hit)
    Line 836: #define E2PAGESIZE  4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom325pa.h (1 hit)
    Line 761: #define E2PAGESIZE  4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom328p.h (1 hit)
    Line 879: #define E2PAGESIZE   4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom329.h (1 hit)
    Line 977: #define E2PAGESIZE      4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom3290.h (1 hit)
    Line 1132: #define E2PAGESIZE      4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom3290pa.h (1 hit)
    Line 917: #define E2PAGESIZE  4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom329p.h (1 hit)
    Line 987: #define E2PAGESIZE  4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom32a.h (1 hit)
    Line 565: #define E2PAGESIZE  4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom32c1.h (1 hit)
    Line 1254: #define E2PAGESIZE   (4)
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom32hvb.h (1 hit)
    Line 883: #define E2PAGESIZE   (4)
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom32m1.h (1 hit)
    Line 1528: #define E2PAGESIZE   (4)
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom32u2.h (1 hit)
    Line 935: #define E2PAGESIZE   (4)
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom32u4.h (1 hit)
    Line 1480: #define E2PAGESIZE   (4)
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom32u6.h (1 hit)
    Line 1361: #define E2PAGESIZE   (4)
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom406.h (1 hit)
    Line 735: #define E2PAGESIZE   4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom48.h (1 hit)
    Line 44: #define E2PAGESIZE  4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom48p.h (1 hit)
    Line 873: #define E2PAGESIZE   4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom48pa.h (1 hit)
    Line 719: #define E2PAGESIZE  4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom48pb.h (1 hit)
    Line 763: #define E2PAGESIZE  4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom64.h (1 hit)
    Line 1214: #define E2PAGESIZE 8
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom640.h (1 hit)
    Line 46: #define E2PAGESIZE      8
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom644.h (1 hit)
    Line 46: #define E2PAGESIZE   8
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom644p.h (1 hit)
    Line 46: #define E2PAGESIZE   8
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom644pa.h (1 hit)
    Line 985: #define E2PAGESIZE   (8)
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom644rfr2.h (1 hit)
    Line 2486: #define E2PAGESIZE  8
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom645.h (1 hit)
    Line 789: #define E2PAGESIZE   8
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom6450.h (1 hit)
    Line 883: #define E2PAGESIZE   8
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom649.h (1 hit)
    Line 967: #define E2PAGESIZE   8
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom6490.h (1 hit)
    Line 1121: #define E2PAGESIZE   8
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom649p.h (1 hit)
    Line 1057: #define E2PAGESIZE   (8)
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom64a.h (1 hit)
    Line 915: #define E2PAGESIZE  8
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom64c1.h (1 hit)
    Line 1255: #define E2PAGESIZE   (8)
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom64hve.h (1 hit)
    Line 865: #define E2PAGESIZE   (4)
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom64hve2.h (1 hit)
    Line 688: #define E2PAGESIZE  4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom64m1.h (1 hit)
    Line 1506: #define E2PAGESIZE   (8)
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom64rfr2.h (1 hit)
    Line 2502: #define E2PAGESIZE  8
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom8.h (1 hit)
    Line 590: #define E2PAGESIZE   4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom8515.h (1 hit)
    Line 610: #define E2PAGESIZE   4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom8535.h (1 hit)
    Line 693: #define E2PAGESIZE   4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom88.h (1 hit)
    Line 44: #define E2PAGESIZE   4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom88p.h (1 hit)
    Line 876: #define E2PAGESIZE   4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom88pa.h (1 hit)
    Line 849: #define E2PAGESIZE   (4)
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom88pb.h (1 hit)
    Line 767: #define E2PAGESIZE  4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom8a.h (1 hit)
    Line 519: #define E2PAGESIZE  4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom8hva.h (1 hit)
    Line 46: #define E2PAGESIZE  4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iom8u2.h (1 hit)
    Line 932: #define E2PAGESIZE   (4)
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iotn10.h (1 hit)
    Line 383: #define E2PAGESIZE   (0)
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iotn11.h (1 hit)
    Line 212: #define E2PAGESIZE  2
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iotn12.h (1 hit)
    Line 241: #define E2PAGESIZE  2
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iotn13.h (1 hit)
    Line 336: #define E2PAGESIZE  4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iotn13a.h (1 hit)
    Line 346: #define E2PAGESIZE   (4)
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iotn15.h (1 hit)
    Line 314: #define E2PAGESIZE  2
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iotn1634.h (1 hit)
    Line 808: #define E2PAGESIZE  4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iotn167.h (1 hit)
    Line 821: #define E2PAGESIZE   (4)
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iotn20.h (1 hit)
    Line 599: #define E2PAGESIZE   (0)
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iotn22.h (1 hit)
    Line 184: #define E2PAGESIZE 0
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iotn2313.h (1 hit)
    Line 611: #define E2PAGESIZE   4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iotn2313a.h (1 hit)
    Line 641: #define E2PAGESIZE   (4)
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iotn24.h (1 hit)
    Line 45: #define E2PAGESIZE   4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iotn24a.h (1 hit)
    Line 594: #define E2PAGESIZE   (4)
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iotn25.h (1 hit)
    Line 45: #define E2PAGESIZE   4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iotn26.h (1 hit)
    Line 359: #define E2PAGESIZE  4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iotn261.h (1 hit)
    Line 45: #define E2PAGESIZE   4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iotn261a.h (1 hit)
    Line 650: #define E2PAGESIZE   (4)
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iotn28.h (1 hit)
    Line 254: #define E2PAGESIZE  0
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iotn4.h (1 hit)
    Line 348: #define E2PAGESIZE   (0)
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iotn40.h (1 hit)
    Line 590: #define E2PAGESIZE   (0)
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iotn4313.h (1 hit)
    Line 641: #define E2PAGESIZE   (4)
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iotn43u.h (1 hit)
    Line 550: #define E2PAGESIZE     4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iotn44.h (1 hit)
    Line 46: #define E2PAGESIZE   4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iotn441.h (1 hit)
    Line 793: #define E2PAGESIZE  4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iotn44a.h (1 hit)
    Line 592: #define E2PAGESIZE   (4)
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iotn45.h (1 hit)
    Line 46: #define E2PAGESIZE   4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iotn461.h (1 hit)
    Line 46: #define E2PAGESIZE   4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iotn461a.h (1 hit)
    Line 650: #define E2PAGESIZE   (4)
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iotn48.h (1 hit)
    Line 751: #define E2PAGESIZE   4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iotn5.h (1 hit)
    Line 383: #define E2PAGESIZE   (0)
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iotn828.h (1 hit)
    Line 784: #define E2PAGESIZE  4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iotn84.h (1 hit)
    Line 46: #define E2PAGESIZE   4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iotn841.h (1 hit)
    Line 793: #define E2PAGESIZE  4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iotn84a.h (1 hit)
    Line 592: #define E2PAGESIZE   (4)
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iotn85.h (1 hit)
    Line 46: #define E2PAGESIZE   4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iotn861.h (1 hit)
    Line 46: #define E2PAGESIZE   4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iotn861a.h (1 hit)
    Line 650: #define E2PAGESIZE   (4)
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iotn87.h (1 hit)
    Line 802: #define E2PAGESIZE   (4)
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iotn88.h (1 hit)
    Line 750: #define E2PAGESIZE   4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iotn9.h (1 hit)
    Line 348: #define E2PAGESIZE   (0)
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iousb1286.h (1 hit)
    Line 46: #define E2PAGESIZE   8
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iousb1287.h (1 hit)
    Line 46: #define E2PAGESIZE   8
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iousb162.h (1 hit)
    Line 47: #define E2PAGESIZE   4
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iousb646.h (1 hit)
    Line 47: #define E2PAGESIZE   8
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iousb647.h (1 hit)
    Line 47: #define E2PAGESIZE   8
  C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\iousb82.h (1 hit)
    Line 47: #define E2PAGESIZE   4

MacSim
Offline
Зарегистрирован: 28.11.2012

Пожалуйста поясните что выдается в ответах в CodeVision  & arduino ide.

Immortal
Offline
Зарегистрирован: 28.12.2013

Хотя может я и не прав.

E2PAGESIZE это Размер страницы EEPROM, который используется при программировании программатором

Однако непонятно почему в режиме программирования страницы есть, а в режиме обычной работы при записи через регистры страниц нет. Может атмел скрывает от нас стирание страницы? В даташите в явном виде нигде не написано что стирание еепром перед записью производится побайтово, четко написано только то, что запись идет побайтово (точнее даже побитово, отдельные биты можно сбрасывать в 0 не трогая остальные)

AVR103: режимы программирования EEPROM.

AVR104: буферизированная запись в EEPROM с управлением по прерыванию.

Однако тут написано совсем другое AVR C Runtime Library — bug #22240

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

Immortal пишет:
В даташите в явном виде нигде не написано что стирание еепром перед записью производится побайтово,

Зачем стирать ячейку перед записью? :)

Pyotr
Offline
Зарегистрирован: 12.03.2014
rexmoney
Offline
Зарегистрирован: 23.11.2015

Спасибо, всем!

Да! Удивлен от теста (по ссылке Pyotr), с таким ресурсом перезаписи в маем случае хватит на 8250лет.;)

Еще раз спасибо! Я получил развернутую информацию и думаю, что получат те, которые интересуются этим вопросом.