Как-то странно все пока...
Поменял код:
Код
volatile unsigned int ManID,MemType,MemType1,MemType2,MemSize;
void Flash_ReadType(void)
{
FPIN_CLR(4,21);
SSP1DR = 0x9F;
SSP1DR = 0;
SSP1DR = 0;
while ( !(SSP1SR & SSPSR_BSY) );
ManID = SSP1DR; // В SSP1DR 0xFF, но при чтении в переменную попадает 0x1F
MemType = SSP1DR; // В SSP1DR 0x47, но при чтении в переменную попадает 0x01
MemSize = SSP1DR; // В SSP1DR 0x01, но при чтении в переменную попадает 0x00
FPIN_SET(4,21);
}
Если выполнять пошагово - в дебаггере Keil вижу в регистре SSP1DR нужные данные - 1F,47,01, да и то - не всегда. Иногда вижу 1F и 01, а 47 теряется...
А если в отладчике выполнить функцию целиком (F10) то в переменные записываются нули...
Сообщение отредактировал yurmala - Sep 7 2011, 09:18