こんにちは SAM です。
これは、スマートコンフィグレータのコード生成でポートを使ったときの話です。以下のような自作の型定義をして使おうとするとコンパイルエラーが出ます。
typedef enum{ LIGHT_ON = 0, LIGHT_OFF} light_level_t;
自作のヘッダーファイルに定義しましたが Config_PORT.hでは、インクルードするヘッダーファイルを追加できずr_cg_userdefine.h で定義するところにたどり着きました。開発環境は問題ないのです。light_level_t は r_cg_userdefine.h にあることを認識できます。
Config_PORT.cの内部では以下のようになっていてヘッダーファイルのインクルード順でエラーになります。
/***********************************************************************************************************************Includes***********************************************************************************************************************/#include "r_cg_macrodriver.h"#include "Config_PORT.h"/* Start user code for include. Do not edit comment generated here *//* End user code. Do not edit comment generated here */#include "r_cg_userdefine.h"
せめて r_cg_userdefine.h が Config_PORT.h の上に記述できればコンパイルは通ると思うのです。伺いたいのですが、コンパイラーの設定がどこかにあるのでしょうか。そもそも、コード生成で自作の typedef を許していないのでしょうか。
私が未熟なのかもしれません。分かる方いらっしゃったらよろしくお願いします。
/* Start user code for include. Do not edit comment generated here */
typedef enum{LIGHT_ON = 0,LIGHT_OFF} light_level_t;/* End user code. Do not edit comment generated here */
こうしてみては