Как в ESP32 писать в регистры ввода-вывода?
Я загуглил этот вопрос, интернет мне выдает типа этого:
gpio_set_level(GPIO_NUM_12, 1);
Но это же по-неправильному! Сейчас объясню.
Когда я учился программировать ардуино, там было два способа отправить (или принять) сигнал от микроконтроллера вовне:
Первый, (ардуинский) способ типа того:
pinMode(10, OUTPUT);
digitalWrite(10, HIGH);
Второй, (сишный) способ типа этого:
PORTB = 0x67;
Вторым способом никто не пользуется, а первый способ - плохой: он в тысячи (не преувеличиваю) раз медленнее, во-первых, а во-вторых, он позволяет записать и (или) прочитать только одну ножку, а второй способ позволяет записать и (или) прочитать сразу много ножек. Только так возможно не просто "помигать светодиодом при нажатии на кнопку", а подключить дисплей, например, или микрофон, и вообще что-то нормальное (но пытаясь подключить камеру я понял, что ардуино слишком слабые, а потому нафиг они нужны, если ESP32 в кучу раз круче за те же деньги. Ещё круче только одноплатные компьютеры, но с ними другая история...
Так что я перешел на ESP32 (на готовую плату, а не на голый чип). Пишу программу в EspressifIDE.
Что такое gpio_set_level(GPIO_NUM_12, 1); среда разработки даже не знает (видимо это опять ардуинское), а мне хочется понять, как нормально на си взаимодействовать с ножками
Типа как запись PORTB = 0x67;
И чтение data = (PINC & 15) | (PIND & 240), но не на ардуино, а в ESP32.
Простите за сумбурное объяснение...
Мы делаем так, для среды в которой ты программируешь открываем примеры и берём из примера.
У меня для ESP32 - Arduino IDE
подключается туда среда программирования в ней примеры.
вот ты сам пишешь, что сначала разрешить использование ноги, а потом записать. Всё тоже и мы делаем.
Если не работает - переходишь на другую ногу, по тому, что выход может сгореть от твоих опытов.
См решаю