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 все работает как надо
что я могу делать не так? ((
схема
текст программы(коменты могут не соответствовать из-за копипаста):
вообще перестало..... то ли в проге где-то накосячил,
Именно для таких случаев придумана "система контроля версий" или хотя бы ежедневные бекапы проекта - чтобы всегда можно было откатиться на шаг назад или до прошлого рабочего состояния.
Не вижу кварца у атмеги. Правильно ли она сконфигурирована (FUSE) на работу от внутреннего RC-генератора? Подано ли питание не только на VCC, но и на AVCC?
Какая у тебя стоит ATMEGA? На схеме фиг разглядишь, по распиновке смахивает на DIP-40 корпус Atmaga32 или 8535. Если Аtmega32, то на PC2-PC5 висит JTAG. Смотри FUSE-бит "JTAGEN" - по умолчанию он активен. "Default Value 0 (programmed, JTAG enabled)"
Как я уже говорил - не люблю повторяться. (с) Но, на кой хрен в прерывании задержка?! Попробовать PB0 и PB2 подтянуть резистором снаружи, всё же может внутренней подтяжки не хватать. Это, кстати, и к PC4 относится - если подключить внешнюю подтяжку, там будет "1"? При условии, что там точно нет JTAG.
Угу, если "не влияет" означает постоянные периодические срабатывания Цитата: 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, как там лучше сделать - будет очень здорово), ну а если надоело ковыряться моей фигне, ничего страшного!
Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650.
Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель.
можно вместо: off ; написать: off =(~off)? 1:0; если офф не 0xff к нему прибавится 1, иначе 0. так переменная дойдёт до 255 и там и останется. т.е. в условие сброса надо вписать 254 а не 255.
_________________ Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством Безграмотно вопрошающим про силовую или высоковольную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Физически же ничего не будет происходить. крутится и крутится эта переменная...
Если вначале включается что-то из серии "погасить по таймеру", а лишь потом обнуляется "off", то возможна ситуация мгновенного выключения включенного, т.к. таймер "сработал".
тогда надо переделывать алгоритм, чтоб как-то счетчик останавливался на время простоя, на это у меня ума не хватает). максиму что можно от меня добиться это добавить условие в прерывание типо:
Один из вариантов решения - принять какое-то значение "off" как "остановлено". Например, если off == 255, то в прерывании эту переменную не увеличивать. В значение 255 переводить в прерывании, когда отработают все "выключено". А то и само оно до этого значения добежит и остановится.
можно вместо: off ; написать: off =(~off)? 1:0; если офф не 0xff к нему прибавится 1, иначе 0. так переменная дойдёт до 255 и там и останется. т.е. в условие сброса надо вписать 254 а не 255.
спасибо, но это кажется сложновато для меня
mas123 писал(а):
Один из вариантов решения - принять какое-то значение "off" как "остановлено". Например, если off == 255, то в прерывании эту переменную не увеличивать. В значение 255 переводить в прерывании, когда отработают все "выключено". А то и само оно до этого значения добежит и остановится.
чтобы off постоянно не крутилось, можно просто добавить условие:
но я так понимаю это не решит проблему:
mas123 писал(а):
возможна ситуация мгновенного выключения включенного, т.к. таймер "сработал".
блин, я забыл что сайт "плюсы" съедает вместо off++; off+=(~off)? 1:0; скобки и вопрос это сокращённая запись ветвления, читается так: если в скобках истина, то выражение берётся до двоеточия, если ложно — после. ~ - инверсия побитовая (0xff обернётся в 0x00 и даст ложь, всё остальное даст истину. получаем -если офф!=255 выражение будет 1, и её прибавим к офф иначе прибавим 0.
_________________ Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством Безграмотно вопрошающим про силовую или высоковольную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Почему же? Решит. При обнуление таймера после установки "включить" - "off" будет наращиваться, а когда дотикает до нужного значения - выключит. Зато можно быть уверенным, что в момент установки "включить" таймер не сработает "вот-вот" на отключение.
Вам нужно пересмотреть всю программу. Но сначала я хотел бы узнать, что вы сейчас хотите сделать. Смотрю схема у вас новая.
Здравствуйте, в общем все готово, цель достигнута и моя первая программа работает в допустимых пределах(для детской игрушки). Последняя проблема возникла «все перестало работать», я выложил текст всей программы, но ребята подсказали , что дело во фьюзах. Так же Сделали некоторые замечания. Т.к. Я решил что си - это интересно, то попросил объяснить, как что исправить, вот в принципе и все))
блин, я забыл что сайт "плюсы" съедает вместо off++; off+=(~off)? 1:0; скобки и вопрос это сокращённая запись ветвления, читается так: если в скобках истина, то выражение берётся до двоеточия, если ложно — после. ~ - инверсия побитовая (0xff обернётся в 0x00 и даст ложь, всё остальное даст истину. получаем -если офф!=255 выражение будет 1, и её прибавим к офф иначе прибавим 0.
Примерно понял, очень интересный вариант, обязательно попробую. Спасибо, Вам!
Добавлено after 4 minutes 32 seconds:
mas123 писал(а):
Почему же? Решит. При обнуление таймера после установки "включить" - "off" будет наращиваться, а когда дотикает до нужного значения - выключит. Зато можно быть уверенным, что в момент установки "включить" таймер не сработает "вот-вот" на отключение.
Ну значит со спокойной душой травлю плату! Ещё раз большое спасибо за поддержку и Советы
Спасибо ВСЕМ большое. Дочке понравилось! замок пока не ставил - рановато. позже программа будет немного переделана и из светофора появится кодовый замок для синей двери. выключатель зажигает свет в домики и синий LED в окне вентилятора. Розетка включает сам вентилятор. телефон - просто цифры. Вот такая штука получилась:
Прикольно получилось)) А ты молодец. Не все тут могут похвастаться законченным устройством)) Кстати.. можно добавить ещё кучу функций.. так сказать на будущее..))
Прикольно получилось)) А ты молодец. Не все тут могут похвастаться законченным устройством)) Кстати.. можно добавить ещё кучу функций.. так сказать на будущее..))
Спасибо) я думал про кучу функций, но признаться домик мне поднадоел) как дочь подрастет подключу электрозамок и думаю на этом покончить) для меня это был превосходный опыт работы с деревом и МК. ребятам за помощь я очень благодарен!
Hiperboloyd - отлично! Я тоже делал дочке бизиборд, но он без электронных приблуд, все в кучу не стал мешать. Хочу сделать второй бизик и как раз электронный.. Скажу спасибо за схему и програмку с подробностями
Hiperboloyd - отлично! Я тоже делал дочке бизиборд, но он без электронных приблуд, все в кучу не стал мешать. Хочу сделать второй бизик и как раз электронный.. Скажу спасибо за схему и програмку с подробностями
Вероятнее всего уже поздно! но для будущих поколений , так сказать, выложу.
Прошу прощения что так прервал всё. на работе ноут озяб. что-то восстановилось. что-то с флешек собрал, что-то дома было. в итоге не смог найти окончательный вариант и забыл/забил. но вот что-то копался и кажется это оно. В протеусе все работает, кроме таймера автоматического выключения, но так и было, в железе всё норм.
Повторяю: Вероятно это последний вариант, но возможно и нет. Это означает что могут быть ошибки. в Протеусе вроде работает.
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения