Страница 1 из 2

Mega8| не выводятся одновременно единицы в порт В и С

Добавлено: Вт май 11, 2010 07:36:28
Aleksander
Приветствую Всех!!!
Заработала Тинька 2313 дома на обычном компе через ком -порт. Но все же решил остаться на 8-й меге.
Появился новый вопрос: К выводам Мега 8 подключаю 12 вольтовые светодиоды через транзисторы. Максимум одновременно мне надо две единицы в B b две единицы в С. Почему то не выводятся одновременно единицы в порт B и С.
Вот что заметил: не выводятся одновременно старшие виты порта B и младшие порта C. Пара младших B и C загораются , иначе не хотят. Вывожу все единицы в В из них две первые младшие не загораются. Похоже что порт B имеет приоритет (зажигаю С потом B, а С все равно не горит).
В динамическом режиме (зажигаю все поочереди, прерывание таймера) все горит прекрассно.

Предполагаю что решением может быть: использование регистра сравнения, либо второго таймера и подбирать задержки. Жалко таймер. Хочется подцепить лед драйвер, лед-ленты через транзюки и кнопку дистанционного управления.
Кто нибудь сталкивался с такой проблемой? Благодарю за помощь.

Re: Mega8| не выводятся одновременно единицы в порт В и С

Добавлено: Вт май 11, 2010 08:12:12
GP1
Ну начнем с того что одновременно выдать 1 в оба порта сразу невозможно физически, т.к. OUT A,Rr, соответствующая одной машинной инструкции, обращается к одному порту.
Минимум можно получить разницу между выводом в разные порты 1 такт.
Это все к тому, что ищите заморочки в программе, как я понимаю написанной на Си.

Re: Mega8| не выводятся одновременно единицы в порт В и С

Добавлено: Вт май 11, 2010 09:38:16
Aleksander
GP1 писал(а):Ну начнем с того что одновременно выдать 1 в оба порта сразу невозможно физически, т.к. OUT A,Rr, соответствующая одной машинной инструкции, обращается к одному порту.
Минимум можно получить разницу между выводом в разные порты 1 такт.
Это все к тому, что ищите заморочки в программе, как я понимаю написанной на Си.
Я пищу код в Алгоритм Билдер. Выдает по две единички одновременно (я имею в виду просто выполняет последовательно инструкции записи в порт С следующая в порт B), горит только B. У меня светодиоды разные, красные и яркие белые, может из за этого?

Re: Mega8| не выводятся одновременно единицы в порт В и С

Добавлено: Вт май 11, 2010 09:58:49
GP1
Ну тогда выкладывай проект и схему подключения, если секретно пиши в личку - государственную и военную тайны хранить умею :))) шутка.

Re: Mega8| не выводятся одновременно единицы в порт В и С

Добавлено: Вт май 11, 2010 10:22:30
Aleksander
GP1 писал(а):Ну тогда выкладывай проект и схему подключения, если секретно пиши в личку - государственную и военную тайны хранить умею :))) шутка.
Ни какого секрета. Схемы нет , так паяю на коленке. Светодиоды кружком на оправке- Макет. Планирую навешивать светодиодные ленты и лед драйверы.
ATMEGA8- светодиоды 12 вольт, подключены через транзисторы кт315 Г(Единичка с контроллера на базу)
Порт D
0 яркий белый
1 яркий белый
2 красный, из конструктора автомобильного стоп сигнала
3 красный-
4 красный-
5 красный-
6 красный-
7 красный-
Порт С
3 красный-
2 яркий белый
1 яркий белый
0 яркий белый
Питание от телефонной станции Kenwood 12 вольт 300 мА. Делю- 12 на светодиоды и через Кренку 5 вольт на контроллер через ограничительные резисторы.
Бегущий огонь без проблем. Поднимаю частоту- светодиоды горят все вместе без проблем.
Хочу делать другие световые эффекты!!! и использовать ШИМ. Но столкнулся с проблемой- Например нужно вывести четыре единички в порты В и С (в разных комбинациях), а они одновременно гореть не хотят (точнее горят только единички принадлежащие B). В порту В одновременно горят только шесть последних, с портом С одновремено могут гореть только две младшие С единички и в В тоже только младшие. Вот такой венигрет. Обясните пожалуйста если можно этот прикол.
Ближайшее решение вроде как вижу в использовании регистра сравнения или второго таймера (динамически запускать комбинации единичек в С и В и переключаться используя регистр сравнения или теймет).
Караул.

Re: Mega8| не выводятся одновременно единицы в порт В и С

Добавлено: Вт май 11, 2010 10:38:02
Modest
Aleksander писал(а): Делю- 12 на светодиоды и через Кренку 5 вольт на контроллер через ограничительные резисторы.
Как понимать?
Фото бы платки.
А вообще чтото вы намудрили сударь. В контроллере все поты можно зажигать независимо друг от друга и от тог что на них висит.
Проблема скорей всего в программе. И выражение которое в цитате меня тоже настараживает.

Re: Mega8| не выводятся одновременно единицы в порт В и С

Добавлено: Вт май 11, 2010 10:58:53
Aleksander
Modest писал(а):
Aleksander писал(а): Делю- 12 на светодиоды и через Кренку 5 вольт на контроллер через ограничительные резисторы.
Как понимать?
Фото бы платки.
А вообще чтото вы намудрили сударь. В контроллере все поты можно зажигать независимо друг от друга и от тог что на них висит.
Проблема скорей всего в программе. И выражение которое в цитате меня тоже настараживает.
Да на макетке спаячил. Фотика нет, завтра зафотаю. Независимо действительно все горят а одновременно нет.
А что намудрил то ??? Кодик в начале крошечный несколько строк: инициализация таймеров, настройка портов и прерываний и сами прерывания. Явно B имеет какой то приоритет, потому что сперва записываю в С потом В, а горит только B. Или же записываю просто в С и он горит. Попробую учебник почитать.

