Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Пример программы для работы с eeprom 24Cxxx
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
suska
Приветствую всех, нужна помощь с написанием программы для общения МК atmega8 с 24с256 через TWI, может у кого есть исходник на ассемблере, буду очень, очень благодарен, или дайте хотя бы ссылку на такую информацию. Самому уже не написать - время поджимает, поэтому прошу помощи у вас, заранее спасибо.
Семён
Цитата(suska @ Jul 18 2006, 21:06) *
Приветствую всех, нужна помощь с написанием программы для общения МК atmega8 с 24с256 через TWI, может у кого есть исходник на ассемблере, буду очень, очень благодарен, или дайте хотя бы ссылку на такую информацию. Самому уже не написать - время поджимает, поэтому прошу помощи у вас, заранее спасибо.

Приветствую Вас. По TWI исходника нет, могу предложить программную библиотеку мастера i2c для любых ножек
Семён
Привет suska! Это опять Семён. Решил немного отдохнуть от текущего проекта и посмотреть TWI. Не знаю, как написанный мною код будет работать, но на первый взгляд пишется по даташату довольно просто. У меня сейчас нет задач по работе с I2C, поэтому посылаю, что я тут натворил за 20 минут. Если на основе этого примера у Вас всё получиться большая просьба напишите об этом, кто знает что в жизни понадобиться.
TamTam
покапайся ТУТ

Кстати несовсем правильно 24XXX там есть разница в адресации, если надо могу скинуть сурц с моделью в протеусе, для 24Х256
Семён
Цитата(TamTam @ Jul 19 2006, 12:23) *
покапайся ТУТ

Кстати несовсем правильно 24XXX там есть разница в адресации, если надо могу скинуть сурц с моделью в протеусе, для 24Х256

То, что адресация разная я знаю. И, как правило (по крайней мере, я так писал) за формирование адреса отвечает основная программа. К сожалению, у меня сейчас нет времени делать эту библиотеку, но обращение к ней я подразумевал следующим образом:

rcall TWI_START
; Ожидаем прерывание от TWI
rcall TWI_ADR
;ожидаем прерывание от TWI
ldi statusTWI,АДРЕС1
rcall TWI_DATA_W
;ожидаем прерывание от TWI
ldi statusTWI,АДРЕС2
rcall TWI_DATA_W
;ожидаем прерывание от TWI
ldi statusTWI,ДАННЫЕ
rcall TWI_DATA_W
;ожидаем прерывание от TWI
rcall TWI_STOP
.
.
.
Кстати прошу прощение, что не правильно определил константы можно вот так.
.equ i2crd = 1
.equ i2cwr = 0
.equ SLA_W $A0+i2cwr
.equ SLA_R $A0+i2crd

Давно хотел написать i2c под TWI на ассемблере, но всё руки не доходят, да и последние проекты пишу на СИ.
suska
Спасибо всем за ответы, о результатах напишу, рабочую программу выложу на форуме.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.