На F427 работает. Сделал платку на f103c8t6, без внешних кварцов, все работает, а таймера нет, в обработчик прерывания не входит, как так, подскажите люди добрые
Код:
#include "stm32f1xx.h"
int main() { RCC->APB2ENR |= RCC_APB2ENR_IOPCEN; // Разрешить тактирование PORTC RCC->APB1ENR |= RCC_APB1ENR_TIM2EN; //Разрешить тактирование TIM GPIOC->CRH |= GPIO_CRH_MODE15; // Вывод светодиодана выход. GPIOC->CRH &=~GPIO_CRH_CNF15; // Двухтактный выход
Пробовал,без толку. Перед тем как сюда писать я всю ночь перебирал варианты. Чтобы вы понимали, даже камень поменял на всякий Не может же быть причина в отсутствии кварца, там же автоматом работает внутренний ген.
Карма: 29
Рейтинг сообщений: 651
Зарегистрирован: Сб май 14, 2011 21:16:04 Сообщений: 2708 Откуда: г. Чайковский
Рейтинг сообщения:0 Медали: 1
TEPEM писал(а):
Пробовал,без толку.
Потом убрали разрешение прерываний? Не стоит
В startup поройтесь, точно от внур. кварца? Пошаговая отладка работает? Может в HardFault висите? Включите светодиод сразу при входе в майн. Помигайте светодиодом в тупом цикле. Как узнали что таймер не работает?
_________________ Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Начнем с того что я не много нуб. Делаю в ИАР через китайский клон ст-линк,что там работает я не знаю если четно. До этого использовал отладочные платы. Светодиод отдельно работает, мигал пустым циклом. Остальное пойду гуглить
Карма: 29
Рейтинг сообщений: 651
Зарегистрирован: Сб май 14, 2011 21:16:04 Сообщений: 2708 Откуда: г. Чайковский
Рейтинг сообщения:0 Медали: 1
Поставьте точку останова на входе в майн и в обработчике прерываний. Пошагайте и поглядите что в регистрах реально. Если в никакую точку останова не попадаете, нажмите паузу и поглядите где-находитесь.
_________________ Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Я пытаюсь разобраться с отлалчиком, но либо смотрю не туда либо нужное окно не открыто( CNT содержит некое число, значит он инкриминируется? Чего тоды может быть люди добрые Если два раз паузу и плей нажать - падает в хард фаулт(
Карма: 29
Рейтинг сообщений: 651
Зарегистрирован: Сб май 14, 2011 21:16:04 Сообщений: 2708 Откуда: г. Чайковский
Рейтинг сообщения:0 Медали: 1
В документе PM0056Programming manual есть описание регистров по которым можно вычислить причину исключения. Но мне кажется не стоит так глубоко пока копать.
TEPEM писал(а):
Светодиод отдельно работает, мигал пустым циклом.
У меня есть смутные сомнения что это работало, а запуск таймера привел к исключению. Сделайте опять этот проект. Пускай мигает, если будет.
_________________ Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Мигает где то 0.75 сек, что такое стартап простите? Если вернуть строку с разрешением прерывания - не мигает, падает. Вот эта строка - NVIC_EnableIRQ(TIM2_IRQn); Даже без обработчика
а в первом только " |= 32768;" Дык это еденичку в порт пишет, побитное сложение, а второй вычитание, типа стирает ее, нога светодиода. На f103 по другому как то делают?
Реально есть инициализация обходящая проблему с файлом этим? я вроде все перепробовал кроме тех где есть левые библиотеки
П.С. Я уменьшил значения чтобы повысить шансы на вызов обработки, мало ли, через час бы вылезла, не считал
Последний раз редактировалось TEPEM Чт дек 05, 2019 20:18:28, всего редактировалось 2 раз(а).
Сейчас этот форум просматривают: Zikon и гости: 20
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения