реклама на сайте
подробности

 
 
> Работа с 25lc640
CSB
сообщение May 16 2006, 17:43
Сообщение #1


Частый гость
**

Группа: Новичок
Сообщений: 100
Регистрация: 9-03-06
Пользователь №: 15 088



Hi, All!
С форума взял исходники для работы с 25lc640, немного переделал. Добавил функцию для записи страниц (32 байта). И при проверке произходит
следующее:
1. Пишем страницу.
2. Читаем 32 байта.
Записанное и прочитанное совпадают.

1. Пишем 32 байта с помощью функции, записывающей 1 байт за раз
2. Читаем 32 байта.
Записанное и прочитанное совпадают.

1. Пишем 1 байт с помощью функции записи страницы.
2. Пишем страницу.
3. Читаем 33 байта.
Записанное и прочитанное совпадают.

//================================================================================
==

Теперь пошли баги:

1. Пишем 1 байт.
2. Пишем страницу.
3. Читаем 33 байта.
Записанное и прочитанное не совпадают. Конкретно: не записывается самый первый байт, пишется как "0".
Обмен местами пунктов 1 и 2 не дает результата.

1. Пишем 1 байт.
2. Пишем 1 байт.
3. Пишем страницу.
4. Читаем 34 байта.
Записанное и прочитанное не совпадают. Конкретно: не записывается первые два байта, пишутся как "0".

У кого какие идей возникли?

Компилятор CVAAVR 1.24.4Прикрепленный файл  25lc640.txt ( 3.51 килобайт ) Кол-во скачиваний: 225


Сообщение отредактировал CSB - May 16 2006, 18:10
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
CSB
сообщение May 16 2006, 18:27
Сообщение #2


Частый гость
**

Группа: Новичок
Сообщений: 100
Регистрация: 9-03-06
Пользователь №: 15 088



Цитата
Два замечания.
1. Столь внушительный исходник не стоит включать в сообщение в виде текста. Лучше отдельным файлом присоедините к сообщению.

Не вопрос.

Цитата
2. Я просмотрел исходник конечно "по диагонали", но не увидел где у вас идет проверка и выравнивание на размер страницы при записи произвольного количества байт?


При записи страницы мы начинаем новый цикл записи и то что перед этим был записан байт не важно.
Возможно я вас неправильно понял, тогда объясните подробнее.
Go to the top of the page
 
+Quote Post
rezident
сообщение May 16 2006, 19:15
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(CSB @ May 17 2006, 00:27) *
При записи страницы мы начинаем новый цикл записи и то что перед этим был записан байт не важно.
Возможно я вас неправильно понял, тогда объясните подробнее.

Где идет разбивка на страницы? В основной программе? Допустим нужно записать 100 байт с адреса 0x15. 100 байт это 100/32=3 и 1/8 страницы. Все бы ничего, но начинать нужно с адреса не кратного странице. Т.е. в первой (нулевой) странице нужно записать всего 10 байт со смещением 0x15. Потом две полных страницы по 32 байта. Затем 26 байт в четвертой странице с начала страницы. Мой вопрос был: где именно делается эта разбивка на страницы?
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 06:50
Рейтинг@Mail.ru


Страница сгенерированна за 0.01488 секунд с 7
ELECTRONIX ©2004-2016