Сигнальные процессоры. Аксенов В.П. - 64 стр.

UptoLike

Составители: 

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