Сначала вы можете посмотреть на напряжение питания.В случае, если во время запуска наблюдается скачок, DCO не будет работать.В этом случае попробуйте использовать задержку прямо перед выравниванием значений по BCSCTL1.
__delay_cycles(10000);
BCSCTL1 = CALBC1_1MHZ; // Sets DCO range
Это обеспечит подавление всплеска запуска.
Следующий подозреваемый будет отключенВаша целевая доска.Я имею в виду конденсатор на VCC, а также тот, который используется в перезагрузке.TI рекомендует 1 нФ-2 нФ для линии сброса и 0,1 мкФ для VCC.Но если вы используете LaunchPad в качестве платформы, это не должно быть проблемой.
Также для присвоений значений калибровки используйте операторы присваивания, а не логические операторы.Поскольку другие значения, равные 0, являются значениями по умолчанию.
BCSCTL1 = CALBC1_1MHZ; // Set DCO
DCOCTL = CALDCO_1MHZ;
Если вы планируете запустить XT2, он не доступен в G2231.Его LFXT1 напрямую.Вам не нужна явная инициализация для кристалла 32,768 кГц для работы.Это просто работает, когда вы включаете.Таким образом, дополнительный шаг инициализации не требуется.
Чтобы найти более эффективную помощь, посмотрите slac463a примеры программного обеспечения, связанные с настройкой часов.