ESP-32에서 C ++을 사용합니다. 타이머를 등록 할 때 다음을 수행해야합니다.
timer_args.callback = reinterpret_cast<esp_timer_cb_t>(&SoundMixer::soundCallback);
timer_args.arg = this;
여기 타이머가 호출합니다 soundCallback
.
작업을 등록 할 때도 마찬가지입니다.
xTaskCreate(reinterpret_cast<TaskFunction_t>(&SoundProviderTask::taskProviderCode), "SProvTask", stackSize, this, 10, &taskHandle);
따라서이 방법은 분리 된 작업에서 시작됩니다.
GCC는 항상 이러한 전환에 대해 경고하지만 계획대로 작동합니다.
프로덕션 코드에서 허용됩니까? 더 좋은 방법이 있습니까?
std::bind
객체 포인터를 첫 번째 메소드 인수로 가정 하지 않습니까?