Код: Выделить всё
ldi tmp, (1<<TWINT)|(1<<TWSTA)|(1<<TWEN) ;start
out TWCR, tmpЧто в VMLAB, что в железе.
Код: Выделить всё
ldi tmp, (1<<TWINT)|(1<<TWSTA)|(1<<TWEN) ;start
out TWCR, tmpКод: Выделить всё
TWI: Attempt to write TWDR register while TWINT flag is low"TWI: Attempt to write TWDR register while TWINT flag is low" -• Bit 7 – TWINT: TWI Interrupt Flag
This bit is set by hardware when the TWI has finished...
Я ни разу не пользовался VMLAB, но думаю, что он хочет вас предупредить о том, что если вы пишете в TWDR когда TWINT равен 0, то это может привести к ошибке, поскольку возможно не выполнилась предыдущая операция на шине (старт, рестарт, передача байта или стоп). Т.е. пока флаг TWINT не установится (аппаратно) не стоит записывать в TWDR данные.Pooher писал(а):Может я и не прав, но вот что выдаёт VMLAB:
Код: Выделить всё
TWI: Attempt to write TWDR register while TWINT flag is low
Код: Выделить всё
ldi tmp, (1<<TWINT)|(1<<TWSTA)|(1<<TWEN) ;start
out TWCR, tmpДаташитом на м8Если не секрет, Вы каким справочником пользуетесь?
Вопрос был не в том "ЧТО ЭТО ЗНАЧИТ?" а "ПОЧЕМУ ЭТО ТАК?""TWI: Attempt to write TWDR register while TWINT flag is low" -
Попытка записи в регистр TWDR, когда его флаг TWINT установлен в низкий уровень.
Ну я так и писал. Только вот сбрасывается он исключительно программно.This bit is set by hardware when the TWI has finished...