Выплескивание эмоций

Тема в разделе "Флудилка", создана пользователем alp69, 15 окт 2016.

  1. ИгорьК

    ИгорьК Гуру

    Мы о МК.
     
  2. parovoZZ

    parovoZZ Гуру

    Зачем он мне??? Как на нем кодить MSP430, МК от SiLabs, вообще любой произвольный МК, как на нем освоить блютуз, USB? Для него есть криптобиблиотеки?
     
  3. Igor68

    Igor68 Гуру

    И что? Переключение между циклическими функциями? ПаровоЗЗу просто в лом.
    И что? Одна функция на прерывании таймера(так сказать кернел) по очереди передаёт управление каждой из рабочих функций(сохраняет контекст одной и восстанавливает для другой).
     
  4. Igor68

    Igor68 Гуру

    Ни фига себе! На МК ещё и интерпретатор? Или если МК почти комп, то да.
     
  5. ИгорьК

    ИгорьК Гуру

    Ты опять про японскую пилу?
    Чего нет - пиши сам. Или ты здесь и сейчас уже делаешь то что пишешь?

    Твои проекты - мигание лампочкой по сути. Хорошие проекты, что доделал, но зачем тебе msp430 "на самом деле"? Просто кодить и кодить? Может лучше с дочкой лишний раз в кафе сходить или лампочку заменить в подъезде?
     
  6. Igor68

    Igor68 Гуру

    Анализ содержимого строк для МК... ну это уже грубость. Я даже по сети стараюсь массивы таскать для более серьёзных устройств. Хотя браузеру на ПС это нормально... он вообще-то не сутками работает и ему можно.
     
  7. ИгорьК

    ИгорьК Гуру

    Espruino.com / она же Iskra JS. Не слышал?
    На сайте espruino там хватает железа разных мастей.

    Micropython опять же...
     
  8. ИгорьК

    ИгорьК Гуру

    Вон у Ивана часы есть, да и у меня. Там данные с сервера забираются и парсятся.
    Все что идёт с/на брокер MQTT - строки.
    Заглядывай на форум чаще :)
     
  9. Igor68

    Igor68 Гуру

    Всё равно для просто МК это грубо... прошу прощения не обратил внимания что там не один МК. Один на связь - это какой-то шилд, другой где вертится интерпретатор с инструкциями, третий по связи последовательной датчики и исполнительные утстройства, и прочее тогда верно.
    А вот когда один МК всё это делает в одно рыло, то интерпретация строк для него жирно.
     
  10. issaom

    issaom Гуру

    Есть такое слово "Хобби"
     
  11. SergeiL

    SergeiL Оракул Модератор

    A что он делает у большинства участников этого форума?
    Раз за разом проходит loop() или крутится в бесконечном while() в main(), и ждет, пока системный таймер не натикает нужное значение, или кто то нажмет кнопочку, или придет сообщение, которое нужно обработать.
     
  12. Igor68

    Igor68 Гуру

    И кроме этого производить анализ строк... а это сравнение массива. Это не просто сравнить величину числовую. Это довольно трудоёмкая. Вот к примеру сколько символов надо сравнить(допустим по XOR к примеру):
    "напали на козлика райские птички, остались от козлика ... да .....". Понимаю, что это не одно слово но сколько раз надо обратиться к памяти?
     
  13. ИгорьК

    ИгорьК Гуру

    - Сынок, видишь две сосны? Во когда их будет 4 - значит я пьяный.
    - Папа, там одна сосна!

    Тезка! И Ивана и мои часы построены на одном МК каждые.

    Часы берут немалую страницу JSON с сервера прогноза погоды, парсят ее и выдают на экран. Часы принимают/отправляют строки на MQTT брокер, часы читают датчики с сервера народного мониторинга. Все это текст. Часы, в конце концов, забирают время из Интернета, что тоже текст.

    Ивановы часы еще больше с текстом работпют.
    Привет, друже!
     
  14. SergeiL

    SergeiL Оракул Модератор

    Например у меня такая схема включения ESP-8266 для управления верхним светом (люстрами) в квартире.
    upload_2020-12-28_23-37-34.png
    вот фрагмент принципиальной схемы:
    upload_2020-12-28_23-38-36.png

    То есть у нас в течении первого полупериода появляется 0 на GPIO13, в течении второго полупериода - 0 на GPIO12.
    Можно поставить два конденсатора и анализировать 1 - выключатель выключен, 0 - включен.

    Можно, но у нас же ESP молотит на 80МГц и делать то ей особо нечего.

    Поэтому, если по простому:
    Настроен 1 миллисекундный таймер.
    Засекается время, начинаем 20 измерений. (Все в таймере каждое измерение - новый вызов таймера)
    Каждую миллисекунду снимается значение по GPIO12 и GPIO13.
    В течении 20 измерений суммируются нулевые значения, по отдельности для GPIO12 и GPIO13.
    По истечении 20 измерений по millis() вычисляется количество миллисекунд за эти 20 измерений (мало ли что было).
    Если значение миллисекунд больше 23 или меньше 17 - измерение откидывается и начинается новый цикл.
    Если между 23 и 17 - и счетчик нулей - больше или равен 5 - виртуальный выключатель включен.
    Меньше 5 виртуальный включатель - выключен.
    Дальше отрабатывает антидребезг по виртуальному выключателю и получается реальное состояние выключателя.

    В квартире 9 таких выключателей, и работают они с начала лета 2017го, первый с 2016-го.
    За все время ни одного сбоя, ни дребезга ни зависаний. Не знаешь - можно подумать, что обычный выключатель.

    А кроме того к той же ESP подключены датчик движения, датчик дыма, управление питанием этих датчиками + возможность включить сирену датчика дыма. И все это управляется и мониторится по MQTT с OpenHAB. Естественно, через определенный таймаут скидывается текущее значение по всем устройствам.

    И что перегружена ESP, пожалеть ее, поставить два конденсатора, поменять значение таймера на 20мс и анализировать просто 0 или 1?
     
    issaom нравится это.
  15. Igor68

    Igor68 Гуру

    Да не спорю я ни разу... особенно если много чего на кристалле и памяти вдоволь. Вы толком скажите поддержание связи там как аппаратная штуковина типа указал сеть, IP и прочее... и остаётся только делать запросы и принимать ответ? Так? Если так, то это не просто МК одиночка. Это уже своего рода "система на кристалле". Если вкл/выкл это мелочь, то формирование/поддержание связи в моём понятии отдельное устройство. Прошу прощения но ESP у меня нет, и с ними я не знаком. Есть малина, но это уже просто не МК.
     
  16. b707

    b707 Гуру

    ну-ну :)
    честно говоря, не пойму, о чем у вас спор...
     
  17. Igor68

    Igor68 Гуру

    Кстати это не по теме конечно... сервер mosquito на ПК собрал, надо собрать клиентов для отправки и приёма сообщений... на MOXA(имеется только предоставленный компилятор). К сожалению исходники сразу для сервера и клиентов (пока в терминологии не ориентируюсь - типа брокер и прочее). Интересно тем, что сообщения не обязательно текстовые. Сервер (наверное он и есть брокер) будет на ПК, а вот клиенты на иных платформах(например ARM9). Не разрулю вот пока... надо кроме SSL библиотек которые собрал ещё и websocket. Свой websocket собрал(тут на форуме есть)... но надо для сборки клиентов(передача и прием сообщений). Разные файлы. Испытал на Debian(BASH) удобно. Но надо для ARMV4tl. Попадалось может?
     
  18. Igor68

    Igor68 Гуру

    Кстати я часы беру от яндекса... в html в шапке ответа этим:
    Код (Bash):
    #!/bin/bash

    #MOXA
    USERNAME="1111"
    PASSWORD="2222"
    HOST="192.168.7.3" # это вообще-то прокси
    PORT="8080"             # это порт прокси
    DATEHOST="http://www.yandex.ru" # Хост с которого будем брать время
    sdate=`curl -I -x $USERNAME:$PASSWORD@$HOST:$PORT $DATEHOST`
    echo "$sdate"
    #ddate=$(echo "$sdate" | grep -E '^[[:space:]]*[dD]ate:' | \
    #sed 's/^[[:space:]]*[dD]ate:[[:space:]]*//' | \
    #head -1l | awk '{print $1, $3, $2,  $5 ,"GMT", $4 }' | \
    #sed 's/,//')
    sdate=$(echo "$sdate" | grep -E 'Date:' | sed 's/^[[:space:]]*[dD]ate:[[:space:]]*//' | sed 's/,//')
    echo "$sdate"
    DD=$(echo "$sdate" | awk '{print $2 }')
    MM=$(echo "$sdate" | awk '{print $3 }')
    case $MM in
            Jan) MM="01" ;;
            Feb) MM="02" ;;
            Mar) MM="03" ;;
            Apr) MM="04" ;;
            May) MM="05" ;;
            Jun) MM="06" ;;
            Jul) MM="07" ;;
            Aug) MM="08" ;;
            Sep) MM="09" ;;
            Oct) MM="10" ;;
            Nov) MM="11" ;;
            Dec) MM="12" ;;
    esac
    YYYY=$(echo "$sdate" | awk '{print $4}')
    TIME=$(echo "$sdate" | awk '{print $5 }')
    #
    ddate="$YYYY.$MM.$DD-$TIME"
    echo "$ddate" #для проверки и можно не печатать вовсе
    # тут установка часов (делаю при каждом включении в автостарте)
    if ! [ "$ddate" == "" ]; then
            date -s "$ddate"
    fi
     
    тут просто тестирование доступа к яндексу без чтения самой страницы, а в ответе есть дата и время
    В моём случае точность сколько-то секунд достаточна.
     
  19. Igor68

    Igor68 Гуру

    Думаю спор себя исчерпал... результат - быки и козы на своих местах:)
     
  20. b707

    b707 Гуру

    советую попробовать перл. Все, что вы делаете кучей запусков awk и sed - в перле можно сделать буквально в пару действий...
    Я когда-то тоже этими утилитами пользовался... но как втянулся в перл - все забыл. Они все становятся не нужными