Re: Mega8| не выводятся одновременно единицы в порт В и С

Добавлено: Вт май 11, 2010 11:09:27
Modest
2313.rar
(500 байт) 176 скачиваний
Прошивка для 8 Мегагерц, впрочем неважно.
Моргает всеми возможными портами, сначала всеми потом по очереди (всмесле D, B, A)

Re: Mega8| не выводятся одновременно единицы в порт В и С

Добавлено: Вт май 11, 2010 11:23:11
GP1
Aleksander!
Забыл проект АБ выложить.

Re: Mega8| не выводятся одновременно единицы в порт В и С

Добавлено: Вт май 11, 2010 11:40:45
Aleksander
GP1 писал(а):Aleksander!
Забыл проект АБ выложить.

Re: Mega8| не выводятся одновременно единицы в порт В и С

Добавлено: Вт май 11, 2010 11:47:04
Meteor
Мяу, GP1!
Остальным тоже мяу!
Какой кошмар представлен на скрине.... :shock:
Порекомендую Вам делать более прозрачные "конструкции", дело в том что не всегда ветки переходов могут дать ожидаемый результат если попадают друг на друга. Разнесите их путем вставки меток и подписью стрелок переходов на метки, тогда не будет этой паутины

Re: Mega8| не выводятся одновременно единицы в порт В и С

Добавлено: Вт май 11, 2010 11:51:17
GP1
1. Не цитируй предыдущий пост - забянят
2. Я что, должен по новой вводить все это в АБ? :shock: Кому нужна помощь - мне?
Такое ощущение что ты боишься кто-то может слямзить твое ной-хау, мне оно не надо. :)))

Meteor, и тебе мяу!

Re: Mega8| не выводятся одновременно единицы в порт В и С

Добавлено: Вт май 11, 2010 12:05:22
Aleksander
Meteor писал(а):Мяу, GP1!
Остальным тоже мяу!
Какой кошмар представлен на скрине.... :shock:
Порекомендую Вам делать более прозрачные "конструкции", дело в том что не всегда ветки переходов могут дать ожидаемый результат если попадают друг на друга. Разнесите их путем вставки меток и подписью стрелок переходов на метки, тогда не будет этой паутины

Не работают как надо всего две строчки.!!!!!!!! МЯУ!!!!! Я их обвел красным. Это вывод в порт. Извините ввел в заблуждение я вначале речь вел о порте B, а в коде у меня порт D.
Просто две строчки, прерывания и все остальное я отключил. Т.Е. вывод в порт и бесконечный цикл. Порт D горит а С нет. Какая может быть проблема в программе Если тут всего две строчки. Я их уже всяко зажигал. Остается сменить светодиоды. МЯУ, ГАВ ГАВ!
Может точно из за светодиодов, куплю завтра последний набор автомобильного стоп сигнала -там 12 светодиодов красных и поставлю.
Переходы работают отлично.

Re: Mega8| не выводятся одновременно единицы в порт В и С

Добавлено: Вт май 11, 2010 12:12:23
Modest
Прошивку мою пробовал или нет??
вообще этот алгоритм билдер... хрень по моему. Писать лучше либо на асме либо на С.
Вобрал недостатки обоих языков - нет возможностей асемблера, нет удобсва С.
Ааа... Ищё и шить им можно токо свои проекты... ну ваще пипец!

Re: Mega8| не выводятся одновременно единицы в порт В и С

Добавлено: Вт май 11, 2010 12:13:05
GP1
Ну ладно, не хочешь выкладывать проект - не надо.
НО....
После того как ты отправил 1 -> I, все, у тебя работает прерывание, где у тебя полная свобода действия, точнее полный бардак с переходами.

а твои 2 две строчки работают n-тактов.

Re: Mega8| не выводятся одновременно единицы в порт В и С

Добавлено: Вт май 11, 2010 12:15:49
GP1
Modest писал(а):Прошивку мою пробовал или нет??
Товарищ работает в АБ и видимо шьет из него же, вряд ли у него получится твою прошивку попробовать.

Re: Mega8| не выводятся одновременно единицы в порт В и С

Добавлено: Вт май 11, 2010 12:18:58
Aleksander
GP1 писал(а):Ну ладно, не хочешь выкладывать проект - не надо.
НО....
После того как ты отправил 1 -> I, все, у тебя работает прерывание, где у тебя полная свобода действия, точнее полный бардак с переходами.

а твои 2 две строчки работают n-тактов.
Выложил проект.

Re: Mega8| не выводятся одновременно единицы в порт В и С

Добавлено: Вт май 11, 2010 12:20:32
Aleksander
Modest писал(а):Прошивку мою пробовал или нет??
Прошивку не пробовал. Там, от чего тактирование сделано? У меня кварца нет. Я тактируюсь от внутреннего генератора.

Re: Mega8| не выводятся одновременно единицы в порт В и С

Добавлено: Вт май 11, 2010 12:24:41
Modest
АААА.... Какая разница от кварца или нет, даже неважно какая частота. Я там портами моргаю!!!

Re: Mega8| не выводятся одновременно единицы в порт В и С

Добавлено: Вт май 11, 2010 12:25:24
Aleksander
GP1 писал(а):Ну ладно, не хочешь выкладывать проект - не надо.
НО....
После того как ты отправил 1 -> I, все, у тебя работает прерывание, где у тебя полная свобода действия, точнее полный бардак с переходами.

а твои 2 две строчки работают n-тактов.
Так строчки выполнил порты зажег и ушел в бесконечный цикл. Почему n-тактов?