■マイコン:RL78(R5F10EGE)
上記のマイコンを使用しています。X1/P121端子、X2/EXCLK/P122端子に水晶発振子を接続し、プログラム起動時にCPUクロックを「高速オンチップ・オシレータ」から「高速システムクロック」に切り替えようと試みていますが、うまくクロックが切り替わってくれません。何が原因なのかを特定するのに苦慮しております。アドバイスがございましたらご教授いただけると助かります。
以下、該当箇所(クロック切り替え)のプログラムです。
void R_CGC_Create(void){ uint8_t temp_stab_set; uint8_t temp_stab_wait;
/* Set fMX */ CMC = 0x40U; OSTS = 0x07U; MSTOP = 0U; temp_stab_set = 0xFFU; do { temp_stab_wait = OSTC; temp_stab_wait &= temp_stab_set; } while (temp_stab_wait != temp_stab_set); /* Set fMAIN */ MCM0 = 1U; while (MCS == 0U); /* Set fSUB */ XTSTOP = 1U; OSMC = 0x10U; /* Set fCLK */ CSS = 0U; /* Set fIH */ HIOSTOP = 1U;}
現象としては、上記のプログラムの中の、while (temp_stab_wait != temp_stab_set);でwhile文のループから抜けなくなります。
試しに上記のWhile文のループをコメントアウトすると、今度はwhile (MCS == 0U);で同じくwhile文のループから抜けなくなります。