здравсвуйте, уважаемые!
очень надеюсь на вашу помощь. написал программу для обмена данными AtMega8 с ds1307. но она почему то не работает, уже даже и не знаю, что придумать. если кто может, посмотрите где у меня ошибка.
написано на ассемблере.
StopTWI:
ldi Tmp, (1<<TWINT)|(1<<TWSTO)|(1<<TWEN) ;стоп
out TWCR, Tmp1
ret
DS_Write: ;Запись
out TWDR, Tmp
ldi Tmp, (1<<TWINT)|(1<<TWEN)
out TWCR, Tmp
rcall Wait
ret
Start:
ldi Tmp, (1<<TWINT)|(1<<TWSTA)|(1<<TWEN) ;Старт
out TWCR, Tmp
rcall Wait
ret
NoACK:
ldi Tmp, (1<<TWINT)|(1<<TWEN) ;NOACK
out TWCR, Tmp
rcall Wait
ret
Wait: ;Ожидание
in Tmp, TWCR
sbrs Tmp, TWINT
rjmp Wait
ret
Read: ;Чтение
ldi Tmp, (1<<TWINT)|(1<<TWEN)|(1<<TWEA)
out TWCR, Tmp
rcall Wait
in Tmp, TWDR
ret
Научить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
не могу с вами не согласится. но дело в том, что я программки пока для atmega8 и на них их испытываю. но потом буду переделывать на atmega8515, а на нем к несчастью I2C пишется программно...
break писал(а): потом буду переделывать на atmega8515
8515 уже не актуально.
Научить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.