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

 
 
> [AtMega48]Не удается работать с 24lc512 при помощи либы Procyon AVRlib
cvv
сообщение Jun 10 2008, 06:43
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 60
Регистрация: 3-02-08
Пользователь №: 34 700



после записи i2c eeprom 24lc512 на скорости 400 кбит я читаю не тоже самое что писал. вернее ф-я i2ceepromReadByte возвращает всегда старший байт адреса.
Пример читающего кода:

Код
int main(void)
{      
// Crystal Oscillator division factor: 1

#ifndef __GNUC__
#pragma optsize-
#endif
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif
InitChip();
SPI_SlaveInit();
i2cInit();
i2ceepromInit();

asm __volatile__("wdr");

static unsigned short i;
  
for(i=0;; i++)
{
    unsigned char byte;
    byte = i2ceepromReadByte(0, i);

    OutData(_BV(0), digit_value_mask[i      &0x000f]&0x7f);
    OutData(_BV(1), digit_value_mask[(i>>4) &0x000f]&0x7f);
    OutData(_BV(4), digit_value_mask[(i>>8) &0x000f]&0x7f);
    OutData(_BV(5), digit_value_mask[(i>>12)&0x000f]&0x7f);

    OutData(_BV(2), digit_value_mask[byte      &0x0f]&0x7f);
    OutData(_BV(3), digit_value_mask[(byte>>4) &0x0f]&0x7f);

    delay_ms(500);
}


400 кБит выставляется в i2cInit()
все прерывания всегда запрещены так как я понял что для работы i2ceepromReadByte() они не нужны
Go to the top of the page
 
+Quote Post



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

 


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


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