Ahtyng писал(а):Все таки С++ слишком абстрагирован от "железа", а цель моя не только научиться программировать МК, но я для начала понять его.
Не так-то уж и абстрагирован. В конце концов можно на C писать, там меньше зауми.
полне возможно, что подход мой не верен, однако сейчас я начал изучать асм и продолжу это занятие, а по сему еще пара дурацких вопросов: поморгал благополучно светодиодами и добрался я до прерываний, как будто бы все настроил: в RCC_APB2 разрешил тактирование SYSCFGEN, в SYSCFG_EXTICR1 выбрал PA0, в EXTI_IMR, EXTI_RTSR и EXTI_FTSR активировал 1-ю линию, ну и кнопку PA0 естественно инициализировал, а дальше начались непонятки.
Следует учесть, что у механических кнопок есть дребезг - будут ложные срабатывания, их надо обрабатывать
1. В референс мануале указанны 16 мультиплексоров EXTI0-EXTI15, а векторов прерывания всего 5. Где написано какая линия по какому вектору прерываний работает(я внимательно читал референс мануал(ну не весь конечно, только этот пункт) и уверен, что не проглядел, может где то отдельно написано)?
http://www.st.com/st-web-ui/static/acti ... 031020.pdfсмотрим таблицу на стр 196, position 23 и position 40
2. Зная вектор прерывания как в эту область памяти поместить обработчик? Ассемблер я действительно знаю очень плохо, потому ногами прошу не пинать.
просмотрите ассемблеровские файлы из стандартной библиотеки, поищите там Vector Table
4. Во многих примерах на С++ при инициализации прерывания настраивают NVIC_IRQ в референс мануале этот момент не освещен поясните пожалуйста, что это?
Освещен. NVIC - это Nested vectored interrupt controller. Это контроллер прерываний, если его не настроить, прерываний не будет.