Технический форум по робототехнике.
SkyZi » 05 июл 2012, 12:22
Доброе время суток.
Проведя несколько суток (5-6), в поисках исходников I2c slave для CodeVision'a, для использования ATMega16 в качестве ведомого, решил все таки попросить помощи.
Имеется:
*ATmega16 - 6 штук, однотипный программный код (ведомые)
*ATMega32 - 1 штука (ведущий)
Цель:
1.Передать от ведущего к ведомым по очереди, массив (x,y,z)
2.следовательно, его принять ведомыми.
Прошу поделиться у кого есть исходником работы I2c в качестве ведомого и ведущего (если возможно "пакетную")
P.S. просьба в 311 и в 315 не отсылать, своими силами под CodeVision не смог завести.
SkyZi » 06 июл 2012, 15:35
Хотя бы, просто исходник Ведомого.
dccharacter » 06 июл 2012, 15:45
Не знаю чем, но, может, поможет:
http://www.microchip.su/showthread.php?t=11961Добавлено спустя 5 минут 3 секунды:Т.е. тебе надо расписать возможные варианты - события. Их, кажется, шесть:
STATE 1: MASTER WRITE, LAST BYTE WAS AN ADDRESS
STATE 2: MASTER WRITE, LAST BYTE WAS DATA
STATE 3: MASTER READ, LAST BYTE WAS AN ADDRESS
STATE 4: MASTER READ, LAST BYTE WAS DATA
STATE 5: MASTER NACK
STATE 6: если сюда попали, то ошибка, тушим свет, сливаем воду.
Надо четко определить комбинации флагов, которые определяют то или иное состояние. Потом надо правильно обработать буфер (снятие флагов чтением из буфера, например) и отпустить клок-линию, если мы ее держали.
Потом берешь и прогоняешь с сигнализатором (светодиодом, например), все события. И дальше тупо дописываешь обработчики. Всего-то дней на пять гемороя.
Кстати, странно - слейв реально намного сложнее в i2c, но никто его не расписывает, аппнотов нет, примеров нет.
SkyZi » 07 июл 2012, 08:47
Вот как раз мне ведомый(Slave) и нужен:(
HarryStar » 08 июл 2012, 22:54
http://easyelectronics.ru/avr-uchebnyj- ... c-i2c.htmlОдна из лучших реализаций I2C. Переделывается под свои нужды без проблем. Реализован мастер и слейв одновременно, со всеми вариантами ситуаций.
В свое время переделал себе (без использования ОС и т.д.), с тех пор пользую во всех своих проектах.
SkyZi » 09 июл 2012, 12:19
Туда я раз если не 100 но 50 точно смотрел, не работает у меня то что я оттуда позаимствовал, еще и свой код испохабил, хорошо сохранил перед этим.
Говорю же, поиском пользоваться умею.
+ меня слайв интересует, а не кучу лишних функций! (получил байты и дальше основным кодом занялся)
и еще эти прихибеточные издевки в место приличного описания, нереально бесят.
P.S. Если жалко то лучше так и сказать, чтобы я зря не терял тут время.
P.S.S. если бы я знал как переделать, поверь я бы не спрашивал.
Интересует именно лаконичный код работы в Slave режиме, и только slave без "ботвы" и "ОС"
Romikgy » 09 июл 2012, 14:06
это называется "сделайте за меня , то что нужно мне"... такими весчами занимаются студенты , когда им делать нечего .... есть много кода , но как правило он рассчитан на все случаи жизни...если не желаете разбираться, зачем беретесь ? если есть желание разобраться , тогда копайте код которых есть ....
SkyZi » 09 июл 2012, 17:24
Копать код который простите не работает в CodeVision нереально, если учесть с AVR начал общаться совсем недавно, и проблем не было не решаемых.
Но столкнувшись с i2c с лету перебрал Мастер код. И уже 2-3 недели не могу не чего со Slave сделать.
Чтобы разобраться в нем, его надо иметь хотя бы какой то, способный принять от мастера байты, уж лишнее убрать смогу.
Но когда код не работает в компиляторе, описание приводит в ужас(туча грамматических ошибок и лексикон как у подзаборного пьяницы) и в коде месиво с ОС уже слишком.
Да и зачем изобретать велосипед? если у кого то есть отлаженный код под режим slave и компилятор CVAVR.
Добавлено спустя 54 минуты 25 секунд:Romikgy писал(а):это называется "сделайте за меня , то что нужно мне"...
Похоже вы не утруждали себя прочтением 1 поста. Я не прошу сделать за меня, интересует пример работы Slava'а работающий и компилируемый в CVAVR.
Scorpio » 10 июл 2012, 03:56
Вот программный slave делал. Может пригодится.
SkyZi » 10 июл 2012, 18:33
Спасибо конечно, я пробовал так. Но к сожалению оказалось что Атюни не справляется с основной задачей=//
SkyZi » 11 июл 2012, 23:24
В общем я так понимаю, что зря потерял свое время. У кого есть тот зажили или не смотрит, один человек подкинул подсказку но к сожалению она не подходит именно под этот проект, остальные только умничают...
SkyZi » 25 авг 2012, 13:12
В общем то справился...
Но интересует вопрос, битрейт на слейве не должен же указываться?
ЗЫ и еще вопрос, реально ли чтобы Мастер работал на 16мГц, а слейвы на 8мГц и битрейт был 400кГц, или будет не успевать слейв?
Romikgy » 25 авг 2012, 18:43
для слейва любой битрейт ставь , ему побоку , ибо тактируется от мастера !
PS а что так и не осилил слейв?
dccharacter » 25 авг 2012, 18:51
Romikgy писал(а):для слейва любой битрейт ставь , ему побоку , ибо тактируется от мастера !
PS а что так и не осилил слейв?
В PIC-ах адрес битрейта по-моему шарится с адресом. Т.е. в слей-режиме адрес пишется в этот регистр.
Romikgy » 25 авг 2012, 18:52
а разве речь о пиках?