Если пытаюсь использовать две библиотеки: Код (C++): var lcoder = require('@amperka/digital-line-sensor').connect(P9); var receiver = require('@amperka/ir-receiver').connect(P3); получаю такое предупреждение: Что сделать чтобы использовать библиотеки и не ловить потом чертей из-за этого конфликта? Ну и отвечу сразу сам для тех, кто увидит то-же самое и испугается: надо переставить конфликтующую пару в другие порты. Например P7 и P3 у меня не приводят к такому сообщению. ...но логика моторов, которая работала на портах P9 и P10 - перестала работать на портах P7 и P10...что за жесть? Где почитать пояснения к этим особенностям? РЕШЕНИЕ: переставить Р9 на Р8 для левого энкодера
@NikitOS можете подсказать здесь? Эти две библиотеки несовместимы? Какие порты нужно использовать другие, чтобы они перестали конфликтовать? Вот функции портов, которые отдаёт искра: Код (C++): >WARNING: Unable to set watch. You may already have a watch on a pin with the same number (eg. A0 and B0), or this pin cannot be used with watch >print(P9.getInfo()) { "port": "C", "num": 7, "in_addr": 1111556636, "out_addr": 1111556764, "functions": { "USART6": { "type": "RX", "af": 0 }, "TIM3": { "type": "CH2", "af": 0 }, "TIM8": { "type": "CH2", "af": 0 } } } =undefined >print(P3.getInfo()) { "port": "A", "num": 7, "in_addr": 1111491100, "out_addr": 1111491228, "channel": 7, "functions": { "TIM14": { "type": "CH1", "af": 0 }, "TIM8": { "type": "CH1N", "af": 0 }, "SPI1": { "type": "MOSI", "af": 0 }, "TIM1": { "type": "CH1N", "af": 0 }, "TIM3": { "type": "CH2", "af": 0 } } } =undefined >print(P3.getMode()) input_pullup =undefined >print(P9.getMode()) input =undefined
Код (C++): "TIM3": { "type": "CH2", ^^^ есть в обоих, похоже... ...так как приёмник у меня работает только на P3 пришлось переставить P9 на P8. И всё-же вопрос, как и откуда я мог бы это узнать? Только методом тыка? Это же самые стандартные функции, почему они несовместимы "из коробки"?
В обоих модулях используется функция setWatch для остслеживания изменений на пинах. Если посмотреть в документацию к функции на официальном сайте, можно увидеть примечание: Далее открываем распиновку платы: Видим, что P3 == A7, P9 == C7, что как раз попадает под то ограничение, о котором писалось в документации. Является ли это проблемой модулей? Не думаю.