Например TDA7294

Форум РадиоКот • Просмотр темы - Дисковый номеронабиратель и семисегментник
Форум РадиоКот
Здесь можно немножко помяукать :)



Текущее время: Вс сен 20, 2020 06:41:10

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 56 ]    , , 3
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Дисковый номеронабиратель и семисегментник
СообщениеДобавлено: Ср ноя 15, 2017 11:07:10 
Потрогал лапой паяльник

Карма: 5
Рейтинг сообщений: 81
Зарегистрирован: Вс июл 29, 2012 16:25:39
Сообщений: 312
Рейтинг сообщения: 0
2. переменная off обнуляется в тексте программы при каждом нажатии на любую кнопку.
А если кнопку не нажимаем долгое время, а "off" так и крутится постоянно - это нормально будет?
опять перепутал знак "=" и "=="
Для таких случаев приучи себя писать не "if( off == 2 )", а "if( 2 == off )".
На этапе компиляции сразу отследиться.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Дисковый номеронабиратель и семисегментник
СообщениеДобавлено: Пн ноя 20, 2017 17:51:36 
Первый раз сказал Мяу!

Карма: 3
Рейтинг сообщений: 7
Зарегистрирован: Пт авг 08, 2008 23:41:37
Сообщений: 39
Откуда: Penza
Рейтинг сообщения: 0
2. переменная off обнуляется в тексте программы при каждом нажатии на любую кнопку.
А если кнопку не нажимаем долгое время, а "off" так и крутится постоянно - это нормально будет?


ну вроде я так понял что это не на что не влияет.)) или я не прав?

Добавлено after 8 hours 20 minutes 33 seconds:
Друзья, помогите пожалуйста. Стою на асфальте в лыжи обутый то ли лыжи не едут, то ли я стебанутый...

в общем, почти все работало. занимался отладкой уже на железе.... и тут как-то раз и перестало... вообще перестало..... то ли в проге где-то накосячил, то ли схему на макетке неправильно собрал...ТРИ атмеги не работают......у дочи др через 10 дней, боюсь, без вашей помощи не обойдусь....а еще плату травить....

теперь много буковок, кому лень читать ,я не обижусь, просто почти отчаялся....

1. шью китайским USBASP.
2. микруху ставлю в китайскую платочку с мин. обвязкой

3. МК пишется, верификация без ошибок. но на всех трех микрухак на PС4 почему-то всегда висит 0". Остальные подтяжки работают. если подключить кноки в соответствии со схемой, то мк на нажатие кнопок не реагирует.
3. не знаю могло ли повлиять, но несколько раз я вхерачивал питание в плату, когда был подключен разъем для программирования т.е. 5в с USB и 5в с БП.
5. пробовал сегодня записать эти же контроллеры программатором AUTOPROG, но изменений нет, купил новый МК, но еще не пробовал записать его.
6. если закоментить часть текста проги (условия где встречается PC4) и строчку "sei(); " то прога частично начинает работать.
Ну и самое интересное
7. в PROTEUS все работает как надо

что я могу делать не так? ((

схема

текст программы(коменты могут не соответствовать из-за копипаста):


Вернуться наверх
 
JLCPCB, всего $2 за прототип печатной платы! Цвет - любой!

Отличное качество, подтвержденное более чем 600,000 пользователей! Более 10,000 заказов в день.

Зарегистрируйтесь и получите два купона по 5$ каждый:https://jlcpcb.com/quote

Не в сети
 Заголовок сообщения: Re: Дисковый номеронабиратель и семисегментник
СообщениеДобавлено: Пн ноя 20, 2017 20:11:04 
Потрогал лапой паяльник

Карма: 5
Рейтинг сообщений: 81
Зарегистрирован: Вс июл 29, 2012 16:25:39
Сообщений: 312
Рейтинг сообщения: 1
ну вроде я так понял что это не на что не влияет.)) или я не прав?
Угу, если "не влияет" означает постоянные периодические срабатывания
Цитата:
PORTA |= 1<<7; //погасить семисегментник
PORTB = 0b11111111; //погасить светофор
PORTD |= 1<<7;//выключить Свет

