[an error occurred while processing this directive]
ПОМОГИТЕ !!!! по AT45DB041
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Ljutik 16 октября 2005 г. 22:04

Проблема такая:
Значение регистра статуса выдает, а данные выплевывать не хочет (анализатором смотрел)
Вот кусок исходника (для упрощения, адреса поставил в ноль)

page_addres = 0x00010;
buffer_addres = 0x0010;
data = 0xaa;

// процедура записи в память "сквозь" буфер

CS = 0;
SPDR = MM_PAGE_PROG_THROUGH_B1;
while ((SPSR & (1<
SPDR = 0;//page_addres>>8;
while ((SPSR & (1<
SPDR = 0;//((char)page_addres<<1)+(buffer_addres>>9);
while ((SPSR & (1<
SPDR = 0;//(char)buffer_addres;
while ((SPSR & (1<
SPDR = data;
while ((SPSR & (1<
SPDR = data;
while ((SPSR & (1< SPDR = data;
while ((SPSR & (1< SPDR = data;
while ((SPSR & (1< TEST = !TEST;
// CS = 1;

// с этим тоже не помагает

// CS = 0;
// SPDR = AUTO_PAGE_REWRITE_THROUGH_B1;
//while ((SPSR & (1<// CS = 1;
#asm ("cli");
delay_ms (14);
#asm ("sei");

// процедура чтения регистра STATUS


CS = 0;
SPDR = STATUS_REGISTER;
while ((SPSR & (1< SPDR = 0xFF;
while ((SPSR & (1< CS = 1;

#asm ("cli");
delay_us (50);
#asm ("sei");

//процедура чтения байта из памяти
CS = 0;
SPDR = MAIN_MEMORY_PAGE_READ; // читать данные, минуя буфер
while ((SPSR & (1<
SPDR = 0;//page_addres>>8;
while ((SPSR & (1< SPDR = 0;//((char)page_addres<<1)+(buffer_addres>>9);
while ((SPSR & (1< SPDR = 0;//(char)buffer_addres;
while ((SPSR & (1<
SPDR = 0xFF;
while ((SPSR & (1< data = SPDR;
CS = 1;

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru