ETrobocon / RasPike

11 stars 11 forks source link

(RasPike-ART)グローバルコンストラクタでモーターを初期化するとエラーとなる #19

Closed ytoi closed 3 months ago

ytoi commented 3 months ago

C++でモーターのクラスを作って、そのコンストラクターでモーターの初期化を定義した場合、そのクラスをグローバル変数として定義するとグローバルコンストラクターとして初期化を行おうとする。 しかし、このタイミングではRasPike-ARTの初期化が行われていないため、エラーとなる。

現在videv_initで初期化を行なっているが、コンストラクターの優先順位の高いもので初期化するようにする。

ytoi commented 3 months ago

グローバルコンストラクターで初期化を行うようにしたが、main()より前に初期化しないといけないので、device_configを使えない。RasPike-ARTブランチではデフォルトをUSB/ARTモードにすることで対応した。

また、ev3api.cでコンストラクターの呼び出しが行われていたため、2重で初期化が行われていたため、この呼び出しをやめるようにした。