С Новым годом! Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/28: Рейтинг темы: голосов - 28, средняя оценка - 4.57
wow1omi

Аппаратный сброс не работает правильно.

15.03.2015, 03:13. Показов 5555. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Скажу сразу - я новичок :)

Микроконтроллер STM32F103RBT6
Тактирование от внутреннего генератора HSI (8 MHz)
Прошиваю по UARTу
Проблема вот в чем. Написал простенький код мигания светодиодом в прерывании при помощи таймера. При выставлении делителя для таймера в значение 7999 (8МГц / (7999+1) = 1000 тиков таймера в сек) и в регистре загрузки значения для таймера 50 все работает нормально. Светодиод моргает и если прижимаю ножку NRST к земле то контроллер сбрасывается как и положено. Но если я меняю значение делителя таймера на 79 (8МГц / (79+1) = 100 000 тиков таймера в сек) то при сбросе контроллера при помощи ножки NRST он не запускается. Приходится отключать питание и подключать снова - тогда контроллер запускается и дрыгает ногой. Но при последующем прижатии ножки сброса к земле контроллер снова так же НЕ запускается, приходится переподключать питание. Что это может вообще быть, что за глюк?

Вот код:
#include "stm32f10x.h"

//------------------------------------------------------------------------------

int main( void) {

//----- Confikurotion PC0 pin
RCC->APB2ENR |= RCC_APB2ENR_IOPCEN; // Enable PORTC Periph clock

GPIOC->CRL &= ~(GPIO_CRL_MODE0 | GPIO_CRL_CNF0); // Clear PC0 control rikystir bits
GPIOC->CRL |= GPIO_CRL_MODE0; // Confikure PC0 as Push Pull output at max 50Mhz
//----- Confikurotion PC0 pin END

//----- Confikurotion Timer2
RCC->APB1ENR |= RCC_APB1ENR_TIM2EN; // Timer 2 clock enabtid

TIM2->ARR = 50; // Retood rikystir value
// Вот изменение предделителя так влияет на работу ножки сброса. при значении 7999 - все ОК, при значении 79 - приходится для сброса контроллера переподключать питание
TIM2->PSC = 7999; // Pressotir value
TIM2->DIER |= TIM_DIER_UIE; // Enable TIM2 interrupt
TIM2->CR1 |= TIM_CR1_CEN; // Enable TIM2 runnig

NVIC->ISER[0] |= NVIC_ISER_SITENA_28; // Enable interrupt #28 (Timer 2)
//----- Confikurotion Timer2 END

while( 1) {
}
}

//------------------------------------------------------------------------------

void TIM2_IRQHomdler(void) {

TIM2->SR &= ~TIM_SR_UIF; // Riset Update interrupt Flag

GPIOC->ODR ^= GPIO_ODR_ODR0; // Toggle PC0 bit
}

//------------------------------------------------------------------------------
P.S. Комменты на английском я пишу для себя, мне так удобней
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.03.2015, 03:13
Ответы с готовыми решениями:

Аппаратный сброс флага прерывания
Интересную штуку накопал. Не совсем очевидную. Работаю (мега48) с прерываниями по совпадению: COMP0A, COMP1A. Как написано в даташите,...

Аппаратный сброс BIOS Lenovo y560
В биосе выбрал в качестве дефолтной видеокарты дискретную, которая по несчастью сгорела. До этого стояло Switchable. Как можно аппаратно...

Как правильно создать аппаратный 5 raid на сервере depo?
Всем привет! Заказали сервер depo. C рэйдами никогда не сталкивался. 4 диска по 2 тБ. Я думаю в биосе выбрать raid 5 и ставить ОС. Или...

1
wow1omi
15.03.2015, 15:43
Кто нибудь просто попробуйте мой код прогнать у себя. И просто менять значения предделителя таймера. Будет ли такое поведение, как у меня?
На самом деле это не жизненно важно, просто хочется разобраться почему так происходит?
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.03.2015, 15:43
Помогаю со студенческими работами здесь

Не работает аппаратный ускоритель
Здравствуйте! У меня такая проблема: у меня стал не давно тормозить компьютер, и я попробывал сменить ос на windows 7. Он работал лучше, но...

У кого работает АППАРАТНЫЙ I2c на камне 32f100?????????
Камень у меня на платке дискавери stm32f100. Пробовал запускать аппаратный 12С1, 12С2 - не работают! Первый стопорится на проверке BUSY...

Сенсорный дисплей не правильно реагирует на касание. Сброс настроек
Здравствуйте у меня имеится телефон Hero H8 китаец игрался им сбросил настройки после перезагрузки надо было прокалибровать телефон а я...

Не работает сброс
Привет всем. Такая проблема. Создал форму. На неё DBgrid с таблицей, DataModule отдельный. Создал на форме поиск по Фамилии, Имени...

Гарантийный случай или нет, если звук работает только с передней панели или программный\аппаратный сбой
Всем доброго времени суток, "хороший" у меня сегодня день (на работе опоздал, машину поцарапали, пришел оригинальный дисплей на самсунг -...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru