Цитата(SyncLair @ Dec 5 2012, 20:46)

давайте по порядку, лучше плясать от исходника.
1. наверное в последней строке addr3 иначе предыдущая строка не имеет смысла
а. номер блока умножается на 64 (значит в одном блоке 64 страницы)
б) номер блока распределяется в две однобайтные переменные
г) они куда то там передаются (вы уверены что передаются addr1 и addr2 )
тогда зачем addr3?????
вы бы глубоко вздохнули и ещё раз написали пример поподробнее
Код
void Erase(uint16 block)
{
uint32 pageNum
uint8_t addr1,addr2;
num = block << 6;
addr1 = (uint8_t)( num & 0xff );
addr2 = (uint8_t)( ( num >> 8 ) & 0xff );
Далее команда на стирание 60h
Передаем адрес addr1
Передаем адрес add2
Вторая команда стирания d0h
Ожидаем ответ Ready/Bysy пина
}
Вот пример как он выглядит в программе к микроконтроллеру и на большинстве примеров из сети. Прошу прощения что назвал переменные не совсем коректно в прошлом примере..просто пытался объяснить и не вдавался в смысл названий.
Завтра уже нада что то показывать начальнику, а я в простой адресации не могу разобраться.
Сообщение отредактировал IgorKossak - Dec 5 2012, 17:05
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!!!