Денис Ягов (04.08.2010 07:14 - 14:24, просмотров: 149) ответил Т.Достоевский на Странно, а в эмуляторе получалось наоборот!
Все примеры беру из приложенных к библиотекам в начале программы такой текст: /******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
* File Name : main.c
* Author : MCD Application Team
* Version : V2.0.3
* Date : 09/22/2008
* Description : Main program body
********************************************************************************
Вот ещё пример.....
Его смысл - есть 2 кнопки, у которых разный приоритет по реакции.
Соответственно , если будете удерживать одну - потом нажимать другую получите либо изменение реакции либо - реакция на нажатие кнопки останется прежней (в зависимости от приоритета удерживаемой кнопки).
NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQChannel;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQChannel;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
NVIC_Init(&NVIC_InitStructure);
Из этого примера тоже следует, что NVIC_IRQChannelPreemptionPriority - приоритет
а NVIC_IRQChannelSubPriority - вложеннность.
Под каким эмулятором работаете?
Если райд - то могу вам честно сказать, что он неправильно эмулирует периферию. Вернее сказать - вообще её не эмулирует. Это касается и контроллеров STM32 и STM8. Я это узнал по таймерам, которые запускаешь, а они не запускаются (если смотреть по счётным регистрам). Однако, если к подцепить реальный таргет - то всё работает. Эмулятор у них - убогий, ничего не поделаешь ....