Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 14.10.2014, 21:49   #1
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: Ускоряем работу Arduino

Не понял, каким образом функция расбрасывает по всему полю? Если ей не задать адрес то она запишет по адресу 0
Admin вне форума   Ответить с цитированием
Старый 14.10.2014, 22:45   #2
bwn
Junior Member
 
Регистрация: 14.10.2014
Сообщений: 7
Вес репутации: 0
bwn is an unknown quantity at this point
По умолчанию Re: Ускоряем работу Arduino

Цитата:
Сообщение от Admin Посмотреть сообщение
Не понял, каким образом функция расбрасывает по всему полю? Если ей не задать адрес то она запишет по адресу 0
IDE 0018, Atmega328, Duemilanove. Столкнулся с проблемой когда начал сохранять адреса датчиков DS18. Один не определялся. Начал рыть EEPROM, обнаружил, что после применения конструкции

if (ReadEEPROM_Word(0)<400) {WriteEEPROM_Word(0, 510);} //Значение клавиши Set
if (ReadEEPROM_Word(2)<400) {WriteEEPROM_Word(2, 825);} //Значение клавиши UP
if (ReadEEPROM_Word(4)<400) {WriteEEPROM_Word(4, 690);} //Значение клавиши DOWN
if (ReadEEPROM_Byte(8)<1||ReadEEPROM_Byte(8 )>20) {WriteEEPROM_Byte(8, 5);} //Время освещения по умолчанию
if (ReadEEPROM_Byte(9)<8||ReadEEPROM_Byte(9 )>20) {WriteEEPROM_Byte(9, 10);} //Температура по умолчанию
if (ReadEEPROM_Byte(10)<30||ReadEEPROM_Byte (10)>80) {WriteEEPROM_Byte(10, 40);} //Влажность по умолчанию
if (ReadEEPROM_Long(11)<-29||ReadEEPROM_Long(11)>29) {WriteEEPROM_Long(11, 0);} //Корр. времени по умолчанию
if (ReadEEPROM_Long(15)<-5||ReadEEPROM_Long(15)>5) {WriteEEPROM_Long(15, 0);} //Корр. темп.помещения низ даллас
if (ReadEEPROM_Long(19)<-5||ReadEEPROM_Long(19)>5) {WriteEEPROM_Long(19, 0);} //Корр.темп.улица даллас
if (ReadEEPROM_Long(23)<-5||ReadEEPROM_Long(23)>5) {WriteEEPROM_Long(23, 0);} //Корр.темп.помещение DHT
if (ReadEEPROM_Long(27)<-15||ReadEEPROM_Long(27)>15) {WriteEEPROM_Long(27, 0);} //Корр.влажности DHT

один из адресов датчиков записанный побайтово с 40 ячейки в ячейках 44-47 содержит 00. После чего записал всю память FF, считал - все верно. Применил вышеозначенную конструкцию, таже байда. Комментишь строку
if (ReadEEPROM_Long(11)<-29||ReadEEPROM_Long(11)>29) {WriteEEPROM_Long(11, 0);} //Корр. времени по умолчанию
адрес не затирается.

Просмотр памяти после заполнения FF и применения вышеозначенной конструкции+запись адресов датчиков DS показала заполнение части памяти различными значениями, в т.ч. присутствуют и адреса датчиков DS18 (легко опознавать).
Просматривал в цикле 0-1024 командой
Serial.print(i,DEC);
Serial.print(" ");
Serial.println(ReadEEPROM_Byte(i),HEX);
bwn вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 14 (пользователей: 0 , гостей: 14)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 03:03. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика