помогите с I2C

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Сб апр 11, 2009 20:44:11

Сообщение break »

здравсвуйте, уважаемые!
очень надеюсь на вашу помощь. написал программу для обмена данными AtMega8 с ds1307. но она почему то не работает, уже даже и не знаю, что придумать. если кто может, посмотрите где у меня ошибка.
написано на ассемблере.
Вложения
clock.asm
(2.87 КБ) 316 скачиваний
Реклама
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

Ю.Ревич Практическое программмирование микроконтроллеров Atmel AVR на языке Ассемблера
в этой книжке есть подробное описание и пример работы по шине i2c с памятью и часами DSxxx


ps ссылку поправил, просто если в .djvu, то качает как страничку. щас будет как архив.
Реклама
Мучитель микросхем
Аватара пользователя
Сообщения: 491
Зарегистрирован: Вс янв 07, 2007 01:45:48
Откуда: Российская Федерация, будь она неладна...

Сообщение Pooher »

Для меги8 проще, на верное, так:

Код: Выделить всё

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
Научить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Сб апр 11, 2009 20:44:11

Сообщение break »

Pooher
Для меги8 проще, на верное, так:
не могу с вами не согласится. но дело в том, что я программки пока для atmega8 и на них их испытываю. но потом буду переделывать на atmega8515, а на нем к несчастью I2C пишется программно...

но все равно спасибо!!!

ibiza11 тебе тоже спасибо!
Реклама
Эиком - электронные компоненты и радиодетали
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 185
Зарегистрирован: Чт янв 22, 2009 14:03:25

Сообщение shtorm »

я в асме не очень, но с часами был прикол что они по умолчанию не идут их надо запускать в ручную....я вот както это проглядел
Контактная информация:
Реклама
Мучитель микросхем
Аватара пользователя
Сообщения: 491
Зарегистрирован: Вс янв 07, 2007 01:45:48
Откуда: Российская Федерация, будь она неладна...

Сообщение Pooher »

break писал(а): потом буду переделывать на atmega8515
8515 уже не актуально.
Научить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Реклама
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Сб апр 11, 2009 20:44:11

Сообщение break »

но с часами был прикол что они по умолчанию не идут их надо запускать в ручную
буду знать, спасибо!
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»