Jump to content

    

skilful

Свой
  • Content Count

    218
  • Joined

  • Last visited

Community Reputation

0 Обычный

About skilful

  • Rank
    Местный

Контакты

  • Сайт
    Array
  • ICQ
    Array

Recent Profile Visitors

1366 profile views
  1. В соседней ветке сказал спасибо за ответы. Тут, видимо, я забыл. Спасибо за ответы. Думаю, она полностью раскрыта и у кому еще придет такая мысль (про питание от лап МК) не пойдет по этому пути.
  2. byRAM, вы может в профиле темы пересмотрите мои прежде, чем писать? Но в чем-то вы правы - много лет назад я делал проект под названием AptiLight (фоновая подсветка для монитора/телевизора). В ютубе можете найти пару древних видео. Суть была в анализе видеосигнала hdmi/dvi на пролете - из кабеля. Проект уместился в CPLD MAX II. И проект пожил немного пока в HDMI не ввели HDCP. Baser, спасибо. Вот еще нашел еще ссылку, в которой указывается про возможность питания от порта. Но DiHalt четко сразу все расписал по ограничению данного способа. http://easyelectronics.ru/vklyuchit-vyklyuchit-sxemy-upravleniya-pitaniem.html
  3. Да, что вы пристали с этим месяцем :) я месяц не только этим транзистором занимался ))) Без ваших подсказок/советов я бы еще 2 дня думал почему схема хреновая. Только так подробно не надо ж пинать - просто сказали бы посчитать токи по закону Ома с нагрузкой и без куда этот ток польется. В спецификации на RS-485 написано, что ток короткого замыкания на линии 250 мА... Понимаете, меня еще не покидает мысль о том, что МК имеет столько всего на борту и думается зачем еще дополнительные элементы всякие. И еще их покупать, ЛУТить. Кто-то писал, что лениво - похоже, что-то в этот есть. Фраза про белье была про то, что какую полезность имеет то в каких я группах состою. Зачем такие вопросы? Сам понимаю какой мой уровень вопросов - пишу в разделе для новичков. Немного еще офтоп вопрос: насколько критичен уровень напряжения питания МК AVR (Ардуино). У меня 16 МГц. Если я от 4-4.2 В запитаю как это отразится на работе МК? В Даташите написано на мою Mega328p: 0 to 16MHz at 4.5 to 5.5V На сайтах ардуинщиков читал, что и от 3.5 Вольт работает нормально, а в даташите напряжение это с запасом.
  4. Чем хуже ? Плохо, когда хотя бы минимального пояснения нет. Мой уровень разработки - на уровне радиолюбительства/хобби в свободное от основной работы время. У меня в городе достаточно трудоемко и накладно радиодетали приобретать. Тем более будет обидно, что можно было сделать по другому - как-то изящнее и дешевле за свои то покупаю детали. Да и некоторым мыслям тутешних участников форума восторгаюсь ибо сам бы не догадался и(или) знаний с опытом не хватает. Что касается группы Свой: так это было много лет назад. Тогда в ней давался доступ к фтп с софтом хорошим. Тогда еще моя работа была связана с ПЛИС и с кодированием схемы заданных алгоритмов в схеме ПЛИС. MrBearManul, не люблю, когда начинают копаться в "нижнем белье". Это уровень некоторых ТВ передач. Лучше вообще не отвечать, чем пытаться как-то задеть :)
  5. Скажите, пожалуйста. А вот такая схема управлением питанием от ножки МК допустима ли? Когда на ножке Hi-Z, то микросхема запитана. Когда 0 - то нет.
  6. ну, вот так у меня получается, что влазить в него нельзя :) jcxz, спасибо Вам за помощь. Я хочу попробовать с каскадированием таймеров. Для меня это выглядит наиболее шустрым решением. Еще раз Спасибо всем откликнувшимся
  7. так ведь критично важный по времени кусок кода вообще нельзя нарушать. тогда я еще после куска критичного кода еще sei постоянно должен буду делать, чтобы прерывания разрешить до следующей итерации цикла. Да и дольше они выполняются эти прерывания. В моем же куске кода, если таймер не переполнился, то за 3 такта вернемся к выполнению критичного кода. if ((TIFR1) & (1 << TOV1)) { //таймер с предделителем работает в фоне. Сработка каждые 4 секунды SBIS 0x16,0 Skip if bit in I/O register set RJMP PC-0x0006 Relative jump
  8. Мой код проверки в цикле дизассемблируется вот так. if ((TIFR1) & (1 << TOV1)) { //таймер с предделителем работает в фоне. Сработка каждые 4 секунды SBIS 0x16,0 Skip if bit in I/O register set RJMP PC-0x0006 Relative jump TIFR1 = 0x01; //TIFR1 |= (1 << TOV1); //сброс бита переполнения. Надо записать туда 1 для сброса OUT 0x16,R25 Out to I/O location SUBI R24,0x01 Subtract immediate } while (TOV1_cnt > 0); BRNE PC-0x09 Branch if not equal Вроде и неплохо по количеству тактов. Но задача избавиться от этой проверки. Очень интересная идея с каскадированием таймеров. Спасибо! Простите, но я не понимаю какую мысль Вы хотите донести, чтобы избавиться от контрольной части куска кода. Идея с каскадированием таймеров более-менее понятна, а Вашу не пойму. Что получится в итоге... Переход в прерывание более длителен как показал дизассемблер
  9. да жаль, что столько еще неиспользуемой периферии на борту и внешние цепи/устройства ставить
  10. проведите немного ликбез: что поменяется при применении RTOS ? Таймеры в AVR выше этих 4 секунд не настроить на 16 МГц. Значит будут прерывания, которые будут прерывать мой код для проверки переключения задачи? По тактам, если использовать прерывания, то больше выходит, чем код, который я написал. Хотя могу ошибаться из-за недопонимания. К сожалению, сторожевик в AVR только максимально 8 секунд может отсчитать. Так бы его применил как параллельный процесс и не парился бы :)
  11. Здравствуйте. Имеется критичный по времени работы кусочек кода, который работает в цикле и ему лучше не мешать :) Однако этот кусок кода должен поработать минут 15-20 и прекратить работать. МК -- AVR. Сейчас я сделал так: cli(); //запустили таймер1 с делителем 1024 без прерываний. Будем следить за битом переполнения //сработка равна ~ 4 секунды на 16 МГц TCCR1A = 0; TCCR1B = 0; TIMSK1 = 0; TCCR1B |= (1 << CS12); TCCR1B |= (1 << CS10); uint8_t TOV1_cnt = 255; ~ 4 секунды do { ////////тут критичный по времени код. Написан на ассемблере //.... //////// // выход из цикла примерно через 15-20 минут if ((TIFR1) & (1 << TOV1)) { //таймер1 с предделителем работает в фоне. Сработка каждые 4 секунды TIFR1 = 0x01; //сброс бита переполнения. Пишем туда 1 для сброса TOV1_cnt--; } } while (TOV1_cnt > 0); sei(); Т.е. запустили Таймер1 в фоне и без прерываний, и опрашиваем бит его переполнения в критичном по времени работы цикле. Если Таймер1 переполнился -- сбрасываем этот бит, и декрементируем счетчик времени работы цикла. Этот код я дизассемблировал и он как бы во временном допуске получается. Но может как-то еще быстрее можно контролировать время работы цикла? Можно применять абсолютно любую периферию МК AVR, программные трюки в том числе и сторожевой таймер :) Задача: максимально не мешать критично важному по времени куску кода и завершить его через 15-20 минут. Спасибо!
  12. Так вот и был вопрос про эту платку с MAX485. Потянет или нет. Я понял, что не потянет и не надо пытаться, а то порты можно пожечь. Да и если замкнет что-то на линии, то цепочка микросхем полетит. Основывался на характеристиках конвертера ICP CON i-7520 https://icp-das.ru/catalog/i-7520 Спасибо участникам
  13. а как тогда работают переходники RS-232 - Rs-485, которые вообще без питания? у меня такой есть https://smartcable.ru/components/com_jshopping/files/demo_products/RS001.pdf RS-232 вроде как миллиамперы только может дать...
  14. Приемопередатчик вот в такой обвязке как на картинке. Да, к сожалению, похоже не получится с одной ножкой )) А если 2-3 ножки объединить не поможет? Дело не в экономии на полевом, а в том, что много на макетке всего и полевик еще не хочется ставить. К тому же часть ног у Ардуины пустует