Модераторы: PILOT, ManiaK, Mazzi
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> скорость тиканья таймера 
:(
    Опции темы
supercelt
Дата 14.9.2017, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 646
Регистрация: 25.8.2005

Репутация: нет
Всего: 1



Привет! Хочу посоветоваться... вот кусок кода. МК stm32f405

Код

case 1:
if(TIM6->CNT >= (10*KEY_SCAN_DELAY)){
row_port[0]->BSRRL = (1 << row_pin[0]); //1
state = 2;
TIM6->CNT = 0;
GPIOB->ODR |= (1<<14);
}
break;


ставлю точку останова на state=2 и начинаю шагать.
TIM6->CNT = 0; - обнуляет, но при обнулении допустим с 480 перескачет сразу на 300
а когда я перехожу на следующую строку, в TIM6->CNT уже 613. 

Настройки:

Код

//TIM6
    RCC->APB1ENR |= RCC_APB1ENR_TIM6EN;
    TIM6->PSC |= 8399; //F = 10 kHz; Fmax TIM6 = 84 mHz
    TIM6->ARR = 65535;


то есть вопрос, может ли 1 строчка занимать 300 тиков таймера с частотой 10 кгц?

Это сообщение отредактировал(а) supercelt - 14.9.2017, 22:04
PM   Вверх
xvr
Дата 15.9.2017, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 6906
Регистрация: 28.8.2007
Где: Химки, Московская обл

Репутация: 8
Всего: 221



Предполагаю, что все это происходит в отладчике на реальном процессоре. так же предполагаю, что отладчик не останавливает весь CPU когда программа остановлена (в частности таймер может продолжать считать). Тогда вполне возможно, что 1 строчка + нажатие пары клавиш на клавиатуре РС (что бы до этой строчки дойти) вполне может насчитать в таймере и 300 и 3000 и сколько угодно  smile 

PM MAIL   Вверх
supercelt
Дата 15.9.2017, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 646
Регистрация: 25.8.2005

Репутация: нет
Всего: 1



Аааа, не понятно. А то я уже начал волноваться)))
PM   Вверх
Мелена
Дата 30.9.2017, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 27.9.2017

Репутация: нет
Всего: нет



а вот мне непонятно
PM MAIL   Вверх
Курсант
Дата 5.11.2017, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 320
Регистрация: 21.2.2009
Где: Балашиха или Воро неж

Репутация: нет
Всего: 4



Мелена, а чего непонятного? После того, как Вы настроили тактирование периферийных устройств, они работают самостоятельно, параллельно с ядром, общение ядра и периферии обычно происходит через специальные регистры или через шину. Если Вы остановили выполнение программы ядром в режиме отладки, это ещё не значит, что вся периферия остановилась. Вполне возможно, что таймеры продолжают считать, контроллеры интерфейсов - отправлять и принимать данные, выставлять флаги прерываний, и так далее. А ядро остановлено, и программист копается в коде. А периферия работает.

Это сообщение отредактировал(а) Курсант - 5.11.2017, 20:31
PM ICQ Skype   Вверх
Google
  Дата 15.12.2017, 01:57 (ссылка)  





  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)"
PILOT ManiaK
UniBomb Mazzi

На данный раздел помимо Правил форума распространяются текже следующие правила:


  • Прежде чем создать тему воспользуйтесь поиском или посмотрите в faq. Возможно на форуме уже есть ответ на ваш или близкий к вашему вопрос.
  • В заголовке темы в квадратных скобках обозначьте используемое семейство микроконтроллера: [avr],[pic],[arm].
  • При создании темы с вопросом указывайте участок кода с ошибкой, версию компилятора, схемы подключения, fuse биты и прочие данные, которые помогут найти правильный ответ. Для форматирования текста программ используйте кнопку код.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Для флуда, просьб выполнить задание, поиска партнёров или исполнителей существуют свои разделы.
  • Если вы заметили несовместимое с правилами сообщение, то можете уведомить об этом модератора раздела нажав кнопку Репорт у соответствующего сообщения.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема »


 




[ Время генерации скрипта: 0.0927 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.