Arduino와 함께 여러 DS18B20을 사용하려고합니다. 대부분의 예에서, 센서는 다음과 같이 initalized된다간접 지정 : Arduino
여러 버스를#define ONE_WIRE_BUS 2
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
sensors-> begin();
, 나는 다른 장치에 추가 할 수 있습니다 내 프로그램에서
#define ONE_WIRE_BUS_B 5
OneWire oneWire_B(ONE_WIRE_BUS_B);
DallasTemperature sensors_B(&oneWire_B);
sensors_B-> begin();
을하기 때문에, 나는 얼마나 많은 버스를 알고,하지 어떤 GPIO를 사용할 것인가, 간접 사용 (최대 5 개 버스 사용)을 시도했습니다.
onewire_bus[0] = new OneWire(2);
ds_bus[0] = new DallasTemperature(onewire_bus[0]);
ds_bus[0]-> begin();
...
onewire_bus[1] = new OneWire(5);
ds_bus[1] = new DallasTemperature(onewire_bus[1]);
ds_bus[1]-> begin();
이 방법은 분명히 잘못된 주소의 증상 보드 동결을하고있다 :
OneWire* onewire_bus[5];
DallasTemperature* ds_bus[5];
는 그럼으로 다양한 버스를 초기화합니다.
간접 지정을 사용하는 방법에있어 잘못된 점은 무엇입니까?
c 또는 C++? 질문은 무엇입니까? – user463035818
[mcve]를 제공하십시오. 표시된 코드에서 분명히 잘못된 (포인터 관리 측면에서) 어떤 것도 볼 수 없습니다. –
질문은 [tag : c]로 작성된 프로그램이 아니므로 태그를 지정하지 마십시오. –