ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
22 ноября
269784 Топик полностью
ReAl (01.09.2011 16:24 - 16:27, просмотров: 215) ответил mazur на Я умею признавать свои ошибки. А вы? Речи нет, вы хорошие специалисты, но, проверьте хотя бы свои теоретические выкладки... DATA_PORT-PORTC, LCD_DATA-r17
Проверьте это. Полностью соответствует первоначальному моему варианту в плане применения EOR http://caxapa.ru/269503.html
Send_Com_Init: cbi CMD_PORT,RS ; /*FALLTHROUGH*/ Send_Nibble: rcall Data_Port_Out andi LCD_DATA, 0xF0 in r16, DATA_PORT rjmp Send_Nibble_1 Send_Com: cbi CMD_PORT,RS rjmp Send_Byte Send_Data: sbi CMD_PORT,RS ; /*FALLTHROUGH*/ ; именно тут, так как Send_Data вызывается чаще, чем Send_Com, та сбегает по rjmp Send_Byte: rcall Data_Port_Out in r16, DATA_PORT andi r16, 0x0F EOR r16, LCD_DATA andi LCD_DATA, 0x0F EOR r16, LCD_DATA out DATA_PORT, r16 sbi CMD_PORT, Ena rcall Just_ret cbi CMD_PORT, Ena swap LCD_DATA Send_Nibble_1: andi r16, 0x0F or r16, LCD_DATA out DATA_PORT, r16 sbi CMD_PORT, Ena rcall Just_ret cbi CMD_PORT, Ena ; /*FALLTHROUGH*/ ; именно тут, так как Send_Byte вызывается чаще других, остальные сбегают по rcall Data_Port_In: in r16, Data_DDR andi r16, 0x0F out Data_DDR, r16 in r16, Data_Port andi r16, 0x0F out Data_Port, r16 Just_ret: ret Data_Port_Out: in r16, Data_DDR ori r16, 0xF0 out Data_DDR, r16 ret