Выбрать главу

Выполните трансляцию этой программы, нажав клавишу F7. Затем выполните ее, нажав клавишу F5. После выполнения программы в правой части экрана откроется окно дизассемблера, в котором будет присутствовать текст программы на языке ассемблера. Этот текст позволяет увидеть соответствие операторов языка «Си» набору ассемблерных инструкций. Для просмотра результата работы программы необходимо открыть окно памяти данных с помощью команды Memory→Data. По умолчанию, в этом окне данные отображаются в шестнадцатеричном виде. Для отображения результатов в знаковом целочисленном виде щелкните на окне правой кнопкой мыши и в открывшемся контекстном меню (рис. 26.1) выберите формат Select Format→Signed Integer.

Рис. 26.1. Контекстное меню

В результате данные в окне будут представлены в более привычном для человека виде (рис. 26.2).

Рис. 26.2. Данные в окне представлены в более привычной для человека форме

Как видно, результат работы программы оказался абсолютно точен. Заметьте, что благодаря лаконичности записи, присущей языку высокого уровня «Си», программа для вычисления тригонометрических функций состоит всего лишь из несколько строк. Для написания подобной программы на ассемблере понадобилось бы несколько десятков строк.

Теперь немного усложним программу, изменив ее текст на тот, что приведен ниже:

#include <math.h>

#define PI 3.14159 /* Число Пи */

#define D PI/180.0 /* Число Дельта */

#define N 100 /* Число отсчетов */

float y1[N], y2[N];

main() {

 int i;

 for (i=0; i<N; i++) {

  y1[i] = sin(10.0*i*D);

  y2[i] = cos(10.0*i*D);

 }

}

Здесь определены два массива y1 и y2 с данными в формате float. Значения этих массивов будут вычисляться в цикле for для N значений аргумента функций синуса и косинуса.

Выполните трансляцию программы и установите точку останова на последней строчке программы. После чего запустите программу на выполнение. Через несколько секунд выполнение программы завершится. Для просмотра результата ее работы откройте новое окно графопостроителя. Для этого выполните команду View→Debug Windows→Plot→New. В открывшемся окне задайте значения всех полей в соответствии с рис. 26.3 и нажмите программную кнопку «Browse».

Рис. 26.3. Окно для задания значений полей

В новом открывшемся окне (рис. 26.4) найдите и выделите в памяти данных строку с массивом y1, после чего нажмите кнопку «OK».

Рис. 26.4. Окно для сопровождения работы программы

Нажмите в окне Plot Configuration программную кнопку «Add». При этом в поле Data sets появится запись Data set1. Теперь еще раз нажмите программную кнопку «Browse» и выделите в памяти данных строку с массивом y2, после чего нажмите кнопку «OK». Вновь нажмите в окне Plot Configuration программную кнопку Add. После этих действий в поле Data sets появится новая запись Data set2. Убедитесь, что строке Data set1 соответствует адрес y1, а строке Data set2 — адрес y2, выделяя по очереди каждую из строк в окне Plot Configuration. Для обеих строк данные должны иметь тип float. Если это не так — исправьте формат данных на float.

Теперь нажмите в окне кнопку «OK», разверните окно с графиками результатов работы программы (рис. 26.5).

Рис. 26.5. Кривые функций синуса и косинуса

Как видно из рисунка, графики представляют собой кривые функций синуса и косинуса, полученные из результатов работы программы.

С помощью графопостроителя можно увидеть и спектр сигналов. Для этого необходимо щелкнуть правой кнопкой мыши по окну с графиками и в открывшемся контекстном меню выбрать команду Modify Setting.

Далее в открывшемся окне Plot Setting открыть закладку Data Processing и выделить в поле Data Process строку FF Magnitude (рис. 26.6).

Рис. 26.6. Окно для сопровождения дальнейшей работы программы

После чего закрыть окно, нажав кнопку OK. В результате график преобразуется к виду, приведенному на рис. 26.7.

Рис. 26.7. Функция косинуса и спектр функции синуса

Здесь отображены одновременно функция косинуса и спектр функции синуса.

Подобным образом можно производить вычисление и других математических функций, для которых существуют готовые библиотеки в трансляторе языка Си. Среда разработки Visual DSP++ содержит ряд других примеров, в том числе на языке Си, изучив которые, можно расширить объем знаний в этой области. Кроме того, встроенная справочная система среды разработки дает большой объем дополнительной информации по многим вопросам, возникающим в процессе программирования.