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

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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.04.2013, 20:59   #1
dmitry123
Member
 
Регистрация: 03.12.2012
Адрес: Ярославль
Сообщений: 53
Вес репутации: 0
dmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant future
По умолчанию Помогите с записью в EEPROM

PHP код:
#include <EEPROM.h>
uint16_t val 0;
uint16_t reg;
void setup()
{
EEPROM.write(0,val);
reg=EEPROM.read(0);
}
void loop()
{



В данном случае, если записать в EEPROM значение val, а потом его считать, то reg получает значение из памяти, равное val.
В дальнейшем коментирую EEPROM.write .... и при чтении, значение reg получает 255, а не 0, которое было записано до этого ...
В чем проблема ?
dmitry123 вне форума   Ответить с цитированием
Старый 07.04.2013, 21:11   #2
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820
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
По умолчанию

Тип данных должен быть uint8_t
Admin вне форума   Ответить с цитированием
Старый 07.04.2013, 21:49   #3
dmitry123
Member
 
Регистрация: 03.12.2012
Адрес: Ярославль
Сообщений: 53
Вес репутации: 0
dmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant future
По умолчанию

Как из uint16_t перевести в uint8_t и обратно ?
dmitry123 вне форума   Ответить с цитированием
Старый 07.04.2013, 21:50   #4
dmitry123
Member
 
Регистрация: 03.12.2012
Адрес: Ярославль
Сообщений: 53
Вес репутации: 0
dmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant future
По умолчанию

А почему если записать и скитать сразу же, то все ок, при uint16 ?????
dmitry123 вне форума   Ответить с цитированием
Старый 07.04.2013, 22:00   #5
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820
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
По умолчанию

Проверьте вот так
Цитата:
#include <EEPROM.h>
uint8_t val = 0;
uint8_t reg;
void setup()
{
EEPROM.write(0,val);
reg=EEPROM.read(0);
}
void loop()
{


}
Admin вне форума   Ответить с цитированием
Старый 07.04.2013, 22:02   #6
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820
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
По умолчанию

Цитата:
Сообщение от dmitry123 Посмотреть сообщение
А почему если записать и скитать сразу же, то все ок, при uint16 ?????
С uint16_t тоже должно работать, так как в EEPROM запишется младший байт
Admin вне форума   Ответить с цитированием
Старый 07.04.2013, 22:27   #7
dmitry123
Member
 
Регистрация: 03.12.2012
Адрес: Ярославль
Сообщений: 53
Вес репутации: 0
dmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant future
По умолчанию

Door.zip
Не работает как надо.
Если сначала записать, а потом считать, то передается ....
Тестирую не на arduino, а сразуже на плате. МК подключен по этой схеме
dmitry123 вне форума   Ответить с цитированием
Старый 07.04.2013, 22:34   #8
dmitry123
Member
 
Регистрация: 03.12.2012
Адрес: Ярославль
Сообщений: 53
Вес репутации: 0
dmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant future
По умолчанию

Записал тот же скетч в arduino nano. Там работает.
Значит проблема или в МК или в разводке платы.
Обвязку МК делал по схеме как у вас в http://cyber-place.ru/attachment.php...1&d=1359016441
МК - ATmega328P-AU
Попробовал через eeprom_read_byte и eeprom_write_byte. Все тоже самое.
Питание МК - vcc=avcc, aref через конденсатор на землю.
Ума не приложу в чем дело

Последний раз редактировалось dmitry123; 07.04.2013 в 23:03.
dmitry123 вне форума   Ответить с цитированием
Старый 07.04.2013, 23:20   #9
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820
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
По умолчанию

Чем прошивал контроллер? Какие Fuse при прошивке использовал?
Admin вне форума   Ответить с цитированием
Старый 07.04.2013, 23:22   #10
dmitry123
Member
 
Регистрация: 03.12.2012
Адрес: Ярославль
Сообщений: 53
Вес репутации: 0
dmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant future
По умолчанию

Шил через Arduino IDE 1.0.3, в качестве ISP использовал Arduino NANO
Первоначально залил boot, а затем счетч через (загрузить через программатор)
FUSE биты не использовал
dmitry123 вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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


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


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