Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ATMEGA128 + AT45DB321D
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Tcom
Добрый день!! Есть такая проблемма в моём устройстве данные пишутся каждую минуту таким вот образом
1.Читаю сектор командой FlashToBuf1Transfer.
2.Модифицирую данные в буфере
Код
DF_SPI_RW(Buf1Write);                //buffer 1 write op-code
        DF_SPI_RW(0x00);                //don't cares
        DF_SPI_RW((unsigned char)(IntPageAdr>>8));      //upper part of internal buffer address
        DF_SPI_RW((unsigned char)(IntPageAdr));            //lower part of internal buffer address
        DF_SPI_RW(Data);

3.Записываю буфер обратно в сектор Buf1ToFlashWE (с стиранием встроенным).

Когда читаю данные -

1.Читаю сектор в буфер 2 - FlashToBuf2Transfer
2.Читаю данные с буфера

И в итоге у меня записываются соседние сектора, если пишу 0 то пишутся 1,2,3 .
Ч то я не так делаю??
demiurg_spb
Попробуй так...
volod_ua
Подібна проблема є і у мене....якщо вилікуєте цю проблему роскажіть як...
Я раніше робив з 1МБ все було ок....а вот з тою новою ДатаФлешкою якісь проблеми....
haker_fox
Цитата(volod_ua @ Aug 6 2008, 18:42) *
Подібна проблема є і у мене....якщо вилікуєте цю проблему роскажіть як...
Я раніше робив з 1МБ все було ок....а вот з тою новою ДатаФлешкою якісь проблеми....

Простите, а нельзя по русски?
Tcom
Полечилось когда исправил,
нада
Код
        DF_SPI_RW((unsigned char)(PageAdr >> (16 - PageBits)));    
        DF_SPI_RW((unsigned char)(PageAdr << (PageBits - 8)));

а было
Код
    DF_SPI_RW((unsigned char)(PageAdr >> 6)));       //upper part of page address
        DF_SPI_RW((unsigned char)(PageAdr & 0x3F)); //lower part of page address


в функциях чтения и записи страниц (BufferToPage - PageToBuffer)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.