- •Глава 1. Сведения о компиляторе
- •1.1.Введение
- •1.2. Основные вопросы
- •1.3. Описание компилятора и документация
- •1.4. Компилятор и другие средства разработки
- •1.5. Набор возможностей компилятора
- •1.5.1. Стандарт ANSI Си
- •1.5.2. Оптимизация
- •1.5.3. Поддержка стандартной ANSI библиотеки
- •1.5.4. Гибкие модели памяти
- •1.5.5. Драйвер компилятора
- •Глава 2. Отличия 16-битового компилятора от ANSI
- •2.1. Введение
- •2.2. Основные вопросы
- •2.3. Отличия ключевых слов
- •2.3.1. Определение атрибутов переменных
- •2.3.2. Определение атрибутов функций
- •2.3.3. Inline функции
- •2.3.4. Переменные в определенных регистрах
- •2.3.4.1. Определение глобальных регистровых переменных
- •2.3.4.2. Определение локальных регистровых переменных
- •2.3.5. Комплексные числа
- •2.3.6. Целые размером в двойное слово
- •2.3.7. Ссылки на тип с помощью typeof
- •2.4. Отличия операторов
- •2.4.1. Метки как значения
- •2.4.2. Условные операторы с опущенными операндами
- •2.4.3. Диапазоны case
- •2.5. Отличия выражений
- •2.5.1. Двоичные константы
- •Глава 3. Использование компилятора в командной строке
- •3.1. Введение
- •3.2. Основные вопросы
- •3.3. Обзор
- •3.4. Соглашение для имен файлов
- •3.5. Опции
- •3.5.1. Опции, специфические для устройств dsPIC
- •3.5.2. Опции для управления типом результатов
- •3.5.3. Опции для управления диалектом Cи
- •3.5.5. Опции для отладки
- •3.5.6. Опции для управления оптимизацией
- •3.5.7. Опции для управления препроцессором
- •3.5.8. Опции для ассемблера
- •3.5.9. Опции для компоновщика
- •3.5.10. Опции для поиска в каталогах
- •3.5.11. Опции для соглашений по генерации кода
- •3.6. Переменные окружения
- •3.7. Предопределенные имена макро
- •3.9. Компиляция нескольких файлов в командной строке
- •3.10. Особенные символы
- •Глава 4. Среда периода исполнения
- •4.1. Введение
- •4.2. Основные вопросы
- •4.3. Адресное пространство
- •4.4. Запуск и инициализация
- •4.5. Пространства памяти
- •4.6. Модели памяти
- •4.6.1. Ближние и дальние данные
- •4.6.2. Ближний и дальний код
- •4.7. Расположение кода и данных
- •4.8. Программный стек
- •4.9. Использование стека в Си
- •4.11. Соглашения по вызову функций
- •4.11.1. Параметры функции
- •4.11.2. Возвращаемое значение
- •4.12. Соглашения о регистрах
- •4.13. Двоичная инверсия и модульная адресация
- •4.14.1. Загрузочные и защищенные константы
- •4.14.2. Строковые константы как аргументы
- •4.14.3. Переменные с квалификатором const в безопасной Flash
- •4.14.4. Модель совместимости объектов
- •Глава 5. Типы данных
- •5.1. Введение
- •5.2. Основные вопросы
- •5.3. Представление данных
- •5.4. Целые
- •5.5. С плавающей точкой
- •5.6. Указатели
- •Глава 6. Дополнительные типы указателей Си
- •6.1. Введение
- •6.2. Управляющие PSV указатели
- •6.2.1. Определение данных для управления доступом PSV
- •6.2.2. Управляемый доступ PSV
- •6.2.3. Рассмотрение ISR
- •6.3. PMP указатели
- •6.3.1. Инициализация PMP
- •6.3.2. Объявление нового пространства памяти
- •6.3.3. Определение переменных в пространстве PMP
- •6.4. Внешние указатели
- •6.4.1. Объявление нового пространства памяти
- •6.4.2. Определение переменных во внешнем пространстве
- •6.4.3. Определение способа доступа к пространству памяти
- •6.4.3.2. Функции записи
- •6.4.4. Пример внешней памяти
- •Глава 7. Файлы поддержки устройства
- •7.1. Введение
- •7.2. Основные вопросы
- •7.3. Файлы заголовков процессора
- •7.4. Файлы определения регистров
- •7.5. Использование SFR
- •7.6. Использование макросов
- •7.6.1. Макросы настройки битов конфигурации
- •7.6.2. Макросы использования ассемблера inline
- •7.6.3. Макросы выделения памяти данных
- •7.6.4. Макросы объявления ISR
- •7.7. Адресация EEDATA из Си - только для dsPIC30F
- •7.7.1. Доступ к EEDATA через PSV
- •7.7.2. Доступ к EEDATA посредством команд TBLRDx
- •7.7.3. Дополнительные источники информации
- •Глава 8. Прерывания
- •8.1. Введение
- •8.2. Основные вопросы
- •8.3. Написание программы обработки прерывания
- •8.3.1. Рекомендации по написанию ISR
- •8.3.3. Кодирование ISR
- •8.3.4. Использование макросов для объявления простых ISR
- •8.4. Запись вектора прерывания
- •8.4.1. Вектора прерываний dsPIC30F (без SMPS)
- •8.4.3. Вектора прерываний PIC24F
- •8.4.4. Вектора прерываний dsPIC33F/PIC24H
- •8.5. Сохранение контекста в ISR
- •8.7. Вложенные прерывания
- •8.8. Разрешение/запрещение прерываний
- •8.9. Разделение памяти между основной программой и ISR
- •8.9.1. Разработка проблем
- •8.9.2. Разработка решений
- •8.9.3. Пример приложения
- •8.10. Использование PSV в ISR
- •Глава 9. Совместное использование ассемблера и Си
- •9.1. Введение
- •9.2. Основные вопросы
- •9.3. Смесь переменных и функций на ассемблере и Си
- •9.4. Использование ассемблера inline
- •Приложение A. Определяемое реализацией поведение
- •A.12. Квалификаторы
- •A.13. Деклараторы
- •A.14. Операторы
- •A.17. Сигналы
- •A.18. Потоки и файлы
- •A.20. Errno
- •A.22. Abort
- •A.23. Exit
- •A.24. Getenv
- •A.25. Система
- •A.26. Strerror
- •Приложение B. Встроенные функции
- •B.2. Список встроенных функций
- •Приложение C. Диагностика
- •Приложение D. Компиляторы Си PIC18 и PIC24/dsPIC
- •D.6. Использование стека
- •D.11. Банк доступа
- •D.12. Inline ассемблер
- •D.13. Прагмы
- •D.14. Модели памяти
- •D.15. Соглашения о вызове
- •D.16. Код запуска
- •D.17. Управляемые компилятором ресурсы
- •D.18. Оптимизация
- •D.20. Определяемое реализацией поведение
- •D.21. Битовые поля
Глава 8. Прерывания
ТАБЛИЦА 8-2. (ПРОД-Е) ВЕКТОРА ПРЕРЫВАНИЙ dsPIC30F (С SMPS)
Номер |
Основной |
|
Альтернативный |
||
18 |
_PWMSpEvent |
|
_AltPWMSpEvent |
|
|
MatchInterrupt |
|
MatchInterrupt |
|
||
|
|
|
|||
19 |
_PWM1Interrupt |
|
_AltPWM1Interrupt |
|
|
20 |
_PWM2Interrupt |
|
_AltPWM2Interrupt |
|
|
21 |
_PWM3Interrupt |
|
_AltPWM3Interrupt |
|
|
22 |
_PWM4Interrupt |
|
_AltPWM4Interrupt |
|
|
23 |
_Interrupt23 |
|
_AltInterrupt23 |
|
|
24 |
_Interrupt24 |
|
_AltInterrupt24 |
A |
|
25 |
_Interrupt25 |
|
_AltInterrupt25 |
||
|
|
||||
26 |
_Interrupt26 |
|
_AltInterrupt26 |
|
|
27 |
_CNInterrupt |
|
_AltCNInterrupt |
|
|
28 |
_Interrupt28 |
|
Wilson |
|
|
|
_AltInterrupt28 |
|
|||
29 |
_CMP1Interrupt |
|
_AltCMP1I terrupt |
|
|
30 |
_CMP2Interrupt |
|
_AltCMP2Interrupt |
|
|
31 |
_CMP3Interrupt |
|
_AltCMP3Interrupt |
|
|
32 |
_CMP4Interrupt |
|
_AltCMP4Interrupt |
|
|
33 |
_Interrupt33 |
|
_A tInterrupt33 |
|
|
34 |
_Interrupt34 |
|
_AltInterrupt34 |
|
|
35 |
_Interrupt35 |
|
_AltInterrupt35 |
|
|
36 |
_Interrupt36 |
by |
_AltInterrupt36 |
|
|
37 |
_ADCP0Interrupt |
_AltADCP0Interrupt |
|||
|
|||||
38 |
_ADCP1Interrupt |
|
_AltADCP1Interrupt |
||
39 |
_ADCP2Interrupt |
|
_AltADCP2Interrupt |
||
40 |
_ADCP3Interrupt |
|
_AltADCP3Interrupt |
||
Translated |
|
_AltADCP4Interrupt |
|||
41 |
ADCP4Interrupt |
|
|||
42 |
ADCP5Interrupt |
|
_AltADCP5Interrupt |
||
43 |
Interrupt43 |
|
_AltInterrupt43 |
|
|
44 |
Interrupt44 |
|
_AltInterrupt44 |
|
|
45 |
Interrup 45 |
|
_AltInterrupt45 |
|
|
46 |
Interrupt46 |
|
_AltInterrupt46 |
|
|
47 |
Interrupt47 |
|
_AltInterrupt47 |
|
|
48 |
Interrupt48 |
|
_AltInterrupt48 |
|
|
49 |
Interrupt49 |
|
_AltInterrupt49 |
|
|
50 |
Interrupt50 |
|
_AltInterrupt50 |
|
|
51 |
Interrupt51 |
|
_AltInterrupt51 |
|
|
52 |
Interrupt52 |
|
_AltInterrupt52 |
|
|
53 |
Interrupt53 |
|
_AltInterrupt53 |
|
|
|
|
|
|
|
8.4.3. Вектора прерываний PIC24F
.
Описание
PWM, специальное событие
PWM1, конец периода 1
PWM2, конец периода 2
PWM3, конец периода 3
PWM4, конец периода 4
Зарезервирован
Зарезервирован
Зарезервирован
Зарезервирован
Изменение входа
Зарезервирован
Аналоговый компаратор 1
Аналоговый компаратор 2
Аналоговый компаратор 3
Аналоговый компаратор 4
Зарезервирован
Зарезервирован
Зарезервирован
Зарезервирован
ADC пара 0 конец преобразован.
ADC пара 1 конец преобразован.
ADC пара 2 конец преобразован.
ADC пара 3 конец преобразован.
ADC пара 4 конец преобразован.
ADC пара 5 конец преобразован.
Зарезервирован
Зарезервирован
Зарезервирован
Зарезервирован
Зарезервирован
Зарезервирован
Зарезервирован
Зарезервирован
Зарезервирован
Зарезервирован
Зарезервирован
В нижеприведенной таблице даны вектора для этих 16-битовых устройств.
ТАБЛИЦА 8-3. ВЕКТОРА ПРЕРЫВАНИЙ PIC24F
Номер |
Основной |
Альтернативный |
Описание |
|
|
|
|
нет |
_ReservedTrap0 |
_AltReservedTrap0 |
Зарезервирован |
нет |
_OscillatorFail |
_AltOscillatorFail |
Неисправность генератора |
|
|
|
|
нет |
_AddressError |
_AltAddressError |
Ошибка адресации |
|
|
|
|
нет |
_StackError |
_AltStackError |
Ошибка стека |
|
|
|
|
нет |
_MathError |
_AltMathError |
Математическая ошибка |
|
|
|
|
нет |
_ReservedTrap5 |
_AltReservedTrap5 |
Зарезервирован |
|
|
|
|
нет |
_ReservedTrap6 |
_AltReservedTrap6 |
Зарезервирован |
|
|
|
|
© 2008 Microchip Technology Inc. |
DS51284H(ru) стр. 8-7 |
16-битовый компилятор Си. Руководство
ТАБЛИЦА 8-3. (ПРОД-Е) ВЕКТОРА ПРЕРЫВАНИЙ PIC24F
|
Номер |
Основной |
|
Альтернативный |
|
Описание |
|
|
|
|
|
|
|
|
|
|
нет |
_ReservedTrap7 |
|
_AltReservedTrap7 |
|
|
Зарезервирован |
|
0 |
_INT0Interrupt |
|
_AltINT0Interrupt |
|
|
INT0, внешнее прерывание 0 |
|
|
|
|
|
|
|
|
|
1 |
_IC1Interrupt |
|
_AltIC1Interrupt |
|
|
IC1, вход захвата 1 |
|
|
|
|
|
|
|
|
|
2 |
_OC1Interrupt |
|
_AltOC1Interrupt |
|
|
OC1, выход сравнения 1 |
|
|
|
|
|
|
|
|
|
3 |
_T1Interrupt |
|
_AltT1Interrupt |
|
|
TMR1, переполнение таймера 1 |
|
|
|
|
|
|
|
|
|
4 |
_Interrupt4 |
|
_AltInterrupt4 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
5 |
_IC2Interrupt |
|
_AltIC2Interrupt |
|
|
IC2, вход захвата 2 |
|
|
|
|
|
|
|
|
|
6 |
_OC2Interrupt |
|
_AltOC2Interrupt |
|
. |
OC2, выход сравнения 2 |
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
7 |
_T2Interrupt |
|
_AltT2Interrupt |
A |
|
TMR2, переполнение таймера 2 |
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
8 |
_T3Interrupt |
|
_AltT3Interrupt |
|
|
TMR3, переполнение таймера 3 |
|
|
|
|
|
|
|
|
|
9 |
_SPI1ErrInterrupt |
|
_AltSPI1ErrInterrupt |
|
SPI1, ошибка |
|
|
|
|
|
|
|
|
|
|
10 |
_SPI1Interrupt |
|
Wilson |
|
|
SPI1, конец передачи |
|
|
_AltSPI1Interrupt |
|
|
|||
|
11 |
_U1RXInterrupt |
|
_AltU1RXInterrupt |
|
|
UART1RX, приемник 1-го послед. |
|
|
|
|
|
|
|
асинхронного интерфейса |
|
12 |
_U1TXInterrupt |
|
_AltU1TXInterrupt |
|
|
UART1TX, передатчик 1-го |
|
|
|
|
|
|
|
послед. асинхронн. интерфейса |
|
13 |
_ADC1Interrupt |
|
_A tADC1Interrupt |
|
|
ADC1, конец преобразования |
|
|
|
|
|
|
|
|
|
14 |
_Interrupt14 |
|
_AltInterrupt14 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
15 |
_Interrupt15 |
|
_AltInterrupt15 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
16 |
_SI2C1Interrupt |
|
_AltSI2C1Interrupt |
|
|
I2C1, ведомый |
|
17 |
_MI2C1Interrupt |
|
_AltMI2C1Interrupt |
|
|
I2C1, ведущий |
|
18 |
_CompInterrupt |
by |
_AltCompInterrupt |
|
|
компаратор |
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
19 |
_CNInterrupt |
|
_AltCNInterrupt |
|
|
CN, изменение входа |
|
|
|
|
|
|
|
|
|
20 |
_INT1Interrupt |
|
_AltINT1Interrupt |
|
|
INT1, внешнее прерывание 1 |
|
|
|
|
|
|
|
|
|
21 |
Interrupt21 |
|
_AltInterrupt21 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
Translated |
|
_AltInterrupt22 |
|
|
Зарезервирован |
|
|
22 |
Interrupt22 |
|
|
|
||
|
23 |
Interrupt23 |
|
_AltInterrupt23 |
|
|
Зарезервирован |
|
24 |
Interrupt24 |
|
_AltInterrupt24 |
|
|
Зарезервирован |
|
25 |
OC3In errupt |
|
_AltOC3Interrupt |
|
|
OC3, выход сравнения 3 |
|
26 |
OC4Interrupt |
|
_AltOC4Interrupt |
|
|
OC4, выход сравнения 4 |
|
27 |
T4Interrupt |
|
_AltT4Interrupt |
|
|
TMR4, переполнение таймера 4 |
|
28 |
T5Interrupt |
|
_AltT5Interrupt |
|
|
TMR5, переполнение таймера 5 |
|
29 |
INT2Interrupt |
|
_AltINT2Interrupt |
|
|
INT2, внешнее прерывание 2 |
|
30 |
U2RXInterrupt |
|
_AltU2RXInterrupt |
|
|
UART2RX, приемник 2-го послед. |
|
|
|
|
асинхронного интерфейса |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
U2TXInterrupt |
|
_AltU2TXInterrupt |
|
|
UART2TX, передатчик 2-го |
|
|
|
|
послед. асинхронн. интерфейса |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32 |
SPI2ErrInterrupt |
|
_AltSPI2ErrInterrupt |
|
SPI2, ошибка |
|
|
|
|
|
|
|
|
|
|
33 |
SPI2Interrupt |
|
_AltSPI2Interrupt |
|
|
SPI2, конец передачи |
|
|
|
|
|
|
|
|
|
34 |
_Interrupt34 |
|
_AltInterrupt34 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
35 |
_Interrupt35 |
|
_AltInterrupt35 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
36 |
_Interrupt36 |
|
_AltInterrupt36 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
37 |
_IC3Interrupt |
|
_AltIC3Interrupt |
|
|
IC3, вход захвата 3 |
|
|
|
|
|
|
|
|
|
38 |
_IC4Interrupt |
|
_AltIC4Interrupt |
|
|
IC4, вход захвата 4 |
|
|
|
|
|
|
|
|
|
39 |
_IC5Interrupt |
|
_AltIC5Interrupt |
|
|
IC5, вход захвата 5 |
|
|
|
|
|
|
|
|
|
40 |
_Interrupt40 |
|
_AltInterrupt40 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
41 |
_OC5Interrupt |
|
_AltOC5Interrupt |
|
|
OC5, выход сравнения 5 |
|
|
|
|
|
|
|
|
|
42 |
_Interrupt42 |
|
_AltInterrupt42 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
43 |
_Interrupt43 |
|
_AltInterrupt43 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
44 |
_Interrupt44 |
|
_AltInterrupt44 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
45 |
_PMPInterrupt |
|
_AltPMPInterrupt |
|
|
Параллельный мастер порт |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DS51284H(ru) стр. 8-8 |
© 2008 Microchip Technology Inc. |
Глава 8. Прерывания
ТАБЛИЦА 8-3. (ПРОД-Е) ВЕКТОРА ПРЕРЫВАНИЙ PIC24F
Номер |
Основной |
|
Альтернативный |
|
Описание |
|
|
|
|
|
|
|
|
46 |
_Interrupt46 |
|
_AltInterrupt46 |
|
|
Зарезервирован |
47 |
_Interrupt47 |
|
_AltInterrupt47 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
48 |
_Interrupt48 |
|
_AltInterrupt48 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
49 |
_SI2C2Interrupt |
|
_AltSI2C2Interrupt |
|
|
I2C2, ведомый |
50 |
_MI2C2Interrupt |
|
_AltMI2C2Interrupt |
|
|
I2C2, ведущий |
51 |
_Interrupt51 |
|
_AltInterrupt51 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
52 |
_Interrupt52 |
|
_AltInterrupt52 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
53 |
_INT3Interrupt |
|
_AltINT3Interrupt |
|
. |
INT3, внешнее прерывание 3 |
|
|
|
||||
|
|
|
|
|
|
|
54 |
_INT4Interrupt |
|
_AltINT4Interrupt |
A |
|
INT4, внешнее прерывание 4 |
|
|
|
||||
|
|
|
|
|
|
|
55 |
_Interrupt55 |
|
_AltInterrupt55 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
56 |
_Interrupt56 |
|
_AltInterrupt56 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
57 |
_Interrupt57 |
|
Wilson |
|
|
Зарезервирован |
|
_AltInterrupt57 |
|
|
|||
58 |
_Interrupt58 |
|
_AltInterrupt58 |
|
|
Зарезервирован |
59 |
_Interrupt59 |
|
_AltInterrupt59 |
|
|
Зарезервирован |
60 |
_Interrupt60 |
|
_AltInterrupt60 |
|
|
Зарезервирован |
61 |
_Interrupt61 |
|
_A tInterrupt61 |
|
|
Зарезервирован |
62 |
_RTCCInterrupt |
|
_AltRTCCInterrupt |
|
|
Часы и календарь |
|
|
|
|
|
|
|
63 |
_Interrupt63 |
|
_AltInterrupt63 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
64 |
_Interrupt64 |
|
_AltInterrupt64 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
65 |
_U1EInterrupt |
|
_AltU1EInterrupt |
|
|
UART1, ошибка |
|
|
|
|
|
|
|
66 |
_U2EInterrupt |
by |
_AltU2EInterrupt |
|
|
UART2, ошибка |
|
|
|
||||
|
|
|
|
|
|
|
67 |
_CRCInterrupt |
|
_AltCRCInterrupt |
|
|
Циклический избыточный код |
|
|
|
|
|
|
|
68 |
_Interrupt68 |
|
_AltInterrupt68 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
69 |
_Interrupt69 |
|
_AltInterrupt69 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
70 |
Interrupt70 |
|
_AltInterrupt70 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
71 |
Interrupt71 |
|
_AltInterrupt71 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
72 |
Interrupt72 |
|
_AltInterrupt72 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
73 |
Interrup 73 |
|
_AltInterrupt73 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
74 |
Interrup 74 |
|
_AltInterrupt74 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
75 |
Interrupt75 |
|
_AltInterrupt75 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
76 |
Interrupt76 |
|
_AltInterrupt76 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
77 |
Interrupt77 |
|
_AltInterrupt77 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
78 |
Interrupt78 |
|
_AltInterrupt78 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
79 |
Interrupt79 |
|
_AltInterrupt79 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
80 |
Interrupt80 |
|
_AltInterrupt80 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
81 |
Interrupt81 |
|
_AltInterrupt81 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
82 |
Interrupt82 |
|
_AltInterrupt82 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
83 |
Interrupt83 |
|
_AltInterrupt83 |
|
|
Зарезервирован |
Translated |
|
|
|
|
|
|
84 Interrupt84 |
|
_AltInterrupt84 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
85 |
_Interrupt85 |
|
_AltInterrupt85 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
86 |
_Interrupt86 |
|
_AltInterrupt86 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
87 |
_Interrupt87 |
|
_AltInterrupt87 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
88 |
_Interrupt88 |
|
_AltInterrupt88 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
89 |
_Interrupt89 |
|
_AltInterrupt89 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
90 |
_Interrupt90 |
|
_AltInterrupt90 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
91 |
_Interrupt91 |
|
_AltInterrupt91 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
92 |
_Interrupt92 |
|
_AltInterrupt92 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
93 |
_Interrupt93 |
|
_AltInterrupt93 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
94 |
_Interrupt94 |
|
_AltInterrupt94 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
95 |
_Interrupt95 |
|
_AltInterrupt95 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
© 2008 Microchip Technology Inc. |
DS51284H(ru) стр. 8-9 |
16-битовый компилятор Си. Руководство
ТАБЛИЦА 8-3. (ПРОД-Е) ВЕКТОРА ПРЕРЫВАНИЙ PIC24F
|
Номер |
Основной |
|
Альтернативный |
|
Описание |
|
|
|
|
|
|
|
|
|
|
96 |
_Interrupt96 |
|
_AltInterrupt96 |
|
|
Зарезервирован |
|
97 |
_Interrupt97 |
|
_AltInterrupt97 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
98 |
_Interrupt98 |
|
_AltInterrupt98 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
99 |
_Interrupt99 |
|
_AltInterrupt99 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
100 |
_Interrupt100 |
|
_AltInterrupt100 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
101 |
_Interrupt101 |
|
_AltInterrupt101 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
102 |
_Interrupt102 |
|
_AltInterrupt102 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
103 |
_Interrupt103 |
|
_AltInterrupt103 |
|
. |
Зарезервирован |
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
104 |
_Interrupt104 |
|
_AltInterrupt104 |
A |
|
Зарезервирован |
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
105 |
_Interrupt105 |
|
_AltInterrupt105 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
106 |
_Interrupt106 |
|
_AltInterrupt106 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
107 |
_Interrupt107 |
|
Wilson |
|
|
Зарезервирован |
|
|
_AltInterrupt107 |
|
|
|||
|
108 |
_Interrupt108 |
|
_AltInterrupt108 |
|
|
Зарезервирован |
|
109 |
_Interrupt109 |
|
_AltInterrupt109 |
|
|
Зарезервирован |
|
110 |
_Interrupt110 |
|
_AltInterrupt110 |
|
|
Зарезервирован |
|
111 |
_Interrupt111 |
|
_A tInterrupt111 |
|
|
Зарезервирован |
|
112 |
_Interrupt112 |
|
_AltInterrupt112 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
113 |
_Interrupt113 |
|
_AltInterrupt113 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
114 |
_Interrupt114 |
|
_AltInterrupt114 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
115 |
_Interrupt115 |
|
_AltInterrupt115 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
116 |
_Interrupt116 |
by |
_AltInterrupt116 |
|
|
Зарезервирован |
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
117 |
_Interrupt117 |
|
_AltInterrupt117 |
|
|
Зарезервирован |
|
|
|
|
|
|||
8.4.4. Вектора прерываний dsPIC33F/PIC24H |
|||||||
|
Translated2 OC1Interrupt |
|
_AltOC1Interrupt |
|
|
OC1, выход сравнения 1 |
|
В нижеприведенной таблице даны вектора для этих 16-битовых устройств. |
|||||||
ТАБЛИЦА 8-4. ВЕКТОРА ПРЕРЫВАНИЙ dsPIC33F/PIC24F |
|||||||
|
Номер |
Основной |
|
Альтернативный |
|
Описание |
|
|
нет |
ReservedTrap0 |
|
_AltReservedTrap0 |
|
|
Зарезервирован |
|
нет |
Oscill torFail |
|
_AltOscillatorFail |
|
|
Неисправность генератора |
|
нет |
AddressError |
|
_AltAddressError |
|
|
Ошибка адресации |
|
нет |
StackError |
|
_AltStackError |
|
|
Ошибка стека |
|
нет |
MathError |
|
_AltMathError |
|
|
Математическая ошибка |
|
|
|
|
|
|
|
|
|
нет |
DMACError |
|
_AltDMACError |
|
|
DMA, конфликт |
|
|
|
|
|
|
|
|
|
нет |
ReservedTrap6 |
|
_AltReservedTrap6 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
нет |
ReservedTrap7 |
|
_AltReservedTrap7 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
0 |
INT0Interrupt |
|
_AltINT0Interrupt |
|
|
INT0, внешнее прерывание 0 |
|
|
|
|
|
|
|
|
|
1 |
IC1Interrupt |
|
_AltIC1Interrupt |
|
|
IC1, вход захвата 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
_T1Interrupt |
|
_AltT1Interrupt |
|
|
TMR1, переполнение таймера 1 |
|
|
|
|
|
|
|
|
|
4 |
_DMA0Interrupt |
|
_AltDMA0Interrupt |
|
|
DMA 0 |
|
|
|
|
|
|
|
|
|
5 |
_IC2Interrupt |
|
_AltIC2Interrupt |
|
|
IC2, вход захвата 2 |
|
|
|
|
|
|
|
|
|
6 |
_OC2Interrupt |
|
_AltOC2Interrupt |
|
|
OC2, выход сравнения 2 |
|
|
|
|
|
|
|
|
|
7 |
_T2Interrupt |
|
_AltT2Interrupt |
|
|
TMR2, переполнение таймера 2 |
|
|
|
|
|
|
|
|
|
8 |
_T3Interrupt |
|
_AltT3Interrupt |
|
|
TMR3, переполнение таймера 3 |
|
|
|
|
|
|
|
|
|
9 |
_SPI1ErrInterrupt |
|
_AltSPI1ErrInterrupt |
|
SPI1, ошибка |
|
|
|
|
|
|
|
|
|
|
10 |
_SPI1Interrupt |
|
_AltSPI1Interrupt |
|
|
SPI1, конец передачи |
|
|
|
|
|
|
|
|
|
11 |
_U1RXInterrupt |
|
_AltU1RXInterrupt |
|
|
UART1RX, приемник 1-го послед. |
|
|
|
|
асинхронного интерфейса |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DS51284H(ru) стр. 8-10 |
© 2008 Microchip Technology Inc. |
Глава 8. Прерывания
ТАБЛИЦА 8-4. (ПРОД-Е) ВЕКТОРА ПРЕРЫВАНИЙ dsPIC33F/PIC24F
Номер |
Основной |
|
Альтернативный |
|
Описание |
|
|
|
|
|
|
|
|
12 |
_U1TXInterrupt |
|
_AltU1TXInterrupt |
|
|
UART1TX, передатчик 1-го |
|
|
|
послед. асинхронн. интерфейса |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
_ADC1Interrupt |
|
_AltADC1Interrupt |
|
|
ADC1, конец преобразования |
|
|
|
|
|
|
|
14 |
_DMA1Interrupt |
|
_AltDMA1Interrupt |
|
|
DMA 1 |
|
|
|
|
|
|
|
15 |
_Interrupt15 |
|
_AltInterrupt15 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
16 |
_SI2C1Interrupt |
|
_AltSI2C1Interrupt |
|
|
I2C1, ведомый |
17 |
_MI2C1Interrupt |
|
_AltMI2C1Interrupt |
|
|
I2C1, ведущий |
18 |
_Interrupt18 |
|
_AltInterrupt18 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
19 |
_CNInterrupt |
|
_AltCNInterrupt |
|
. |
CN, изменение входа |
|
|
|
|
|
|
|
20 |
_INT1Interrupt |
|
_AltINT1Interrupt |
A |
|
INT1, внешнее прерывание 1 |
|
|
|
|
|
|
|
21 |
_ADC2Interrupt |
|
_AltADC2Interrupt |
|
|
ADC2, конец преобразования |
|
|
|
|
|
|
|
22 |
_IC7Interrupt |
|
_AltIC7Interrupt |
|
|
IC7, вход захвата 7 |
|
|
|
|
|
|
|
23 |
_IC8Interrupt |
|
_AltIC8Interrupt |
|
|
IC8, вход захвата 8 |
|
|
|
|
|
|
|
24 |
_DMA2Interrupt |
|
_AltDMA2Interrupt |
|
|
DMA 2 |
|
|
|
|
|
|
|
25 |
_OC3Interrupt |
|
_AltOC3Interrupt |
|
|
OC3, выход сравнения 3 |
|
|
|
|
|
|
|
26 |
_OC4Interrupt |
|
_AltOC4Interrupt |
|
|
OC4, выход сравнения 4 |
|
|
|
|
|
|
|
27 |
_T4Interrupt |
|
_A tT4Interrupt |
|
|
TMR4, переполнение таймера 4 |
|
|
|
|
|
|
|
28 |
_T5Interrupt |
|
_AltT5Interrupt |
|
|
TMR5, переполнение таймера 5 |
|
|
|
|
|
|
|
29 |
_INT2Interrupt |
|
_AltINT2Interrupt |
|
|
INT2, внешнее прерывание 2 |
|
|
|
|
|
|
|
30 |
_U2RXInterrupt |
|
_AltU2RXInterruptWilson |
|
|
UART2RX, приемник 2-го послед. |
|
|
|
асинхронного интерфейса |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
_U2TXInterrupt |
|
_AltU2TXInterrupt |
|
|
UART2TX, передатчик 2-го |
|
|
|
послед. асинхронн. интерфейса |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32 |
_SPI2ErrInterrupt |
by |
_AltSPI2ErrInterrupt |
|
SPI2, ошибка |
|
|
|
|
|
|
|
|
33 |
_SPI2Interrupt |
|
_AltSPI2Interrupt |
|
|
SPI2, конец передачи |
|
|
|
|
|
||
34 |
C1RxRdyInterrupt |
_AltC1RxRdyInterrupt |
|
CAN1, принятые данные готовы |
||
|
|
|
|
|
|
|
35 |
C1Interrupt |
|
_AltC1Interrupt |
|
|
CAN1, завершено |
|
|
|
|
|
|
|
36 |
DMA3Int rrupt |
|
_AltDMA3Interrupt |
|
|
DMA 3 |
|
|
|
|
|
|
|
37 |
IC3In errupt |
|
_AltIC3Interrupt |
|
|
IC3, вход захвата 3 |
|
|
|
|
|
|
|
38 |
IC4Interrupt |
|
_AltIC4Interrupt |
|
|
IC4, вход захвата 4 |
|
|
|
|
|
|
|
39 |
IC5Interrupt |
|
_AltIC5Interrupt |
|
|
IC5, вход захвата 5 |
|
|
|
|
|
|
|
40 |
IC6Interrupt |
|
_AltIC6Interrupt |
|
|
IC6, вход захвата 6 |
|
|
|
|
|
|
|
41 |
OC5Interrupt |
|
_AltOC5Interrupt |
|
|
OC5, выход сравнения 5 |
|
|
|
|
|
|
|
42 |
OC6Interrupt |
|
_AltOC6Interrupt |
|
|
OC6, выход сравнения 6 |
|
|
|
|
|
|
|
43 |
OC7Interrupt |
|
_AltOC7Interrupt |
|
|
OC7, выход сравнения 7 |
|
|
|
|
|
|
|
44 |
OC8Interrupt |
|
_AltOC8Interrupt |
|
|
OC8, выход сравнения 8 |
|
|
|
|
|
|
|
45 |
Interrupt45 |
|
_AltInterrupt45 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
46 |
DMA4Interrupt |
|
_AltDMA4Interrupt |
|
|
DMA 4 |
|
|
|
|
|
|
|
47 |
T6Interrupt |
|
_AltT6Interrupt |
|
|
TMR6, переполнение таймера 6 |
Translated |
|
|
|
|
|
|
48 |
_T7Interrupt |
|
_AltT7Interrupt |
|
|
TMR7, переполнение таймера 7 |
|
|
|
|
|
|
|
49 |
_SI2C2Interrupt |
|
_AltSI2C2Interrupt |
|
|
I2C2, ведомый |
50 |
_MI2C2Interrupt |
|
_AltMI2C2Interrupt |
|
|
I2C2, ведущий |
51 |
_T8Interrupt |
|
_AltT8Interrupt |
|
|
TMR8, переполнение таймера 8 |
|
|
|
|
|
|
|
52 |
_T9Interrupt |
|
_AltT9Interrupt |
|
|
TMR9, переполнение таймера 9 |
|
|
|
|
|
|
|
53 |
_INT3Interrupt |
|
_AltINT3Interrupt |
|
|
INT3, внешнее прерывание 3 |
|
|
|
|
|
|
|
54 |
_INT4Interrupt |
|
_AltINT4Interrupt |
|
|
INT4, внешнее прерывание 4 |
|
|
|
|
|
||
55 |
_C2RxRdyInterrupt |
_AltC2RxRdyInterrupt |
|
CAN2, принятые данные готовы |
||
|
|
|
|
|
|
|
56 |
_C2Interrupt |
|
_AltC2Interrupt |
|
|
CAN2, завершено |
|
|
|
|
|
|
|
57 |
_PWMInterrupt |
|
_AltPWMInterrupt |
|
|
PWM, конец периода |
|
|
|
|
|
|
|
58 |
_QEIInterrupt |
|
_AltQEIInterrupt |
|
|
QEI, сравнение позиции счетчика |
|
|
|
|
|
|
|
© 2008 Microchip Technology Inc. |
DS51284H(ru) стр. 8-11 |
16-битовый компилятор Си. Руководство
ТАБЛИЦА 8-4. (ПРОД-Е) ВЕКТОРА ПРЕРЫВАНИЙ dsPIC33F/PIC24F
|
Номер |
Основной |
|
Альтернативный |
|
Описание |
|
|
|
|
|
|
|
|
|
|
59 |
_DCIErrInterrupt |
|
_AltDCIErrInterrupt |
|
|
DCI CODEC, ошибка |
|
60 |
_DCIInterrupt |
|
_AltDCIInterrupt |
|
|
DCI CODEC, конец передачи |
|
|
|
|
|
|
|
|
|
61 |
_DMA5Interrupt |
|
_AltDMA5Interrupt |
|
|
DMA 5 |
|
|
|
|
|
|
|
|
|
62 |
_Interrupt62 |
|
_AltInterrupt62 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
63 |
_FLTAInterrupt |
|
_AltFLTAInterrupt |
|
|
FLTA MCPWM ошибка A |
|
|
|
|
|
|
|
|
|
64 |
_FLTBInterrupt |
|
_AltFLTBInterrupt |
|
|
FLTB MCPWM ошибка B |
|
|
|
|
|
|
|
|
|
65 |
_U1EInterrupt |
|
_AltU1EInterrupt |
|
|
UART1, ошибка |
|
|
|
|
|
|
|
|
|
66 |
_U2EInterrupt |
|
_AltU2EInterrupt |
|
|
UART2, ошибка |
|
|
|
|
|
|
|
|
|
67 |
_Interrupt67 |
|
_AltInterrupt67 |
|
. |
Зарезервирован |
|
|
|
|
|
|
|
|
|
68 |
_DMA6Interrupt |
|
_AltDMA6Interrupt |
A |
|
DMA 6 |
|
|
|
|
|
|
|
|
|
69 |
_DMA7Interrupt |
|
_AltDMA7Interrupt |
|
|
DMA 7 |
|
|
|
|
|
|
||
|
70 |
_C1TxReqInterrupt |
_AltC1TxReqI terrupt |
|
CAN1, запрос на передачу |
||
|
|
|
|
|
|
||
|
71 |
_C2TxReqInterrupt |
_AltC2TxReqInterrupt |
|
CAN2, запрос на передачу |
||
|
|
|
|
|
|
|
|
|
72 |
_Interrupt72 |
|
_AltInterrupt72 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
73 |
_Interrupt73 |
|
_AltInterrupt73 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
74 |
_Interrupt74 |
|
_A tInterrupt74 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
75 |
_Interrupt75 |
|
_AltInterrupt75 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
76 |
_Interrupt76 |
|
_AltInterrupt76 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
77 |
_Interrupt77 |
|
_AltInterrupt77 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
78 |
_Interrupt78 |
|
_AltInterrupt78 |
|
|
Зарезервирован |
|
|
|
|
Wilson |
|
|
|
|
79 |
_Interrupt79 |
|
_AltInterrupt79 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
80 |
_Interrupt80 |
|
_AltInterrupt80 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
81 |
_Interrupt81 |
|
_AltInterrupt81 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
82 |
_Interrupt82 |
by |
_AltInterrupt82 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
83 |
Interrupt83 |
|
_AltInterrupt83 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
84 |
Interrupt84 |
|
_AltInterrupt84 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
85 |
Interrupt85 |
|
_AltInterrupt85 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
86 |
Interrup 86 |
|
_AltInterrupt86 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
87 |
Interrup 87 |
|
_AltInterrupt87 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
88 |
Interrupt88 |
|
_AltInterrupt88 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
89 |
Interrupt89 |
|
_AltInterrupt89 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
90 |
Interrupt90 |
|
_AltInterrupt90 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
91 |
Interrupt91 |
|
_AltInterrupt91 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
92 |
Interrupt92 |
|
_AltInterrupt92 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
93 |
Interrupt93 |
|
_AltInterrupt93 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
94 |
Interrupt94 |
|
_AltInterrupt94 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
95 |
Interrupt95 |
|
_AltInterrupt95 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
96 |
Interrupt96 |
|
_AltInterrupt96 |
|
|
Зарезервирован |
|
Translated |
|
|
|
|
|
|
|
97 Interrupt97 |
|
_AltInterrupt97 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
|
98 |
_Interrupt98 |
|
_AltInterrupt98 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
99 |
_Interrupt99 |
|
_AltInterrupt99 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
100 |
_Interrupt100 |
|
_AltInterrupt100 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
101 |
_Interrupt101 |
|
_AltInterrupt101 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
102 |
_Interrupt102 |
|
_AltInterrupt102 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
103 |
_Interrupt103 |
|
_AltInterrupt103 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
104 |
_Interrupt104 |
|
_AltInterrupt104 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
105 |
_Interrupt105 |
|
_AltInterrupt105 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
106 |
_Interrupt106 |
|
_AltInterrupt106 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
107 |
_Interrupt107 |
|
_AltInterrupt107 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
108 |
_Interrupt108 |
|
_AltInterrupt108 |
|
|
Зарезервирован |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DS51284H(ru) стр. 8-12 |
© 2008 Microchip Technology Inc. |