ВУЗ:
Составители:
64
Аналогично для записи единицы в один из 16 разрядов с сохранением ос-
тальных 15 разрядов используется поразрядное логическое сложение. Пораз-
рядное логическое сложение двух чисел с помощью команды ''or'' определяет
результат умножения в каждом разряде 0 + Х = Х, 1 + Х = 1. Единица должна
быть в том же разряде константы, в котором необходимо записать единицу в
регистр. Остальные 15 разрядов константы равны нулю.
Листинг 2. Программирование сигнала RFS на ввод, TFS - на вывод
#include ''constant.h''; /* подключаем файл с именами регистров */
ax0 = dm(SPORT0_Control_Reg); /* читаем регистр 0x3FF6 и сохраняем
его в регистре ax0 */
ay0 = b#1111111011111111; /* маска разряда 8 */
ar = ax0 and ay0; /* поразрядное умножение регистров ax0 и ay0
обнуляет разряд 8 регистра ar и сохраняет остальные 15 разрядов ax0 */
dm(SPORT0_Control_Reg) = ar; /* записываем ar в регистр 0x3FF6
с 0 в разряде 8, вывод RFS процессора запрограммирован на ввод */
ax0 = dm(SPORT0_Control_Reg); /* читаем регистр 0x3FF6 и сохраняем
его в регистре ax0 */
ay0 = b#0000001000000000; /* маска разряда 9 */
ar = ax0 or ay0; /* поразрядное логическое сложение ax0 и ay0
устанавливает разряд 9 регистра ar и сохраняет 15 разрядов ax0 */
dm(SPORT0_Control_Reg) = ar; /* записываем ar в регистр 0x3FF6
с 1 в разряде 9, вывод TFS процессора запрограммирован на вывод */
Файл constant.h
#define SPORT1_Autobuf 0x3FEF
#define SPORT1_RFSdiv 0x3FF0
#define SPORT1_SCLKdiv 0x3FF1
#define SPORT1_
Control_Reg
0x3FF2
#define SPORT0_Autobuf 0x3FF3
#define SPORT0_RFSdiv 0x3FF4
#define SPORT0_SCLKdiv 0x3FF5
#define SPORT0_
Control_Reg
0x3FF6
#define SPORT0_TX_
Channels0
0x3FF7
#define SPORT0_TX_Channels1 0x3FF8
#define SPORT0_RX_Channels0 0x3FF9
#define SPORT0_RX_Channels1 0x3FFA
#define TSCALE 0x3FFB
#define TCOUNT 0x3FFC
#define TPERIOD 0x3FFD
#define DM_Wait_Reg 0x3FFE
#define System_Control_Reg 0x3FFC
Листинг 2. Программирование сигнала RFS на ввод, TFS - на вывод
#include ''constant.h''; /* подключаем файл с именами регистров */
ax0 = dm(SPORT0_Control_Reg); /* читаем регистр 0x3FF6 и сохраняем
его в регистре ax0 */
ay0 = b#1111111011111111; /* маска разряда 8 */
ar = ax0 and ay0; /* поразрядное умножение регистров ax0 и ay0
обнуляет разряд 8 регистра ar и сохраняет остальные 15 разрядов ax0 */
dm(SPORT0_Control_Reg) = ar; /* записываем ar в регистр 0x3FF6
с 0 в разряде 8, вывод RFS процессора запрограммирован на ввод */
ax0 = dm(SPORT0_Control_Reg); /* читаем регистр 0x3FF6 и сохраняем
его в регистре ax0 */
ay0 = b#0000001000000000; /* маска разряда 9 */
ar = ax0 or ay0; /* поразрядное логическое сложение ax0 и ay0
устанавливает разряд 9 регистра ar и сохраняет 15 разрядов ax0 */
dm(SPORT0_Control_Reg) = ar; /* записываем ar в регистр 0x3FF6
с 1 в разряде 9, вывод TFS процессора запрограммирован на вывод */
Файл constant.h
#define SPORT1_Autobuf 0x3FEF
#define SPORT1_RFSdiv 0x3FF0
#define SPORT1_SCLKdiv 0x3FF1
#define SPORT1_Control_Reg 0x3FF2
#define SPORT0_Autobuf 0x3FF3
#define SPORT0_RFSdiv 0x3FF4
#define SPORT0_SCLKdiv 0x3FF5
#define SPORT0_Control_Reg 0x3FF6
#define SPORT0_TX_Channels0 0x3FF7
#define SPORT0_TX_Channels1 0x3FF8
#define SPORT0_RX_Channels0 0x3FF9
#define SPORT0_RX_Channels1 0x3FFA
#define TSCALE 0x3FFB
#define TCOUNT 0x3FFC
#define TPERIOD 0x3FFD
#define DM_Wait_Reg 0x3FFE
#define System_Control_Reg 0x3FFC
Аналогично для записи единицы в один из 16 разрядов с сохранением ос-
тальных 15 разрядов используется поразрядное логическое сложение. Пораз-
рядное логическое сложение двух чисел с помощью команды ''or'' определяет
результат умножения в каждом разряде 0 + Х = Х, 1 + Х = 1. Единица должна
быть в том же разряде константы, в котором необходимо записать единицу в
регистр. Остальные 15 разрядов константы равны нулю.
64
Страницы
- « первая
- ‹ предыдущая
- …
- 62
- 63
- 64
- 65
- 66
- …
- следующая ›
- последняя »
