Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С
Шрифт:
/********************************************************************/
/* CANONE.C Эта программа запускает плату 68HC12 и связывает ее с другой*/
/* платой 68HC12 с помощью контроллера CAN */
/* Авторы: Даниэль Пак и Стив Барретт */
/* Дата создания: 29 июля 2004 */
/********************************************************************/
line 0 #include "68HC12DP256.h"
line 1 void main
line 2 {
line 3 COPCTL=0x00; /*Выключить
сторожевой таймер COP*/
line 4 /*установить модуль CAN */
line 5 CAN0CTL1 = CAN0CTL1 | 0x80; /*разрешение для модуля CAN */
line 6 CAN0CTL1 = CAN0CTL1 & 0xEF; /*выключение режима LISTEN*/
line 7 while ((CAN0CTL1 | 0x01) == 0) /*режим инициализации CAN*/
line 8 {
line 9 CAN0CTL0 = CAN0CTL0 | 0x01;
line 10 }
line 11 CAN0BTR0 = 0xC1; /*установка бит синхронизации CAN*/
line 12 CAN0BTR1 = 0xF7;
line 13 CANOCTL0 = CAN0CTL0 & 0xFE;/*выход CAN из режима инициализации*/
line 14 while ((CAN0CTL0 & 0x10) == 0){} /*ожидание синхронизации*/
line 15 CAN0TBEL = 0x01; /*выбор передающего буфера 0 */
line 16 /*установка передающего буфера */
line 17 CAN0TXFG0 = 0xFF;
line 18 CAN0TXFG1 = 0xFF;
line 19 CAN0TXFG2 = 0xFF;
line 20 CAN0TXFG3 = 0xFE; /*RTR = 0 для кадра данных */
line 21 CAN0TXFG4 = 0x01; /*сообщение */
line 22 CAN0TXFG5 = 0x02;
line 23 CAN0TXFG6 = 0x03;
line 24 CAN0TXFG7 = 0x04;
line 25 CAN0TXFG8 = 0x05;
line 26 CAN0TXFG9 = 0x06;
line 27 CAN0TXFGA = 0x07;
line 28 CAN0TXFGB = 0x08;
line 29 CAN0TXFGC = 0x08; /*спецификатор длины данных */
line 30 CAN0TXFGD = 0x00;
line 31 while(1)
line 32 {
line 33 while ((CAN0TFLG & 0x01) == 0) /*ожидание флага окончания передачи */
line 34 CAN0TFLG = CAN0TFLG | 0x01; /*очистка флага */
line 35 }
line36 } /* конец основной программы */
/********************************************************************/
Команда на строке 3 выключает функцию сторожевого таймера COP контроллера. Команды на строках от 4 до 20 инициализируют контроллер msCAN12. Сначала, команда по строке 5 включает CAN контроллер. Команда на строке 6 выключает режим LISTEN, используемый для контроллеров, которые только прослушивают
Ниже приведена программа, которая определяет работу второго МК, показанного в нижней части рис. 9.32.
/**********************************************************************/
/* CANTWO.C Эта программа запускает плату 68HC12 и связывает ее с другой */
/* платой 68HC12 с помощью контроллера CAN */
/* Авторы: Даниэль Пак и Стив Барретт */
/* Дата создания: 29 июля 2004 */
/**********************************************************************/
line 0 #include "68HC12DP256.h"
line 1 void main
line 2 {
line 3 COPCTL=0x00; /*Выключить сторожевой таймер COP */
line 4 /*установить модуль CAN */
line 5 CAN0CTL1 = CAN0CTL1 | 0x80; /*разрешение для модуля CAN */
line 6 CAN0CTL1 = CAN0CTL1 & 0xEF; /*выключение режима LISTEN */
line 7 while ((CAN0CTL1 | 0x01) == 0) /*режим инициализации CAN */
line 8 {
line 9 CAN0CTL0 = CAN0CTL0 | 0x01
line 10 }
line 11 CANOBTR0 = 0xC1; /*установка бита синхронизации CAN*/
line 12 CAN0BTR1 = 0xF7;
line 13 CAN01DM0 = 0xFF; /*прием всех сообщений */
line 14 CAN01DM1 = 0xFF;
line 15 CAN01DM2 = 0xFF;
line 16 CAN01DM3 = 0xFF;
line 17 CAN01DM4 = 0xFF;
line 18 CAN01DM5 = 0xFF;
line 19 CAN01DM6 = 0xFF;
line 20 CAN01DM7 = 0xFF;
line 21 CAN0CTL0 = CAN0CTL0 & 0xFE; /*выход CAN из режима инициализации */
line 22 while ((CAN0CTL0 & 0x10) == 0){} /*ожидание синхронизации */
line 23 /*ожидание сообщения */
line 24 while ((CAN0RFLG & 0x01) == 0){} /*ожидание флага сообщения */
Поделиться:
Популярные книги
Мир-о-творец
8. Помещик
Фантастика:
альтернативная история
5.00
рейтинг книги
Темный Лекарь 4
4. Темный Лекарь
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Жестокая свадьба
Любовные романы:
современные любовные романы
4.87
рейтинг книги
Новый Рал
1. Рал!
Фантастика:
фэнтези
попаданцы
5.70
рейтинг книги
Жена на пробу, или Хозяйка проклятого замка
Фантастика:
попаданцы
фэнтези
5.00
рейтинг книги
Проиграем?
Любовные романы:
современные любовные романы
6.33
рейтинг книги
Сумеречный Стрелок 10
10. Сумеречный стрелок
Фантастика:
рпг
аниме
фэнтези
5.00
рейтинг книги
Диверсант
2. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
5.00
рейтинг книги
Кротовский, вы сдурели
4. РОС: Изнанка Империи
Фантастика:
попаданцы
альтернативная история
рпг
5.00
рейтинг книги
Возвышение Меркурия
1. Меркурий
Фантастика:
героическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Неудержимый. Книга XIII
13. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Никто и звать никак
Фантастика:
фэнтези
7.18
рейтинг книги
Береги честь смолоду
1. Порог Хирург
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Пожиратели миров. 3 том
3. Сердце реальности
Фантастика:
боевая фантастика
попаданцы
аниме
5.00