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

 
 
> Кто работал с памятью at45db161d или в принципе с at45dbxxxd, пожалуйста подскажите, Проблемы с at45db161d и их решение
lomtev
сообщение Sep 23 2007, 07:48
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 22-08-07
Пользователь №: 29 980



Так вот, ситуация такая. Использовал примеры программ из аппноутов, переписал коды команд на те которые советуют в даташите. Перепроверил и в других источниках типа занятие 7 с сайт 123avr. Функции написаны правильно. Сначала стираю память, потом пишу в нее значения до 176, тобишь записываю 176 байт. Потом читаю память и сохраняю данные в массив, после вывожу массив на экран (в выводе символов ошибок нет точно), выводятся исключительно значения 255, в рядок так 255 255 255 и т.д. Впихивал вывод значений в разные места программы с выводом разных переменных - вроде все работает. да и в противном случае вывело первоначальное значение массива а это 0. Забавная еще вещь наблюдается, программа написана изначально была для 28 ногово чипа, а я использую 8 ногий так что приходится читать занятость из регистра стуса строчкой типа while (!(SPSR & temp));, я думал что ошибка в ожидании и добавил строчку SPDR = STATUS_REGISTER;, но потом удалил, покуда изменений не произошло.
Так теперь зараза не хочет работать без этой строчки, хотя раньше работала так же криво как и сейчас.
И еще при стирании биты выставляются как я понял в значение 255.
Кто-нибудь сталкивался или работал с данным чипом? В тупике. предположений нет вообще. Если кто хочет помочь и нуждается в наглядной демонстрации кода, то я выложу.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sensor_ua
сообщение Sep 26 2007, 20:43
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387



А unsigned char k не пробовал?


--------------------
aka Vit
Go to the top of the page
 
+Quote Post
lomtev
сообщение Sep 27 2007, 16:29
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 22-08-07
Пользователь №: 29 980



Цитата(sensor_ua @ Sep 27 2007, 00:43) *
А unsigned char k не пробовал?

Попробовал. Не помогло. Согласен что скорее всего все дело в переменной k, но как она нарушила довольно жесткий цикл пересчета:

void math_screen(unsigned char eds,unsigned char new_znach)
{
unsigned char i=0;
unsigned char mas_eds[4]={10,10,10,10};

if(eds>=100) mas_eds[0]=0; //Если число больше или равно сотни, то там явно будет число и надо убрать пробел
if(eds>=10) mas_eds[1]=0; //Если число больше или равно десяти, то там явно будет число и надо убрать пробел
if(eds!=0) mas_eds[2]=0; //Если число больше не равно нулю, то там явно будет число и надо убрать пробел
if(eds==0) mas_eds[2]=0;

for(i=0; i<eds; i++) //Разбиение числа на единицы, десятки и сотни
{
mas_eds[2]++;
if(mas_eds[2]==10){mas_eds[2]=0; mas_eds[1]++;}
if(mas_eds[1]==10){mas_eds[1]=0; mas_eds[0]++;}
}

for(i=0; i<4; i++) put_char (new_znach+i*8,60, mas_eds[i]);
}

Вызывается мат_скрин циклом:

unsigned char g=0;

for(g=0; g<5; g++)
{
math_screen(bt_word[g], 10+g*32);
}

Сам массив bt_word:

unsigned char bt_word[176]={0};

Дальше идет, сравнение с кодировкой символов, причем только цифр и пробела - но это уже не важно. Башню ему сносит где-то на пересчете. Что он пишет в mas_eds[0] что выводит казилябры, число должно быть больше десяти, но как в char можно запихнуть значение больше тысячи, лишнее должно было бы срезаться. Надеюсь вам понятно, а то без пива явно не разобраться. beer.gif

Может все дело в скорости и надо согласовать все циклы и функции или цикл с мат_скрином убрать в отдельную функцию с ожиданием пересчета байта. Допустим она пересчитывает один, а цикл ему уже отправил другой и все накладывается... ну что-нить вроде этого smile.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- lomtev   Кто работал с памятью at45db161d или в принципе с at45dbxxxd, пожалуйста подскажите   Sep 23 2007, 07:48
- - sensor_ua   Похоже, чтение регистра статуса неправильное. Пока...   Sep 23 2007, 08:11
|- - lomtev   Цитата(sensor_ua @ Sep 23 2007, 12:11) По...   Sep 23 2007, 10:07
- - sensor_ua   Цитатая понял надо писать до chip_select Неправиль...   Sep 23 2007, 10:40
|- - lomtev   Цитата(sensor_ua @ Sep 23 2007, 14:40) Не...   Sep 23 2007, 10:59
- - sensor_ua   ЦитатаSPDR = STATUS_REGISTER; while (!(SPSR ...   Sep 23 2007, 11:07
|- - lomtev   Написал аналог предложенного выше цикла... вот что...   Sep 23 2007, 18:24
- - sensor_ua   Ну а остальные команды обрамить CS? Вот примерчик ...   Sep 23 2007, 18:40
|- - lomtev   Цитата(sensor_ua @ Sep 23 2007, 22:40) Ну...   Sep 23 2007, 18:51
|- - lomtev   Цитата(lomtev @ Sep 23 2007, 22:51) ДА вр...   Sep 23 2007, 20:02
- - sensor_ua   Чтение/запись буфера не требуют проверки статуса н...   Sep 23 2007, 20:05
- - lomtev   Я уже начал искать совершенно тупые варианты и наз...   Sep 23 2007, 20:05
|- - OLEG_BOS   Цитата(lomtev @ Sep 23 2007, 23:05) Я уже...   Sep 23 2007, 20:16
|- - lomtev   Цитата(OLEG_BOS @ Sep 24 2007, 00:16) В к...   Sep 23 2007, 20:25
|- - OLEG_BOS   Цитата(lomtev @ Sep 23 2007, 23:25) Ясно,...   Sep 23 2007, 20:28
- - sensor_ua   )) MISO - Master Input Slave Output MOSI - Master ...   Sep 23 2007, 20:32
|- - lomtev   Цитата(sensor_ua @ Sep 24 2007, 00:32) ))...   Sep 23 2007, 20:59
- - sensor_ua   Цитатая не понял что есть такое. Вот-вот. Проблема...   Sep 23 2007, 21:02
|- - lomtev   Цитата(sensor_ua @ Sep 24 2007, 01:02) Во...   Sep 23 2007, 21:05
- - sensor_ua   Цитатаона может работать и на пяти Для этого нужно...   Sep 23 2007, 21:13
- - Snaky   Цитата(lomtev @ Sep 23 2007, 14:48) Кто-н...   Sep 24 2007, 03:53
- - sensor_ua   ЦитатаЕсть готовая рабочая билиотека А была надежд...   Sep 24 2007, 04:12
|- - lomtev   Цитата(sensor_ua @ Sep 24 2007, 08:12) А ...   Sep 24 2007, 14:00
|- - zltigo   Цитата(lomtev @ Sep 24 2007, 17:00) в 8 н...   Sep 24 2007, 15:10
- - GDI   Раньше выпускались АТ45 с какой то буквой(вроде , ...   Sep 24 2007, 12:01
- - sensor_ua   ЦитатаВозможно удивитесь Не принимайте так близко ...   Sep 24 2007, 14:30
|- - lomtev   Цитата(sensor_ua @ Sep 24 2007, 18:30) Не...   Sep 24 2007, 20:01
- - lomtev   В прикрепленном файле функции. Файл не большой пос...   Sep 24 2007, 21:16
- - sensor_ua   1) Прерывания пока разрешать не нужно (в setup()),...   Sep 25 2007, 03:34
|- - lomtev   1. В setup написал #asm("cli") // запре...   Sep 25 2007, 17:49
|- - rezident   Цитата(lomtev @ Sep 25 2007, 23:49) Парни...   Sep 25 2007, 18:10
- - GDI   Вот библиотека с которой я работаю, инициализация ...   Sep 25 2007, 06:44
- - lomtev   Предложенный исходник, написан явно не для Codevis...   Sep 25 2007, 18:38
|- - rezident   Цитата(lomtev @ Sep 26 2007, 00:38) Предл...   Sep 25 2007, 18:49
- - lomtev   ТАк парни, кажись пошло г**вно по трубам, перепаял...   Sep 25 2007, 18:59
- - sensor_ua   А какой проц? пока почему-то думал, что мега16.   Sep 25 2007, 19:25
- - lomtev   Всё парни.... всё заработало, по крайней мере перв...   Sep 25 2007, 19:31
- - urasinov   ЦитатаВторая - Не знаю почему но программатор (Обы...   Sep 26 2007, 04:06
- - GDI   Программатор все же лучше сделать покруче, наприме...   Sep 26 2007, 06:58
- - lomtev   Фишка не в самом программаторе, а в компе, если пр...   Sep 26 2007, 17:28
- - lomtev   Заметил странную штуку. Была проблема что у меня н...   Sep 26 2007, 19:48
- - lomtev   Я иногда дивлюсь своему аналитическому уму Добав...   Sep 27 2007, 18:19
- - sensor_ua   eds == 0xFF для Цитатаfor(i=0; i<eds; i++) //Р...   Sep 27 2007, 18:41
- - lomtev   Я бобер хитрый и вывел значение которое должно ото...   Sep 27 2007, 20:33
- - Ivaxa   Решил и про свою проблему написать. При замене AT4...   Jan 23 2008, 13:13
- - uriy   А какую частоту CLK используете? У меня при частот...   Jan 23 2008, 19:15
- - Roger   Помогите решить проблемы, курсач нужно было сдать ...   Dec 11 2009, 13:47
- - GDI   Программатор пробовали от схемы отключать?   Dec 14 2009, 11:50
- - Roger   Цитата(GDI @ Dec 14 2009, 14:50) Программ...   Dec 15 2009, 19:11


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

 


RSS Текстовая версия Сейчас: 30th July 2025 - 09:28
Рейтинг@Mail.ru


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