Неужели никто не знает... ? Есть число пять бит, например 11010 надо сделать наоборот 01011 на СИ!!! Не байт, а именно это число. просто перевернуть. Есть на асме, но там через флаг переноса и через циклический сдвиг. Где на Си то это увидеть?
БЛИН! разобрался... Это не циклический сдвиг! Не это мне надо... Надо именно зеркально отобразить... Т.е. поменять местами биты... Как сделать то?
Нужен именно сдвиг через флаг C, но только сначала вправо (исходного числа), потом влево (результата), и так 5 раз. В Сях же есть сдвиг, только я не знаю как он с флагом переноса взаимодействует.
Добрый день, уважаемые! Собрал по схеме Doniak куб 5х в железе. Зашил МК. Запускаю, работают только два столбца всех этажей (управляемые U2 и U3 по схеме). Свистопляски с паяльником довели до Протеуса. Накидал быстренько в нем схему, подложил прошивку, и на те вам, работают только те самые два столбца! Где-то порылся глюк в коде, найти не могу. Вечером попробую альтернативные прошивки. Кто-нибудь может ткнуть меня носом где я ошибся? Спасибо!
Наступали на те же грабли при сборке первого куба ( со вторым уже проблем небыло, т.к. был опыт ) - просто инвертируй JTAG.
Уже переворачивал. Похоже все таки 574ые выгорели. Буду менять и смотреть завтра. В протеусе неверно указал номинал сопротивлений, поэтому столбцы не светили - исправил на нужные - все заработало. Так что буду железо ковырять.
СКАЗОЧНИК напишите какие фьюзы нужно в ПониПрог включить для прошивки АТмега16 с работой от внутреннего генератора на 1МГц. Что то фьюз калькулятор мне не сильно помог...
ура! Все получилось! Вот мое видео: [video]http://www.youtube.com/watch?v=QhXlBIFHeOg[/video] Правда немного ошибся в распайке "этажей". Куб у меня получился с отображением эффектов "вверх ногами"...
_________________ Skype: sergey.novokhatsky
Последний раз редактировалось US6IQL Сб дек 31, 2011 16:04:03, всего редактировалось 1 раз.
Воодушевлённый первыми успехами в кубо-строении, решил на достигнутом не останавливаться и поставил перед собой новую задачу: моно-куб 8х8х8=512 светодиодов. Поиск по И-нету в основном ведёт на этот сайт: http://www.instructables.com/id/Led-Cube-8x8x8/ В данной конструкции меня не совсем устраивает способ выбора 8-и битовых регистров параллельного сдвига 74НС574 с помощью дешифратора 74НС138. Зачем так поступать, если всего от управляющего МК AТмега 16 (32) нам необходимо 24 порта вівода (8 - шина данных, 8 - выбор регистров сдвига, 8 - управление транзисторными ключами для коммутации "этажей"). не плохо было-бы ещё 2 порта иметь под Rx, TX для подключения к ПК и управления эффектами с помощью плагина к какому-нибудь медиаплееру. Ну можно и без этого обойтись пока. Что посоветуете? Кстати, плату-основу под куб я уже развел, на ней разместил 8шт 74НС574, 64 шт токо-ограничивающих резисторов на 150 Ом, 8шт MOSFET ключей IRF510, 8 шт токо-ограничивающих резисторов по цепи затворов в 1кОм, 3шт разъёмов на 8 пин, свой стабилизатор на LM7805. Теперь нужно разводить плату управления на базе МК АТмега16(32). Такая схема построения в случае необходимсоти позволит оперативно менять плату управления путём отключения всего 3-х разїёмов и 4-го разъёма питания а не 8+1+1 шт разъёмов, как здесь: http://www.instructables.com/id/Led-Cube-8x8x8/
кондеры можно ставить любой емкости)))хоть по 100нан на щтуку...я ставил на регистры по 30 нан...без них у меня кубик неработал)))(горели все светики и переключались если трогать регистры))причем хаотически))
Неужели никто не знает... ? Есть число пять бит, например 11010 надо сделать наоборот 01011 на СИ!!! Не байт, а именно это число. просто перевернуть. Есть на асме, но там через флаг переноса и через циклический сдвиг. Где на Си то это увидеть?
БЛИН! разобрался... Это не циклический сдвиг! Не это мне надо... Надо именно зеркально отобразить... Т.е. поменять местами биты... Как сделать то?
Добрый день товарищи, я не местный, но так совпало что собираю подобный сабж. 8х8х8 освещаю это дело у себя в блоге http://ctimas.blogspot.com/ пока еще мало что написал и сделал но процесс идет, все представляю в голове, делаю с нуля на своих ошибках, может кому будет интересно, может подскажите чего.
Как я понимаю, это написано для КодеВижена... А ВинАВР не принимает же такие обозначения регистров? Копал в даташите, не видел там про SREG именно для АТмега16.... Может и туплю. Думал, что через сдвиг вправо, т.к. в Си нет сдвига влево, через буферную переменную можно как-то гораздо проще запихать... Т.Е. сдвигаем вправо, бит падает в флаг переноса, потом берем из флага переноса этот бит и пихаем в первую позицию пустой переменной, потом сдвигаем следующий бит в флаг переноса и опять пихаем его в уже не пустую переменную, сдвигая на один то, что в ней было. И так пять раз в цикле. Все! Число поменялось! Вот только с регистром SREG и не разобрался.
Копал в даташите, не видел там про SREG именно для АТмега16.... Может и туплю.
Описание SREG - страница 9. Конкретно SREG.0 - 0-й бит регистра статуса это флаг переноса C (Carry), он устанавливается, если происходит переполнение или заем после некоторых логических или арифметических операций, в частности команд сдвига.
СКАЗОЧНИК писал(а):
Т.Е. сдвигаем вправо, бит падает в флаг переноса, потом берем из флага переноса этот бит и пихаем в первую позицию пустой переменной, потом сдвигаем следующий бит в флаг переноса и опять пихаем его в уже не пустую переменную, сдвигая на один то, что в ней было. И так пять раз в цикле. Все! Число поменялось!
Вот именно это я сверху описал. На асме это бы выглядело элементарно:
Код:
ROR A ROL B ROR A ROL B ROR A ROL B ROR A ROL B ROR A ROL B
Почему не циклом? Так быстрее Как вариант, можно узнать какие регистры использует компилятор для чисел A и B и тупо накидать ассемблерных вставок типа ASM("ROR R16"), ASM("ROL R17") и не надо парится с Си-шными сдвигами.
Ребят а atmega8-16 не подойдет для схемы с сайта elektor (здесь чуть ранее ее выкладывали) там нужно atmega16 но они помоему отличаются только наличием jtag. а если его все равно мы выключаем? ну и естественно размер памяти. но если у меня получится прошивку немного уменьшить? или не мучиться и купить нормальную микруху?
Не знаю, что за сайт, ссылку лень искать, можно было и продублировать ее. а по поводу АТмега16 и АТмега8, то у них изначально разное количество ног... У 16ой целых 40 ног, а у АТмеги8 всего 28... Вот и считайте, подойдет вам или нет? =))) Конечно, про память тоже надо помнить, т.к. эффекты разные бывают и занимают разное количество памяти, естественно чем ее меньше, тем меньше эффектов, а так уже не интересно.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения