logo
HCS12 с применением языка С - royallib

Регистры скорости обмена sCxBdh и sCxBdl

Два 8-разрядных регистра SCxBDH и SCxBDL предназначены для управления скоростью обмена по последовательному интерфейсу SCI. Для назначения желаемой скорости используются разряды SBR12…SBR0 этих двух регистров (рис. 4.63). Число, которое следует записать в эти разряды может быть определено с использованием таблицы рис. 4.62 или рассчитано по формуле:

SBR = PCLOCK/(16×BAUD_RATE),

где SBR — десятичный эквивалент двоичного кода, который должен быть записан в разряды SBR12…SBR0 регистров SCxBDH и SCxBDL, PCLOCK — частота импульсной последовательности PCLK в Герцах, BAUD_RATE — частота обмена в бодах.

Рис. 4.62. Выбор коэффициента деления модуля SCI

Рис. 4.63. Формат регистра скорости обмена SCxBDH/SCxBDL

Пример

Необходимо настроить первый контроллер асинхронного обмена (SCI0) на скорость 9600 бод. Если частота импульсной последовательности PCLK равна 8 МГц, то коэффициент деления, который должен быть записан в регистры SC0BDH и SC0BDL, равен:

SBR0 = 8000000/(16×9600) = 52 = $34

Следующий программный фрагмент реализует инициализацию скорости обмена:

/*----------------------*/

/* filename: ini_SCI0.c */

/*----------------------*/

#include <912b32.h>

void main(void) {

 SC0BDH = 0х00;

 SC0BDL = 0х34;

}

/*----------------------*/