function 01: static unsigned char lcd_read_status (void) 02: { 03: unsigned char status; 04: 05: GPIO8->DDR = 0x00; /* P8.0..7 Inputs (LCD Data) */ 06: LCD_RW = LCD_READ; 07: LCD_RS = LCD_INST_REG; /* Instruction */ 08: LCD_E = LCD_ENABLE; 09: status = LCD_DATA; 10: delay(10); 11: LCD_E = LCD_DISABLE; 12: delay(10); 13: return (status); 14: } in LCD.c file contain ERROR. Lines 09 and 10 must be to trade places. This ERROR is cause of program hang-up at 96 MHz MCLCK