|
непонятным образом меняется регистр DDRA ATmega128, программа написана на C от IAR
Отключал инициализацию всей периферии (прерываний нет),
но все равно явление наблюдается
Код где данное явление происходит ниже:
void LcdWaitBusy (void)
{
// LCD_DATA есть DDRA
PORT_LCD_DATA = 0xB0; /* set LCD_DATA port in input mode */
DDR_LCD_DATA = 0x4F; /* set LCD_DATA port in input mode */
LCD_DI = 0; /* Instruction mode */
LCD_RW = 1; /* Read mode */
LCD_E = 0; /* strobe */
LcdDelay(16);
LCD_E = 1;
LcdDelay(16);
while ( tstBit(PIN_LCD_DATA,7 ))//; /* mask the other status bits and test the BUSY bit */
{
if ( DDR_LCD_DATA != 0x4f )
{
//DDR_LCD_DATA = 0x4F; попадаю сюда
__no_operation();
}
}
LCD_E = 0;
PORT_LCD_DATA = 0x00; /* set LCD_DATA port in input mode */
DDR_LCD_DATA = 0xFF; /* set LCD_DATA port in input mode */
LcdDelay(16);
}
E-mail: info@telesys.ru