Чтение онлайн

ЖАНРЫ

Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С

Пак Дэниэл Дж.

Шрифт:

 ATD1CTL3 = 0x00; // функция установки ATD

 ATD1CTL4 = 0x80; //установить 8-разрядный режим

 PORTB = 0xFE; //показать состояние программы на линейке

// светодиодов

 // Инициализация режима входного захвата

 TSCR1 = 0x80; //включение таймера (нормальный режим)

 TSCR2 = 0x80; //установить период переполнения счетчика временной

// базы 8.192 мс, коэффициент деления = 1

 TIOS = 0x00; //установить каналы таймера
в режим входного захвата

 TMSK1 = 0xE0;//биты разрешения прерывания по событиям на линиях [7:5]

 TFLG1 = 0xE0; //очистить флаги прерываний TFLG1

 PORTB = 0xFC; // показать состояние программы на линейке светодиодов

 // инициализация ШИМ

 PWMCTL = 0x00; //установить 8-разрядный режим

 PWMCAE = 0x10; //установить фронтовую ШИМ

 PWMPOL = 0x5F; //выбрать активным высокий логический уровень

//назначить режим ШИМ для каналов 0,1,2,3,4 и 6

 PWMCLK = 0x50; //каналы 0,1,4 тактируются CLOCK_A и каналы

//2,3,6 - CLOCK_В

 PWMSCLA = 0x20; //период A 0x20 = 4.1 мс

 PWMSCLB = 0x04; //период B 0x02 = 255 мкс, выбрать

// наибольший коэффициент заполнения для всех каналов

 PWMPER0 = 255;

 PWMPER1 = 255;

 PWMPER2 = 255;

 PWMPER3 = 255;

 //Запуск двигателей

 PWME = PWME | 0x5F; // разрешения режима ШИМ для каналов 0,1,2,3,4 и 5

 PWMDTY0 = 80; // установить коэффициенты заполнения

// для каналов 0,1,2 и 3

 PWMDTY1 = 80;

 PWMDTY2 = 80;

 PWMDTY3 = 80;

 // Взлет

 while (PWMTY0 < 200) {

PWMDTY0 = PWMDTY0 + 1;

PWMDTY1 =PWMDTY1 + 1;

PWMDTY2 = PWMDTY2 + 1;

PWMDTY3 = PWMDTY3 + 1;

 }

 P = 20;

 // установить коэффициенты заполнения для двигателей на режим полета

 while (battery == 1) //проверить включение батареи

 {

// двигатель 1

ATD0CLT5 = 0x04; //режим оцифровки многоканальный

while ((ATD0STAT0 & 0x80) == 0);

sensoravg = ATD0DR4H; //установить PAD00 для датчика 1

if ((int)sensoravg > 80) {

PWMDTY0 = PWMDTY0 + 20;

delay2;

for (i=0; i<p; i++) PWMDTY0--;

}

// двигатель 2

ATD0CLT5 = 0x04;

while ((ATD0STAT0 & 0x80) == 0);

sensoravg = ATD0DR5H; //установить PAD00 для датчика 2

if ((int)sensoravg > 80) {

PWMDTY1 = PWMDTY1 + 20;

delay2;

for (i=0; i<p; i++) PWMDTY1--;

}

//
двигатель 3

ATD0CLT5 = 0x04;

while ((ATD0STAT0 & 0x80) == 0);

sensoravg = ATD0DR6H; //установить PAD00 для датчика 3

if ((int)sensoravg > 80) {

PWMDTY2 = PWMDTY2 + 0;

delay2;

for (i=0; i<p; i++) PWMDTY2--;

}

// двигатель 4

ATD0CLT5 = 0x04;

while ((ATD0STAT0 & 0x80) == 0);

sensoravg = ATD0DR7H; //установить PAD00 для датчика 4

if ((int)sensoravg > 80) {

PWMDTY7 = PWMDTY7 + 20;

delay2;

for (i=0; i<p; i++) PWMDTY7--;

}

 } //конец while

 // снизить скорость двигателей для посадки

 while (PWMDTY0 > 80) {

PWMDTY0--;

PWMDTY1--;

PWMDTY2--;

PWMDTY3--;

delay1;

 }

 // остановить двигатели

 PWME = 0x00;

}

//********************************************************************

7.5.6. Некоторые комментарии

Вышеупомянутая программа — неполная версия программы парящего робота. Читатели обратят внимание, что она содержит только простой алгоритм управления. Кроме того, из-за проблем дрейфа, полученных в экспериментах с гиродатчиками, для предотвращения столкновений с препятствиями в программе используются только инфракрасные датчики.

7.6. Система защиты компьютера, основанная на нечеткой логике 

7.6.1. Описание проекта

В этом разделе описана основанная на нечеткой логике система защиты от вторжения, которая может защитить ваш компьютер от несанкционированного внешнего доступа. В частности, рассматриваемая система может с помощью встроенных в МК 68HC12/HCS12 функций поддержки нечеткой логики обнаруживать внедрение постороннего гипертекста (HTTP) при туннелировании информации по сетевой шине компьютера. Туннелирование применяется для легальной установки сеансов связи между ведущим компьютером внутри компьютерной сети и компьютером, внешним по отношению к этой сети. «Злоумышленник» использует такой внешний компьютер, чтобы установить тайный сеанс связи, формируя несанкционированные сообщения внутри пакетов обычного протокола HTTP. Чтобы предотвратить такие действия, общество защиты компьютерной информации разработало в прошедшем десятилетии ряд информационных систем. Цель описываемой микроконтроллерной системы защиты состоит не в том, чтобы заменить существующие коммерческие системы, а в том, чтобы помогать таким системам, оценивая присутствие в данных сетевого трафика внедренных посторонних HTTP сообщений.

Поделиться с друзьями: