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

 
 
> SPI Eeprom M95080+mega64
ipkin
сообщение Jun 11 2008, 19:47
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 22
Регистрация: 10-07-07
Из: Магнитогорск
Пользователь №: 29 046



подскажите что не так в проге
еепром полностью записываться не хочет максимум 159байт может и меньше
вот код:
#include <mega64.h>
#include <stdlib.h>
#include <delay.h>

//Настройка регистров Mega64
void Init()
{
MCUCR=0xC0;
XMCRA=0x02;
TIMSK=0x00;
ACSR=0x80;
}

void Load()
{
static unsigned long int j;
PORTB= 0x0D;
DDRB = 0x07; // Настройка выводов порта PortB
SPCR = 0x5D; // Конфигурация SPI

for (j=0;j<1024;j++)
{
PORTB.0=0; // enable eeprom 95080
delay_ms(20);

SPDR=0x06; //Передача команды WREN (Set Write Enable Latch)
while (!(SPSR & 0x80));
PORTB.0=1;
delay_ms(20);
PORTB.0=0;

//Передача команды WRITE (Write Data to Memory Arry)
SPDR=0x02;
while (!(SPSR & 0x80));

//Передача адреса куда будем записывать (2 байта 0000h)
SPDR=0x00;
while (!(SPSR & 0x80));

SPDR=0x00+j;
while (!(SPSR & 0x80));

//Передача данных

SPDR=0x11;
while (!(SPSR & 0x80));

PORTB.0=1;
delay_ms(20);
}
}
void main(void)
{
Init();
Load();
loop:
goto loop;
}
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
AHTOXA
сообщение Jun 11 2008, 20:23
Сообщение #2


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(ipkin @ Jun 12 2008, 01:47) *
Код
    static unsigned long int j;


Если адрес - 2 байта, то достаточно unsigned int.

Цитата
Код
    //Передача адреса куда будем записывать (2 байта 0000h)
    SPDR=0x00;
    while (!(SPSR & 0x80));
    
    SPDR=0x00+j;
    while (!(SPSR & 0x80));


Вот здесь ошибка. Старший байт адреса передаётся всё время нулевой.
надо примерно так:
Код
    SPDR=j>>8;
    while (!(SPSR & 0x80));
    
    SPDR=j;
    while (!(SPSR & 0x80));


Ну и 20 миллисекунд задержки на байт данных это явно переборsmile.gif


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post



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

 


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


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