Перейти к содержанию

dim3740

Members
  • Постов

    473
  • Зарегистрирован

  • Посещение

Весь контент dim3740

  1. Что значит "аналоговую часть подальше"? лапка МК с сигналом, трассировка по печатке до гнезда, ну... 3-4 см, гнездо, далее кабель наушника.... Я же не могу эти 3-4 см в оплетку завести. И почему это провод БП не создает помех? Что - по нему постоянный уровень тока что-ли течет? Разве в моменты бОльшей нагрузки от БП не потребляется бОльший ток? Я не спорю, просто хочу уточнить и понять где копать....
  2. Уважаемые, чтоб не получить очередной бан, создал отдельную тему по Ц и А части. Она чуть выше.... Спасибо, если дадите там советы.
  3. Для начала назовем аналоговой частью простой вывод порта на наушник 40-60 ом, ну, пусть через резистор или даже делитель напряжения (потенциометр громкости). (Потом, м.б. вставим некий УНЧ или буферный каскад). На наушник подаем программно генерируемый меандр, частотой скажем 60 имп/мин. При этом сам импульс - это пакет, пусть 1 кгц. Слышим "пиканье". ОК. Запитываем плату от внешнего БП, с проводом 2 жилы длина, скажем, 2 м. Имеем: сильный ток в момент импульса. Крутые фронты, создающие эдс. Помехи в рядом лежащих устройствах. Развести нулевой провод на АЧ и ЦЧ не получится - 2 метра он будет общим. Более того - (только не смейтесь:) - если я закорачиваю контакты гнезда наушника на плате, все равно слышу тихинький щелчок((( . Как бороться с артефактами?
  4. @ARV спасибо! Так я быстро научусь))) Сделал "фиксированный" ресет, а потом научился просто очищать память МК, без прошивки. Да , фон исчез.... Надо как-то теперь экранировать или трассировку менять(((
  5. На плате есть МК. Также есть аналоговая часть с выходом на наушники. Борюсь с фоном((( Да, БП конечно, единый. Разводка не снимает проблему, пробовал вынести на макетку ... Фон меняется, но остается. Это не наводки, точно, т.к. гц эдак 400.... На 90 % уверен, что его дает работа МК. Вопрос: Как программно имитировать выключение МК? Мне это нужно только для проверки влияния на фон. Выпаивать МК не хочу. Могу просто закоментить все в IDE, но ведь цикл в main все равно придется оставить. Спящие режимы? Не сталкивался.... Может есть как сделать это проще - ведь это временно только нужно....
  6. Нужно готовую "приспособу" по удлинению ручки потенциометра или где купить ручки как на фотке. Гуглил... советы по прутку 6 мм и его стыку есть. Но хорошо бы что-то готовое, так как это надо делать не один раз..... А ручки такого вида вообще на Алиэкспрессе нет. Или плохо ищу(((( А может кто знает энкодеры с кнопкой и с 30 мм ручкой? Тогда вопрос тоже решен.
  7. Задача решена (вроде... тестю). Всем спасибо. При решении использованы: 1) В цикле – запуск таймера, а также включение СД в как «первичное», чтоб загорелся сразу, а не после первого прерывания. Последующее мигание обеспечено в обработке прерывания. 2) 8 разрядный таймер при 16 Мгц дает около 16 мс максимум. Сделан цикл в прерывании со счетчиком до 200/16. 3) Число импульсов мигания не считаю - упростил ТЗ. Выключение - по кнопке - запрету прерывания Таймера. Про «кнопки» - спасибо, но вопрос про них вообще не стоял.
  8. К чему такой вопрос? Порты настроены, скважность горения - без проблем, но все только или через _delay_ms, или через таймеры. Опрашивать кнопки (я упростил вопрос - потому что кнопки это энкодер) тоже без проблем. Задача - в 2- процессах, и меня не устраивают поддергивания цифр на индикаторе при быстром вращении ручки. Потому что в это время процессор занимается светодиодом. Вот и все....
  9. Смейтесь, смейтесь Все когда то новичками были)))))
  10. @IMXO Именно так - 2 процесса. К сожалению в отличие задачи по Вашей ссылки мне нужно существенное время для 2-й задачи: это не просто включить двигатель, а зажигание и горение светодиода. Идеальный вариант - нажатие кнопок вывести в приоритет. Я бы так и делал аппаратно - через доп группу контактов на прерывание. Но .... нет лишней группы((((
  11. Итак: по нажатию кнопки А разрешили прерывание таймера. Поставили уставку на 200 мс, поставили программный тригер, если нужно мигание со скважностью 2. Зашли на прерывание. Диод загорелся. Что дальше? Как посчитать число миганий /заходов в прерывание? Как выйти и снова зайти в прерывание? Нельзя ли чуть по-подробнее?
  12. Кнопки опрашиваются успешно. Дребезг не стоит в задаче. Но если светодиод мигает (допустим через _delay), то в этот момент времени цикл опроса кнопок прерывается. Горит он скажем 200 мс, и это артифакт на нажатие. Кнопку долго держать нельзя. Думаю, нужно как-то запускать таймер, программно считать его переполнения, но не соображу как....
  13. Как сделать такое: опрашиваем кнопки в цикле. По нажатию кнопки А, начинает мигать светодиод и через N импульсов прекращается. Но мигание можно также "остановить" нажатием кнопки Б. Таймеры (2 штуки) можно задействовать. Задача, имхо, в том, чтоб опрос кнопок без артефактов сделать. (Контактов для прерывания по кнопкам нет, - только опрос).
  14. @ARV , огромное спасибо! Все заработало! Хотя странно, что в других проектах и так работало иногда, просто ставил задержку в цикл... А может это был глюк)))
  15. Здравствуйте! Помогите, плз, с прерывание по таймеру Т1, атмега 328р. Светодиод на PD5 в цикле не загорается. #define F_CPU 16000000 #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> int Nom1; // счетчик int main(void) { DDRD |= (1 << PD5); // свето на выход Nom1=4; TCCR1B = (1<<WGM12); // Режим CTC (сброс по совпадению) TCCR1B |= (1<<CS11); //запускаем таймер1 с предделителем на 8 OCR1A=20000; // начальная уставка TIMSK1 = (1<<OCIE1A); // Разрешить прерывание по совпадению sei(); while(1) { //_delay_us(900); if (Nom1<2) // декремент идет в прерывании Т1. { PORTD |= (1<<5); //свет _delay_ms(200); PORTD &= ~(1 << 5); _delay_ms(200); Nom1=4; } } } ISR (TIMER1_COMPA_vect) // сюда заходим весьма редко, но в while почему то не возвращаемся { Nom1--; TCNT1=0; // сбрасываем счетный регистр чтоб считать снова с нуля OCR1A = 20000; }
  16. Так и не могу научиться заливать программный HEX.... Ссылки ведут применение AVRDUDE (скачал Дудку_Prog, как ей пользоваться то?), еще есть статьи через создание makeFiles..... или командную строку.... Я с этим не сталкивался. Неужели проще нельзя? В конце концов, я могу от Ардуино только железо оставить, но писать свой загрузчик вообще "в лом"(((( Подтолкните по пунктам, плз!
  17. Думаю, мы уже отлично поработали! У меня музыкальные девайсы, там скорость фиксированная 31250 Кц, а требования к качеству очень высоки, потому что нет контроля пакетов. Нет возможности повторов, ведь ноту не будешь играть снова, потому что она дескать не прошла по Варту. Короче, железный варт надо оставлять как основной с макс нагрузкой. Второй - программный. Ну или юзать платки с 2-и более вартами отлично бы, но пока не катит)))) Итог: тестить как распределять RX TX для отладки и потом - для работы.
  18. Рукоплещу!!! Вышло через загрузку скаченного hex и через AtmelStudio (что не принципиально)! Теперь есть простор для оптимизации варианта загрузчика, хотя мне это и не нужно... Фузы прошивал вперед, затем уже хэкс.
  19. Кварц верный, ведь пока не запорол бут (т.к. выдернул шнур ЮСБ=и питание) при зашивке скетчи все хорошо заливались(((. По шагам: 0) RX TX отсоединил через микропереключатель на плате 1) Плюс подал 5 вольт 2) ЮСБ от компа отсоединил, номер СОМ порта пропал в ИДЕ 3) Жму загрузчик: "Ошибка записи загрузчика" 4) Меняю в ИДЕ программатор на AVR ISP (без МК2!) 5) Сообщение "типа началась запись... минуточку". 6) прошло 3-4 минуты....ошибка прграмматор не отвечает по ангицки((( так мгновенно ошибка же вылазит, будь она неладна((( Выпаивать НАно не хочется, а так есть ролики где их 2 штуки соединяют и перепрошивают бут((
  20. "Переходы" - это отдельная тема и очень популярная. Прочитал, что программный Уарт делается только на портах с внешним прерыванием.... Их мало, А иные платки кроме Нано - форм-фактор не позволяет. Каждому ТЗ - свои ограничения, в т.ч. и ценовые. Так что, будем выжимать из исходных данных и комплектующих)))
  21. Ладно, я признателен за диалог))) Если оставить этот вопрос, не мог бы ты помочь мне все же с заливкой/заменой испорченого бута? У меня фирменный AVR-ISP-MK2, я им кучу всего шью из AVRStudio6... переходник, все на фотке..... проблема м.б. в том что Нано впаяна в плату, но ВСЕ SPI не подключены ни к чему (в отличие от RX)... м.б. релиз IDE важен? СОМ номер порт вроде не нужен... Но я не имею опыта с Ардуино(((( Что предпринять? Был бы очень признателен!
  22. Можно все таки уточнить? Итак, пусть некто заимел мою разработку на Ардуино. Я высылаю ему новый релиз прошивки в hex. И что - он не сможет ее никак занести по ЮСБ, т.е. не имея программатора? Есть же куча утилит для этого. Или, первый раз сможет, а второй уже нет, так как затрется бутлодер? Странно как-то.... Я что-то не вкуриваю((((( Ну, или я могу высылать еще и загрузчик. И указывать, что надо и его прошить потом (как вы пишите выше). И так в очередной раз повторять... Так?
  23. Спасибо. Я посмотрю библу, но не больно верю в бесконфликтность. Пишут, что и 9200 с ошибками. А мне на 32 кГц. Думал хоть один бы аппаратный.)))
  24. Нашел примеры как залить Бут из аналогичной платы, попробую... Однако в самой ide должен же быть загрузчик. И якобы его и можно шить через isp, но не получается.... Буду ещё пробовать. И что значит -стирается? Как то же можно hex грузить не стирая Бут, или одновременно вкупе с ним?
×
×
  • Создать...