Почему не работает опрос кнопки?

Обсуждаем контроллеры компании Atmel.
Ответить
Держит паяльник хвостом
Сообщения: 933
Зарегистрирован: Ср апр 13, 2011 11:09:20
Откуда: Екатеринбург

Сообщение Alkul »

Billi34 писал(а):Внешнее тактирование примите, пожалуйста как данность. Такая фишка.
Вы простите, но эта фраза звучит, как "Я проектирую велосипед, помогите. Колеса будут квадратные, примите это как данность. Такая фишка"

В общем я проглядел Вашу задачу - она элементарно решается с помощью одного микроконтроллера без всякого внешнего тактирования.
Вы опять не написали, для чего именно используется тактирование. Частоту тактирования Вы четко не определяете, это у Вас "65-76 Гц", между тем, как параметры мигания определяете точно - "10вспышек 50мс\9 пауз20мс". Значит, тактирование не связано с параметрами мигания. Тогда для чего именно тактирование? Для оригинальности квадратных велосипедных колес? Или просто потому, что Вы не знаете, как реализовать какие-то временные тайминги без внешнего тактового сигнала? Если да, то так и скажите, подскажем, как лучше.
Вы в курсе, что в МК есть несколько таймеров, которые позволяют определять любые временные интервалы? Вы понимаете, что увеличение элементов схемы ведет к понижению её надежности?

Далее, Вы пишете:
После подачи питания и сброса процессора, PINB.3-ноль
Откуда такая уверенность? В качестве источника тактирования Вы используете NE555, который после подачи питания начинает генерацию сразу совершенно асинхронно с запуском МК.

Далее из Вашего ТЗ
На PINB.4 поступает второй внешний сигнал, в произвольное время и на определённое время согласно необходимости оператора.
:facepalm: ЧТО ДЕЛАЕТ ЭТОТ СИГНАЛ?
Включает всю схему, включает знак "Кирпич", включает только стрелку?
Если Вы хотите, чтоб Вам помогли, не надо играть в Зою Космодемьянскую, вынуждая нас быть фашистами на её допросе.
Реклама
Открыл глаза
Аватара пользователя
Сообщения: 64
Зарегистрирован: Чт июн 09, 2016 18:24:41

Сообщение Billi34 »

Видимо Вас вводит в заблуждение слово тактирующий. Никакой он не тактирующий. Это внешний запускающий импульс. Я простой электрик это для меня почти одинаковые понятия. Про внутренние таймеры AVR я в курсе- в них пока нет необходимости. На ПИНБ.4 приходит сигнал определяющий род работы: или просто повторяем внешний запускающий импульс либо стробоскопируем со сдвигом синхронно с запускающим импульсом.
Реклама
Это не хвост, это антенна
Сообщения: 1492
Зарегистрирован: Ср июн 25, 2008 15:19:44

Сообщение Demiurg »

Billi34 писал(а):...
Вам уже 10 раз сказали. Вы все равно не поняли. Попробую я. Выкиньте всю терминологию, которую вы применяете. Потому что вы все равно неправильно ее применяете. Избавьте нас от ВАШЕГО объяснения, как вы что-то делаете. Емко, но кратко по делу. Какое устройство вы делаете. Что должно делать это устройство. Ваше ТЗ должно выглядеть примерно так: Супер-пупер-мигалка. Входы - запускающие импульсы, кнопки-куепки и так далее. Выходы - 100 светодиодов. Светодиоды должны мигать примерно так: бегущий огонь, бегущая тень, либо по моим невъепенным хотелкам. Хотелка такая. Рисуем светодиоды. Шаблон, исходное состояние, эти светодиоды горят, те не горят, по запускающим импульсам (теперь уже можно называть тактовыми импульсами) светодиоды должны загораться по такому-то принципу.

Это все что от вас требовалось. А вы на три страницы насоплили не пойми какую картину....
Контактная информация:
Открыл глаза
Аватара пользователя
Сообщения: 64
Зарегистрирован: Чт июн 09, 2016 18:24:41

Сообщение Billi34 »

https://yadi.sk/i/svY8vXw2stP9r ссылка на я.диск. Видео готового прототипа. Иногда лучше увидеть, чем 10 раз услышать.Камера в телефоне не ахти но строб угадывается. Мигающий с права св.диод это и есть "серия внешних запускающих импульсов". PINB.3 подключен к 3-й ноге NE555. Если проводок отсоединить то диоды завершают сдвиг и схема ожидает "серия внешних запускающих импульсов". Я прошу помочь : сдвиг "стрелки" у меня расписан по "кадрам"- не надо их оптимизировать. Это разовая конструкция, 80% памяти свободно и мне так удобно. Я хочу чтоб каждая новая (после паузы от 2-х сек. до "когда-нибудь") "серия запускающих импульсов" вызывала строб и дальнейшее перемещение"стрелки", как на видео. В моём коде программа останавливается там где прекращается "серия запускающих импульсов". И вторая хотелка: при замкнутом на минус PINB.4 (на PINB.3 нет "серия запускающих импульсов") при появлении "серия запускающих импульсов" на PINB.3 ВСЯ "стрелка"засвечивается синхронно с "серия запускающих импульсов"(горит диод справа-горит вся стрелка, погас диод -погасла стрелка)
Как еще более по русски сказать. Я не знаю
Схема....щас будет!
Вложения
Текущая программа .txt
(47.4 КБ) 155 скачиваний
IMG00519.jpg
(222.52 КБ) 337 скачиваний
Реклама
Эиком - электронные компоненты и радиодетали
Вымогатель припоя
Сообщения: 574
Зарегистрирован: Вт ноя 02, 2010 17:46:37

Сообщение pokk »

Я прошу помочь : сдвиг "стрелки" у меня расписан по "кадрам"- не надо их оптимизировать. Это разовая конструкция, 80% памяти свободно и мне так удобно.
Но код ваш совсем не читаемый.

PS:перенес всю вашу "бороду" с портами в отдельную функцию что бы посмотреть на код(не особо смотрел везде ли "борода" с портами одинаковая).
Вложения
Led.c
(8.38 КБ) 311 скачиваний
Реклама
Открыл глаза
Аватара пользователя
Сообщения: 64
Зарегистрирован: Чт июн 09, 2016 18:24:41

Сообщение Billi34 »

Это и есть "оптимизация кода".Я прошу помочь мне вернуть "застывшую"программу на очередном if (PINB.3==1){.......} когда нету импульсов на PIND.3 больше 2-х секунд
на строчкуif (PINB.3==1){
delay_ms(100);
if(PINB.3==1){
for(s=1;s<15;s++){
PORTB=0b00,PORTD=0b00000000,PORTC=0b00000000,PORTA=0b00000001,delay_ms(20) ;
PORTB=0b11,PORTD=0b11111111,PORTC=0b11111111,PORTA=0b11111111,delay_ms(50) ;
} скобка for
ShowLed();
и далее по листингу.
Реклама
Это не хвост, это антенна
Сообщения: 1492
Зарегистрирован: Ср июн 25, 2008 15:19:44

Сообщение Demiurg »

Короче, ваша хотелка такая: светодиоды поочередно постепенно все загораются, гаснут, так несколько раз. Затем несколько вспышек всеми светодиодами и так по кругу. Правильно?
Контактная информация:
Открыл глаза
Аватара пользователя
Сообщения: 64
Зарегистрирован: Чт июн 09, 2016 18:24:41

Сообщение Billi34 »

К сожалению "по кругу" всё что я пока могу. Но весь код я сам написал. Хочется чтобы из состояния "ожидание"при каждом появлении импульсов на PINB.3 было несколько вспышек всеми светодиодами, а затем светодиоды поочередно постепенно все загораются, гаснут много раз, пока есть сигнал на PINB.3. Вроде понятно.
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Сообщение COKPOWEHEU »

Народ оценил, что вы сами стараетесь что-то сделать (в отличие от кучи халявщиков, которые время от времени появляются на формах). Вам хотят помочь, но для этого надо знать что вы хотите получить в итоге. Не как вы пытались это сделать, а что хотите получить.
От вас ожидается что-то в этом роде:
Хочется реализовать несколько световых эффектов для стрелки из светодиодов. Эффекты - последовательное зажигание слева направо и последовательное угасание слева направо; мигание с определенной частотой. эффекты переключаются нажатием на кнопку где-то в помещении. Время выполнения всего первого эффекта (поочередное зажигание и угасание) 10 секунд, частота мигания второго эффекта - 0.5 Гц, расстояние от платы до кнопки не более 20 метров. Предварительный вариант схемы (где-то тут), кода тут
Спойлерда, под спойлером или во вложении, крайне желательно без грубых ошибок и с нормальным форматированием
В настоящий момент схема моделируется в протеусе (вот файл), реализовано только мигание.
Хотелось бы получить совет по улучшению схемы и кода.
Друг Кота
Аватара пользователя
Сообщения: 15704
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Печалька...
Похоже не с того началось - но поправить уже поздно.
Вообще-то правила работ с подобными транспорантами следующие:
Заказчик рисует собственно картинку ( в данном случае стрелка и "кирпич" (вобщем-то прямоугольник в круге)).
Определяется количество внутренних структур (если необходимо) и количество светящихся точек на площадке каждого элемента.
далее рисуем диаграмму состояний каждой группы во времени.
А оттуда уже разработчик схемотехники и программы "плясать" будет.
Учитывая достаточно большое количество межсоединений обычно каждый транспорант имеет собственный контроллер, размещенный в его же корпусе. Подводятся исключительно питание и, при необходимости, сигнальные линии связи/управления.
Ну да... входные правила безнадежно пропущены... :(
Можно только посоветовать начертить диаграмму состояний индикации и уже под нее подгонять программу.
:roll:

Пы.Сы.
Не пытайтесь "затуманить" суть работы - вряд-ли кто из Ваших консультантов заберет себе данный заказ или идею - подобные работы для работавших с рекламными агенствами есть повседневная рутина, а подсказать чего путнего можно только поняв хотя-бы исходную идею "чего хочется увидеть" собственно потребителю (а не куски прототипов схемы и программы).
Учитывая имеющийся при подобных работах опыт явно конструкция далека от оптимальной...
:beer:
Последний раз редактировалось BOB51 Чт июн 30, 2016 21:23:58, всего редактировалось 1 раз.
Открыл глаза
Аватара пользователя
Сообщения: 64
Зарегистрирован: Чт июн 09, 2016 18:24:41

Сообщение Billi34 »

Да сколько-же раз можно объяснять. Нужные эффекты я уже смоделировал. Они (эффекты) уже работают в макете. Мне надо : Схема находится в ожидании. Ничего не горит. При появлении "серии запускающих импульсов" На PINB.3 синхронно с началом первого импульса происходит частое мигание всех диодов подключенных к портам D,A,C и В в течении 0.3 с.Далее все диоды зажигаются и происходит последовательное угасание слева направо. С приходом второго из "серии запускающих импульсов"происходит последовательное зажигание слева направо и последовательное угасание слева направо. Код зажигания-угасания уже есть в моей программе. Он умещается в период "серии запускающих импульсов" . С приходом третьего из "серии запускающих импульсов" происходит последовательное зажигание слева направо и последовательное угасание слева направо и так далее пока есть "серия запускающих импульсов" На PINB.3 По окончании "серии запускающих импульсов" схема переходит в режим ожидания. В случае замкнутого на землю PINB.4 из режима ожидания при появлении "серии запускающих импульсов" На PINB.3 синхронно с началом первого импульса происходит зажигание всех диодов подключенных к портам D,A,C и В на время длительности импульса на PINB.3 и выключение диодов на время паузы. И так далее пока есть "серия запускающих импульсов" на PINB.3. По окончании "серии запускающих импульсов" схема переходит в режим ожидания. Окончание "серии запускающих импульсов" это отсутствие импульсов более 2-х секунд. "серия запускающих импульсов" -прямоугольный импульсный сигнал с равной длинной импульса и паузы, частотой 70 Hz. Я не разберусь в Ассемблере, пожалуйста помогите на СИ.
Последний раз редактировалось Billi34 Чт июн 30, 2016 21:35:01, всего редактировалось 1 раз.
Друг Кота
Аватара пользователя
Сообщения: 15704
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

"серия запускающих импульсов" и смена эфектов по каждому из импульсов в данной серии...
А как сие представляется на практике?
:tea:
Ведь каждый эфект имеет определенное время исполнения - тем самым "серия" в которой импульсы следуют чаще, чем завершается выполнение текущего фрагмента отображения будет воспринята в лучшем случае как один командный импульс.
8)
Открыл глаза
Аватара пользователя
Сообщения: 64
Зарегистрирован: Чт июн 09, 2016 18:24:41

Сообщение Billi34 »

Смена эффектов буде не частая и происходить во время режима ожидания или вообще когда схема обесточена. Достаточно один раз проверить ПИНБ4 при появлении "серии запускающих импульсов". Дребезга не будет. Замкнут- значит 0 вольт.
Держит паяльник хвостом
Сообщения: 933
Зарегистрирован: Ср апр 13, 2011 11:09:20
Откуда: Екатеринбург

Сообщение Alkul »

Знаете, почему Вы не получаете вожделенной помощи?
Потому, что вынуждаете помогающих втискиваться в прокрустово ложе Ваших, мягко говоря, странных техрешений.
Объясните мне вот это:
Billi34 писал(а):На PINB.3 синхронно с началом первого импульса происходит частое мигание всех диодов подключенных к портам D,A,C и В в течении 0.3 с. Далее все диоды зажигаются и происходит последовательное угасание слева направо. С приходом второго из "серии запускающих импульсов"происходит последовательное зажигание слева направо
Частота "запускающих импульсов" у Вас 70 Гц. Значит, период равен 14мс. Как это Вы хотите по первому запускающему импульсу начать мигание, продолжающееся 300мс, а "далее" по второму импульсу хотите начать другой режим? У Вас второй импульс поступит, когда от запущенного по первому импульсу цикла миганий пройдет менее 5%!
Billi34 писал(а):Смена эффектов буде не частая
Как это она будет не частая, если Вы четко пишете "по первому запускающему импульсу", "по второму запускающему импульсу". Так время между ними 14 мс, а Вы хотите между ними 300мс уместить!

Поскольку это Вы пришли к нам за помощью, а не наоборот, я делаю вывод, что сами Вы не в состоянии завершить начатый проект.
Самое разумное - выкиньте все свои программные наработки, выкиньте этот внешний генератор идиотский, внятно опишите желаемые световые эффекты и тайминги между эффектами, при этом вообще не употребляйте слова "PINB", "порты", "меандр" и т.д.

А если Вы боитесь, что кто-то здесь украдет Вашу идею :))) , не бойтесь - тут лично я пока вообще не вижу ничего "украдабельного".
Никто Вам не поможет, пока Вы описываете ползадачи, утаивая остальное. А коли так боитесь за "идею" - делайте самостоятельно.

Тайммеры МК Вы почему-то использовать не хотите, между тем внешний генератор решает у Вас именно задачу таймеров! Я Вас уверяю, что если Вы купили МК, то можете бесплатно использовать всю его периферию. Если Вы не знаете, как работать с таймерами - так и скажите, в этом нет ничего зазорного. Поможем.
Опытный кот
Аватара пользователя
Сообщения: 781
Зарегистрирован: Сб июн 01, 2013 22:24:21
Откуда: ПФО

Сообщение alex_ »

Alkul, прям мои мысли озвучил, да наверное не только мои :))
Да не обидиться ТС, но с терминологией однозначно перегнул. У меня было желание помочь, даже можно целиком код написать, так как там писать то нечего, если есть опыт, за кружкой пива можно всё написать, если конечно пить не залпом. Но у меня череп чуть не треснул когда я пытался понять всю суть ТЗ. Особенно как вместить 300мсек в 14мсек, либо это будет очень быстро и никто ничего не заметит, либо я дурак и чего то не понимаю, как например 300мсек в 14мсек уложить :dont_know:
По поводу внешнего таймера: уже все сказали хором выкинуть и забыть, это как второй карбюратор жигулю причём установленный в багажнике. Сам контроллер это способен сделать, точнее вы для этого и покупали контроллер, что бы всё в него уложить. Иначе это всё и на логике собрать можно было, там бы таймер точно пригодился. Если вам так не обходим меадр 70Гц, дак можно не подавать его на контроллер а контроллер "попросить" выдавать этот меадр, и программе будет легче синхронизироваться под этот меадр.
По поводу ТЗ походу пора забыть про код и переходить на простое рисование, и объяснение как в детском саду(нажали кнопку пробежали огоньки) ссылаясь на рисунок ранее нарисованый, иначе как мне видится никто не поймёт как помочь :(
PS: неудержался, сколько раз читаю тему с отдельными фрагментами всё понятно, а в единую картину ну никак сложить не могу.
Друг Кота
Аватара пользователя
Сообщения: 15704
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

"единая картина" такова:
есть два автономных транспоранта - индикатора с некоторыми вариациями отображения по каждому из них
в свою очередь имеем желание сотворить некое подобие дистанционного управления сменой (выбором) текущего эфекта(рисунка) на каждом из индикаторов
:wink:
Однако...
по недопониманию сути задачи (отсутствию опыта или уровню восприятия советов - подсказок) разработчик "вошел в ступор".
Для начала не помешает вспомнить об основах.
Допустим что со схемотехникой "усё путём"...
Тогда имеем в задаче:
1. подпрограмму динамической индикации для отображения текущего фрагмента (кадра) изображения по каждому из индикаторов;
2. подпрограмму обеспечения отображения всех кадров текущего изображения;
3. подпрограмму диспетчера смены заданий;
4. подпрограмму обслуживания дистанционного управления.
Причем текущая развертка индикатора и обработчик "протяжки кадров" асинхронны по отношению к подпрограмме обслуживания дистанционного управления - вопрос синхронизации решается диспетчером смены заданий в конце цикла вывода обработчика "протяжки кадров".
:dont_know:
Вобчемсс...
Это токмо начало прояснения/озарения к вопросу "почему рекламщики столько деньгов дерут"...
Дальше ещеё кой-чего "повылазит" - но все вполне оправдано - полученный своим трудом "ломовой опыт" весьма полезен!
8)
Открыл глаза
Аватара пользователя
Сообщения: 64
Зарегистрирован: Чт июн 09, 2016 18:24:41

Сообщение Billi34 »

Не вообразимо тормозит инет+комп. Не знаю что именно. отправил ЛС
Друг Кота
Аватара пользователя
Сообщения: 15704
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

8)
Ответить

Вернуться в «AVR»