Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Сб апр 03, 2021 07:53:59
Указатель на адрес следующей записи я храню в ЕЕПРОМе.
У него данные пишутся каждые 10 мин, ресурс EEPROM закончится через 2 года... Я бы вместо AT24C32 поставил дешевую FRAM, типа FM24CL64B, тогда можно индекс последней записи хранить в ней же по фиксированному адресу и ничего каждый раз не искать.
Сб апр 03, 2021 08:20:41
Указатель на адрес следующей записи я храню в ЕЕПРОМе.
У него данные пишутся каждые 10 мин, ресурс EEPROM закончится через 2 года...
один раз в день
но в разное время (замерять температуру на восходе солнца буду рассчитывать)
Сб апр 03, 2021 16:01:32
У него данные пишутся каждые 10 мин, ресурс EEPROM закончится через 2 года...
Это всего 100 000 записей. Современные EEPROM за миллион уходят. И запись то последовательно по кругу идёт - ещё на два порядка размазывается по всему чипу.
Вс апр 04, 2021 06:29:55
размазывается то размазывается, а адрес, куда пишем, ведь в EEPROM хранится? т. е. эта ячейка убивается
или какая-то хитрая логика записи?
Вс апр 04, 2021 07:42:56
Это всего 100 000 записей. Современные EEPROM за миллион уходят.
В коде от
MOHCTEP используется встроенная в AVR EPPROM, а у нее ресурс 100К.
И запись то последовательно по кругу идёт - ещё на два порядка размазывается по всему чипу.
Размазать адрес то можно, но он пишется чтобы можно было просто(и быстро) определить последнюю запись логируемых данных, которые тоже размазываются и уже это у
Serzh2000 вызывает затруднения. А так придется еще как-то определять последний записанный адрес...
Вс апр 04, 2021 07:50:12
Да уж. Похоже, я плохо разбираюсь в искусственно придуманных трудностях
Добавлено after 4 minutes 32 seconds:В коде от MOHCTEP используется встроенная в AVR EPPROM, а у нее ресурс 100К.
Ещё раз перечитал последнии сообщения, ничего про AVR не нашёл. Речь по прежнему про 24С32, а они таки миллионники.
Вс апр 04, 2021 08:02:31
Ещё раз перечитал последнии сообщения, ничего про AVR не нашёл. Речь по прежнему про 24С32, а они таки миллионники.
На код смотри, так есть вызов eeprom_write_word() работающей со встроенной EEPROM.
Вс апр 04, 2021 08:11:14
Мне название этой функции ни о чём не говорит. Допускаю, что это и так, но что мешает ей писать во внешнюю?
Вс апр 04, 2021 08:40:24
но что мешает ей писать во внешнюю?
Ничего не мешает как писать во внешнюю EEPROM, так и использовать менее проблемную FRAM
Ср апр 07, 2021 02:30:36
Здоровья всем!
Возможно ли как-то узнать длину (количество элементов) массива, записанного в флеш память? Если со строками все просто, там рулит признак eol, то как разобраться с числовыми массивами?
Ср апр 07, 2021 06:49:54
MOHCTEP, длину должен знать тот кто писал массив в память. Спросите у него.
Ср апр 07, 2021 07:17:14
MOHCTEP, нет, нельзя. Когда передают указатель на данные (не важно где - в RAM или FLASH), передают другим аргументом и их длину, если она не фиксирована как-то заранее. Пусть тот, кто пишет у вас данные во флэш, пишет еще и их размер сначала.
Ср апр 07, 2021 11:48:05
Понятно. Спасибо!
Чт апр 22, 2021 15:21:20
Всем привет!
Подскажите, пжлст, что обозначают вот эти строки:
(void) USART->SR;
(void) USART->DR;
собственно SR и DR я понимаю, что это регистры модуля ЮАРТ. объединённые в структуру.
Меня интересует именно смысл этой конструкции с void-ом вначале, и что она делает.
Перед этими строками идет включение тактирования ЮАРТа, после них -- обнуление регистров. Тут вопросов нет.
Чт апр 22, 2021 15:26:52
Hand-Maker, прочитает их во временный регистр (не сохраняя дальше никуда). Смысл в том, чтобы обратиться к этому регистру. С некоторыми регистрами аппаратно что-то происходит от того, что их читают, и иногда это надо делать. Чтение DR/SR там вроде сбрасывает что-то... точно не помню, смотреть лениво.
Чт апр 22, 2021 15:38:02
То есть такой себе пинок системе...
Ясно, спасибо, буду изучать дальше.
Пт апр 23, 2021 15:13:24
Подскажите, пжлст, что обозначают вот эти строки:
Если почитать RM, то там будет написано, что последовательное чтение регистров SR и DR очищает статусы порта. Когда есть сомнения, что делает код, то хорошо подсматривать в листинг.
- Код:
//USART1->SR;
LDR.W R0,??DataTable2
LDR R1,[R0, #+0]
//USART1->DR;
LDR R0,[R0, #+4]
??DataTable2:
DATA32
DC32 0x40013800
Пн апр 26, 2021 08:14:18
Hand-Maker писал(а):(void) USART->SR;
зачем тут приведение типа?
Пн апр 26, 2021 08:31:07
ARV, ворнинг исключить какой-нибудь может? Точно не необходимость, будет и без этого работать.
Чт апр 29, 2021 20:02:15
я тут немножко удивился...
- Код:
#include <stdio.h>
#include <limits.h>
int main(void) {
int var = INT_MIN;
printf("abs(%d) > 0 ?\n%s\n", var, abs(var) > 0 ? "YES" : "NO");
return 0;
}
вот никогда не догадался бы, что напечатает этот код, если б не попробовал скомпилировать...
кто сможет ответить до компиляции?
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.