|
Как записать/считать float в/из EEPROM, ATmega8 |
|
|
|
 |
Ответов
|
Oct 27 2010, 17:24
|
Участник

Группа: Участник
Сообщений: 50
Регистрация: 3-09-10
Пользователь №: 59 263

|
Цитата(sergeeff @ Oct 27 2010, 17:01)  Нет там никакого оверхеда Конечно нет. И про ОЗУ тут напрасно беспокоятся. Совершенно нормально, что я переношу из ЕЕПРОМ в ОЗУ все оперативные данные, работаю с ними - а при необходимости прячу снова в ЕЕПРОМ. Вытаскивать 1 байт из ЕЕПРОМ во время обработки данны - это чуднО  Цитата(sergeeff @ Oct 27 2010, 17:01)  Беда в том, что это непереносимая конструкция. Почему? Куда непереносимая? Или просто Вы ее не переносите  Цитата(sergeeff @ Oct 27 2010, 17:01)  Вопрос в том, на кой это надо, если безо всяких union работает. Ну, я это использую потому, что при чтении из ЕЕПРОМ и записи туда подсчитываю контрольную сумму. И мне удобно обращаться поэлементно к массиву. Если и при Вашем подходе можно подсчитывать побайтно сумму - то признаю с готовностью, что много лет у меня болталась напрасно усложненная конструкция  Спасибо за подсказку!
|
|
|
|
|
Oct 27 2010, 20:38
|
Профессионал
    
Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007

|
Цитата(drvlas @ Oct 27 2010, 20:24)  Почему? Куда непереносимая? Или просто Вы ее не переносите  Например, тут : http://www.cplusplus.com/doc/tutorial/other_data_types/написано: "The exact alignment and order of the members of a union in memory is platform dependant." Или здесь: http://www.drdobbs.com/184403890Цитата Ну, я это использую потому, что при чтении из ЕЕПРОМ и записи туда подсчитываю контрольную сумму. И мне удобно обращаться поэлементно к массиву. Если и при Вашем подходе можно подсчитывать побайтно сумму - то признаю с готовностью, что много лет у меня болталась напрасно усложненная конструкция  Спасибо за подсказку! Вас же, наверное, интересует crc всей структуры? Кто тогда мешает сделать: Код s s1; uint crc_val = crc(&s1, sizeof(s1));
|
|
|
|
|
Oct 28 2010, 12:05
|
Участник

Группа: Участник
Сообщений: 50
Регистрация: 3-09-10
Пользователь №: 59 263

|
Убедили меня  По второму пункту. Ибо, что касается приведенных ссылок Цитата(sergeeff @ Oct 27 2010, 23:38)  Например, тут... написано: "The exact alignment and order of the members of a union in memory is platform dependant." ...то здесь я же говорил: использую массив только при записи-чтении всей структуры в ЕЕПРОМ. И мне в это время до лампочки, какое там выравнивание и размещение. Согласны? Цитата(sergeeff @ Oct 27 2010, 23:38)  Вас же, наверное, интересует crc всей структуры? Кто тогда мешает сделать: Код s s1; uint crc_val = crc(&s1, sizeof(s1)); Ну, так кто ж знал Спасибо, буду знать. Если crc() есть во всех компиляторах, то даже переносимость не ухудшится. Но все же не могу не отметить, что в моем случае (с учетом вышеобозначенного способа использования союза) удобство предложенного уважаемым товарищем ergeeff способа - только в обращении к элементам структуры без лишнего .u
|
|
|
|
Сообщений в этой теме
LexRoss Как записать/считать float в/из EEPROM Oct 26 2010, 14:18 proba напр так:
extern eeprom_write_block(unsigned char... Oct 26 2010, 14:42 Палыч Цитата(proba @ Oct 26 2010, 18:42) напр т... Oct 26 2010, 14:48 LexRoss Цитата(proba @ Oct 26 2010, 18:42) напр т... Oct 26 2010, 15:21  demiurg_spb Зачем что-то делить? Память и так зачастую имеет б... Oct 26 2010, 15:36 LexRoss А прочитать как?
Кодunsigned char read_var[5... Oct 26 2010, 15:56 sergeeff Вы в функции
Кодeeprom_write_block( (uns... Oct 26 2010, 16:20 LexRoss я писал
Кодeeprom_write_block( (unsigned ... Oct 26 2010, 16:23 sergeeff Ну тогда сделайте так:
Кодfloat f2;
eeprom_read_... Oct 26 2010, 16:39 LexRoss Работает, спасибо. Oct 26 2010, 17:17 drvlas Когда нужно много чего разного в ЕЕПРОМ писать-чит... Oct 26 2010, 20:33  rezident Цитата(drvlas @ Oct 27 2010, 02:33) Т.е. ... Oct 26 2010, 22:51   Dog Pawlowa А откуда там оверхэд берется, не подскажете? Oct 27 2010, 03:16  sergeeff Цитата(drvlas @ Oct 26 2010, 23:33) Когда... Oct 27 2010, 06:12   Сергей Борщ Цитата(sergeeff @ Oct 27 2010, 09:12) Код... Oct 27 2010, 08:08 sigmaN Я чё-та не соображу, вы переменную заводите с этим... Oct 27 2010, 03:52 sergeeff Я просто хотел показать, как писать/читать структу... Oct 27 2010, 08:53 Сергей Борщ Цитата(sergeeff @ Oct 27 2010, 11:53) но ... Oct 27 2010, 09:03 sergeeff AVR-овские штучки. Oct 27 2010, 11:29 rezident Цитата(Dog Pawlowa @ Oct 27 2010, 09:16) ... Oct 27 2010, 11:53 sigmaN ЦитатаИ про ОЗУ тут напрасно беспокоятся. Совершен... Oct 27 2010, 21:43 _Pasha какая-то белиберда. Откровенно железозависимые вещ... Oct 28 2010, 12:37
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|