вообще перестало..... то ли в проге где-то накосячил,
Именно для таких случаев придумана "система контроля версий" или хотя бы ежедневные бекапы проекта - чтобы всегда можно было откатиться на шаг назад или до прошлого рабочего состояния.
ТРИ атмеги не работают......
Не вижу кварца у атмеги. Правильно ли она сконфигурирована (FUSE) на работу от внутреннего RC-генератора?
Подано ли питание не только на VCC, но и на AVCC?

Какая у тебя стоит ATMEGA? На схеме фиг разглядишь, по распиновке смахивает на DIP-40 корпус Atmaga32 или 8535.
Если Аtmega32, то на PC2-PC5 висит JTAG. Смотри FUSE-бит "JTAGEN" - по умолчанию он активен. "Default Value 0 (programmed, JTAG enabled)"
6. если закоментить часть текста проги (условия где встречается PC4) и строчку "sei(); " то прога частично начинает работать.
А если только прерывания не разрешать - начинает "частично работать"?

ISR (INT2_vect)
{
_delay_ms(50);
Как я уже говорил - не люблю повторяться. (с)
Но, на кой хрен в прерывании задержка?! :shock:
Попробовать PB0 и PB2 подтянуть резистором снаружи, всё же может внутренней подтяжки не хватать.
Это, кстати, и к PC4 относится - если подключить внешнюю подтяжку, там будет "1"? При условии, что там точно нет JTAG.


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Шестое юбилейное мероприятие в процессе
Не в сети
 Заголовок сообщения: Re: Дисковый номеронабиратель и семисегментник
СообщениеДобавлено: Вт ноя 21, 2017 12:56:44 
Первый раз сказал Мяу!

Карма: 3
Рейтинг сообщений: 7
Зарегистрирован: Пт авг 08, 2008 23:41:37
Сообщений: 39
Откуда: Penza
Рейтинг сообщения: 0
mas123 писал(а):
Угу, если "не влияет" означает постоянные периодические срабатывания
Цитата:
PORTA |= 1<<7; //погасить семисегментник
PORTB = 0b11111111; //погасить светофор
PORTD |= 1<<7;//выключить Свет
Я понял о чем Вы говорите, но не пойму что Вы этим хотите сказать. Физически же ничего не будет происходить. крутится и крутится эта переменная... что-то нажали ---> прошло время ---> "PORTB = 0b11111111" --> все погасло , мы ничего не делаем и через время произошло тоже самое,т.е. как было погашено так и осталось. Если Вы имеете ввиду что это не по фэншую, тогда надо переделывать алгоритм, чтоб как-то счетчик останавливался на время простоя, на это у меня ума не хватает). максиму что можно от меня добиться это добавить условие в прерывание типо:
if (<все включено>)
{<все выключить>;}
else
{}
Если так правильнее то сделаю, только скажите))
mas123 писал(а):
Именно для таких случаев придумана "система контроля версий" или хотя бы ежедневные бекапы проекта - чтобы всегда можно было откатиться на шаг назад или до прошлого рабочего состояния.
Обязательно учту на будущее!
mas123 писал(а):
Не вижу кварца у атмеги. Правильно ли она сконфигурирована (FUSE) на работу от внутреннего RC-генератора?
Подано ли питание не только на VCC, но и на AVCC?

Какая у тебя стоит ATMEGA? На схеме фиг разглядишь, по распиновке смахивает на DIP-40 корпус Atmaga32 или 8535.
Если Аtmega32, то на PC2-PC5 висит JTAG. Смотри FUSE-бит "JTAGEN" - по умолчанию он активен. "Default Value 0 (programmed, JTAG enabled)"
Atmega16. работает от внутреннего кварца
Вы ЧЕЛОВЕК! Спасибо огромное! действительно проблемы была в FUSE, галочка JTAG... в самом начале я её убирал, и настройки сохранились, а потом начал работать на другом компе и там прога с фьюзами по умолчанию и галочка стоит((((( в общем как Вы и написали.

mas123 писал(а):
Hiperboloyd писал(а):
ISR (INT2_vect)
{
_delay_ms(50);
Как я уже говорил - не люблю повторяться. (с)
Убрал!

Всё вроде заработало! еще раз огромное спасибо!
если объясните первый вопрос, по поводу выключения и переменной off, как там лучше сделать - будет очень здорово), ну а если надоело ковыряться моей фигне, ничего страшного!


Вернуться наверх
 
Пополнение и новинки линейки ViperPlus от STMicroelectronics

Компания ST обновила семейство ШИМ-регуляторов со встроенным ключом ViperPlus, выпустив новые бюджетные микросхемы VIPER122 и VIPER222, микросхемы VIPER265K и VIPER267K, имеющие встроенный ключ MOSFET напряжением 1050 В, и самый мощный VIPer31x. С их помощью возможно реализовать топологии: изолированный и неизолированный обратноходовой преобразователь (flyback), понижающий преобразователь (buck), повышающе-понижающий преобразователь (buck-boost).

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Дисковый номеронабиратель и семисегментник
СообщениеДобавлено: Вт ноя 21, 2017 14:41:24 
Друг Кота
Аватар пользователя

Карма: 39
Рейтинг сообщений: 1524
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 4877
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
можно вместо: off ;
написать: off =(~off)? 1:0;
если офф не 0xff к нему прибавится 1, иначе 0.
так переменная дойдёт до 255 и там и останется. т.е. в условие сброса надо вписать 254 а не 255.

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)


Вернуться наверх
 
Все о хитах и новинках Mean Well 2020 года!

Компания Mean Well выпускает настолько широкий спектр продукции, что бывает трудно разобраться в этом многообразии и выбрать оптимальный вариант для своего изделия или приложения. Для облегчения выбора и более ясного понимания различий между сериями продукции Mean Well мы представляем вашему вниманию подборку материалов по данной теме.

Видео и другие материалы>>
Не в сети
 Заголовок сообщения: Re: Дисковый номеронабиратель и семисегментник
СообщениеДобавлено: Вт ноя 21, 2017 16:20:40 
Потрогал лапой паяльник

Карма: 5
Рейтинг сообщений: 81
Зарегистрирован: Вс июл 29, 2012 16:25:39
Сообщений: 312
Рейтинг сообщения: 1
Физически же ничего не будет происходить. крутится и крутится эта переменная...
Если вначале включается что-то из серии "погасить по таймеру", а лишь потом обнуляется "off", то возможна ситуация мгновенного выключения включенного, т.к. таймер "сработал".
тогда надо переделывать алгоритм, чтоб как-то счетчик останавливался на время простоя, на это у меня ума не хватает). максиму что можно от меня добиться это добавить условие в прерывание типо:
Один из вариантов решения - принять какое-то значение "off" как "остановлено".
Например, если off == 255, то в прерывании эту переменную не увеличивать.
В значение 255 переводить в прерывании, когда отработают все "выключено". А то и само оно до этого значения добежит и остановится.


Вернуться наверх
 


Не в сети
 Заголовок сообщения: Re: Дисковый номеронабиратель и семисегментник
СообщениеДобавлено: Ср ноя 22, 2017 14:24:21 
Первый раз сказал Мяу!

Карма: 3
Рейтинг сообщений: 7
Зарегистрирован: Пт авг 08, 2008 23:41:37
Сообщений: 39
Откуда: Penza
Рейтинг сообщения: 0
Hiperboloyd писал(а):
можно вместо: off ;
написать: off =(~off)? 1:0;
если офф не 0xff к нему прибавится 1, иначе 0.
так переменная дойдёт до 255 и там и останется. т.е. в условие сброса надо вписать 254 а не 255.
спасибо, но это кажется сложновато для меня
mas123 писал(а):
Один из вариантов решения - принять какое-то значение "off" как "остановлено".
Например, если off == 255, то в прерывании эту переменную не увеличивать.
В значение 255 переводить в прерывании, когда отработают все "выключено". А то и само оно до этого значения добежит и остановится.
чтобы off постоянно не крутилось, можно просто добавить условие:
но я так понимаю это не решит проблему:
mas123 писал(а):
возможна ситуация мгновенного выключения включенного, т.к. таймер "сработал".


Вернуться наверх
 


Не в сети
 Заголовок сообщения: Re: Дисковый номеронабиратель и семисегментник
СообщениеДобавлено: Ср ноя 22, 2017 14:30:02 
Держит паяльник хвостом

Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 930
Рейтинг сообщения: 1
Вам нужно пересмотреть всю программу. Но сначала я хотел бы узнать, что вы сейчас хотите сделать. Смотрю схема у вас новая.


Вернуться наверх
 
Бытовой пирометр АКИП-9312 – просто удобно!

Диапазон 35 °С ...42°С (температура тела) погрешность 0,3 °С
Диапазон 0 °С ...100°С (бытовая сфера) погрешность 1,0 °С
Не в сети
 Заголовок сообщения: Re: Дисковый номеронабиратель и семисегментник
СообщениеДобавлено: Ср ноя 22, 2017 17:28:40 
Друг Кота
Аватар пользователя

Карма: 39
Рейтинг сообщений: 1524
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 4877
Откуда: Сердце Пармы
Рейтинг сообщения: 1
Медали: 1
Получил миской по аватаре (1)
блин, я забыл что сайт "плюсы" съедает :(
вместо off++;
off+=(~off)? 1:0;
скобки и вопрос это сокращённая запись ветвления, читается так: если в скобках истина, то выражение берётся до двоеточия, если ложно — после. ~ - инверсия побитовая (0xff обернётся в 0x00 и даст ложь, всё остальное даст истину. получаем -если офф!=255 выражение будет 1, и её прибавим к офф иначе прибавим 0.

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Дисковый номеронабиратель и семисегментник
СообщениеДобавлено: Ср ноя 22, 2017 18:41:19 
Потрогал лапой паяльник

Карма: 5
Рейтинг сообщений: 81
Зарегистрирован: Вс июл 29, 2012 16:25:39
Сообщений: 312
Рейтинг сообщения: 1
чтобы off постоянно не крутилось, можно просто добавить условие:
if ( off < 29)
...
А теперь найди 33 разницы с моим вариантом "255 - это значение стоп". :))
но я так понимаю это не решит проблему:
Почему же? Решит.
При обнуление таймера после установки "включить" - "off" будет наращиваться, а когда дотикает до нужного значения - выключит.
Зато можно быть уверенным, что в момент установки "включить" таймер не сработает "вот-вот" на отключение.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Дисковый номеронабиратель и семисегментник
СообщениеДобавлено: Ср ноя 22, 2017 21:03:28 
Первый раз сказал Мяу!

Карма: 3
Рейтинг сообщений: 7
Зарегистрирован: Пт авг 08, 2008 23:41:37
Сообщений: 39
Откуда: Penza
Рейтинг сообщения: 0
Вам нужно пересмотреть всю программу. Но сначала я хотел бы узнать, что вы сейчас хотите сделать. Смотрю схема у вас новая.

Здравствуйте, в общем все готово, цель достигнута и моя первая программа работает в допустимых пределах(для детской игрушки). Последняя проблема возникла «все перестало работать», я выложил текст всей программы, но ребята подсказали , что дело во фьюзах. Так же Сделали некоторые замечания. Т.к. Я решил что си - это интересно, то попросил объяснить, как что исправить, вот в принципе и все))

Добавлено after 2 minutes 54 seconds:
блин, я забыл что сайт "плюсы" съедает :(
вместо off++;
off+=(~off)? 1:0;
скобки и вопрос это сокращённая запись ветвления, читается так: если в скобках истина, то выражение берётся до двоеточия, если ложно — после. ~ - инверсия побитовая (0xff обернётся в 0x00 и даст ложь, всё остальное даст истину. получаем -если офф!=255 выражение будет 1, и её прибавим к офф иначе прибавим 0.

Примерно понял, очень интересный вариант, обязательно попробую. Спасибо, Вам!

Добавлено after 4 minutes 32 seconds:
mas123 писал(а):
Почему же? Решит.
При обнуление таймера после установки "включить" - "off" будет наращиваться, а когда дотикает до нужного значения - выключит.
Зато можно быть уверенным, что в момент установки "включить" таймер не сработает "вот-вот" на отключение.
Ну значит со спокойной душой травлю плату! Ещё раз большое спасибо за поддержку и Советы


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Дисковый номеронабиратель и семисегментник
СообщениеДобавлено: Пт дек 08, 2017 10:41:22 
Первый раз сказал Мяу!

Карма: 3
Рейтинг сообщений: 7
Зарегистрирован: Пт авг 08, 2008 23:41:37
Сообщений: 39
Откуда: Penza
Рейтинг сообщения: 7
Спасибо ВСЕМ большое. Дочке понравилось!
замок пока не ставил - рановато. позже программа будет немного переделана и из светофора появится кодовый замок для синей двери.
выключатель зажигает свет в домики и синий LED в окне вентилятора. Розетка включает сам вентилятор. телефон - просто цифры.
Вот такая штука получилась:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Дисковый номеронабиратель и семисегментник
СообщениеДобавлено: Пт дек 08, 2017 18:28:54 
Друг Кота

Карма: -9
Рейтинг сообщений: -186
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 3871
Откуда: Россия
Рейтинг сообщения: 0
Прикольно получилось)) А ты молодец. Не все тут могут похвастаться законченным устройством))
Кстати.. можно добавить ещё кучу функций.. так сказать на будущее..))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Дисковый номеронабиратель и семисегментник
СообщениеДобавлено: Вт дек 19, 2017 22:19:35 
Первый раз сказал Мяу!

Карма: 3
Рейтинг сообщений: 7
Зарегистрирован: Пт авг 08, 2008 23:41:37
Сообщений: 39
Откуда: Penza
Рейтинг сообщения: 0
Прикольно получилось)) А ты молодец. Не все тут могут похвастаться законченным устройством))
Кстати.. можно добавить ещё кучу функций.. так сказать на будущее..))

Спасибо) я думал про кучу функций, но признаться домик мне поднадоел) как дочь подрастет подключу электрозамок и думаю на этом покончить) для меня это был превосходный опыт работы с деревом и МК. ребятам за помощь я очень благодарен!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Дисковый номеронабиратель и семисегментник
СообщениеДобавлено: Вт дек 19, 2017 22:47:04 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 5
Рейтинг сообщений: 15
Зарегистрирован: Вс дек 26, 2010 23:08:53
Сообщений: 188
Откуда: Москва, Зеленоград
Рейтинг сообщения: 0
Hiperboloyd - отлично! Я тоже делал дочке бизиборд, но он без электронных приблуд, все в кучу не стал мешать.
Хочу сделать второй бизик и как раз электронный.. Скажу спасибо за схему и програмку с подробностями ;)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Дисковый номеронабиратель и семисегментник
СообщениеДобавлено: Ср дек 04, 2019 21:05:55 
Первый раз сказал Мяу!

Карма: 3
Рейтинг сообщений: 7
Зарегистрирован: Пт авг 08, 2008 23:41:37
Сообщений: 39
Откуда: Penza
Рейтинг сообщения: 0
Hiperboloyd - отлично! Я тоже делал дочке бизиборд, но он без электронных приблуд, все в кучу не стал мешать.
Хочу сделать второй бизик и как раз электронный.. Скажу спасибо за схему и програмку с подробностями ;)


Вероятнее всего уже поздно! но для будущих поколений , так сказать, выложу.

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

Повторяю: Вероятно это последний вариант, но возможно и нет. Это означает что могут быть ошибки. в Протеусе вроде работает.


Схема с небольшими пояснениями


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 56 ]    , , 3

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y