[uquote="Мурик",url="/forum/viewtopic.php?p=3556219#p3556219"]Это я к тому что используя код написанный другими нельзя быть точно уверенным что он будет работать нормально.[/uquote]
Ну тогда тем более не понятно, на кой чёрт эта подкрутка стека нужна, получается лишняя заноза при переносе кода на другую платформу
Access: 0 ≤ wait state ≤ 2, word, half-word and byte access
Добавлено after 1 hour 34 minutes 41 second:
Еще пара вопросов.
1. В регистре RCC_CR есть бит включения HSE. А в регистре RCC_CFGR есть бит SW, где тоже можно выбрать источник тактирования. Это как понимать? Или надо будет включать и там и там? Или можно либо там, либо там?
2. Что такое HSE oscillator used directly or indirectly as system clock? (прямо или косвенно) что это значит?
Добавлено after 1 hour 5 minutes 30 seconds:
Пятница что ли всех в Повердаун отправила...
Скажите, может я правильно понимаю тогда, что 0 ≤ wait state ≤ 2 это значит, что доступ к регистру может быть от 0 до 2 тактов, в зависимости от занятости этого регистра?
Последний раз редактировалось СКАЗОЧНИК Сб янв 26, 2019 04:02:48, всего редактировалось 1 раз.
СКАЗОЧНИК писал(а):Скажите, может я правильно понимаю тогда, что 0 ≤ wait state ≤ 2 это значит, что доступ к регистру может быть от 0 до 2 тактов, в зависимости от занятости этого регистра?
Правильно, может есть еще какие-то предположения касательно word или byte access? Только не 0..2 такта, а дополнительно 0..2 такта...
Reflector писал(а):касательно word или byte access?
Это тоже интересно. Понятно, что это доступ словами, половиной слова или байтовый. Т.е. 32 бита, 16 или 8 бит. И, как я понял, больше относится к языку программирования.
С другой стороны, не понятно... Что за доступ в 8 бит... ?
[uquote="СКАЗОЧНИК",url="/forum/viewtopic.php?p=3556886#p3556886"]С другой стороны, не понятно... Что за доступ в 8 бит... ?[/uquote]
Допустим нужно один байт в регистре поменять, любой, не затрагивая остальные, тогда можно только к нему и обращаться.
Задам очередной глупый вопрос. Усиленно вчитываясь в рефренс мануал, дошел до регистра GPIOx_CLR (ну и второй его брат тоже). Если в АВР было просто ПОРТа, ПОРТб и т.д., то здесь как-то для кучи портов один регистр всего? по адресу смещения 0х00 и 0х04.
Не понимаю. Как настраивать порт А отдельно от порта Д? Или я где-то че-то не вижу?
туплю. С регистрами установки и сброса битов. Они тоже как бы для одного порта описаны. А где для остальных?
Добавлено after 2 minutes 13 seconds:
Ну и все верхние вопросы тоже в силе. )
[uquote="СКАЗОЧНИК",url="/forum/viewtopic.php?p=3560129#p3560129"]Не понимаю. Как настраивать порт А отдельно от порта Д? Или я где-то че-то не вижу?[/uquote]
Не понимаю как так можно RM читать, если в описании регистра написано: Port configuration register low (GPIOx_CRL) (x=A..G)
1. В регистре RCC_CR есть бит включения HSE. А в регистре RCC_CFGR есть бит SW, где тоже можно выбрать источник тактирования. Это как понимать? Или надо будет включать и там и там? Или можно либо там, либо там?
Включение HSE не означает на него переключение.
2. Что такое HSE oscillator used directly or indirectly as system clock? (прямо или косвенно) что это значит?
Открываю раздел RCC, даю поиск по "indirectly", первое же совпадение дает ответ на твой вопрос: If the HSE oscillator is used directly or indirectly as the system clock (indirectly means: it is used as PLL input clock, and the PLL clock is used as system clock).
Я увидел, что там надо подставить букву вместо Х. Но дальше дана полная таблица этих регистров, где также описан один всего GPIOx и указано его смещение от начального адреса. Может я не правильно задаю вопрос... Но это описание общее.
У каждого порта должен быть свой такой регистр со своим адресом?!
БЭКАП регистры же указаны все 40 с лишним штук, хотя они все одинаковые...
Reflector писал(а):а него переключение.
Вот это теперь понятно.
Reflector писал(а):If the HSE oscillator is used directly or indirectly as the system clock (indirectly means: it is used as PLL input clock, and the PLL clock is used as system clock).
Если используется HSE (внешний высокочастотный) прямо или косвенно, как тактироание системы (косвенно означает: что используется как PLL внутреннее тактирование и PLL тактирование используется как системное тактирование).
Все равно не понимаю...
Добавлено after 9 minutes 5 seconds:
А... я кажется понял! Прямо или косвенно означает, если я подал тактовые на вход, либо кварц подключил и сразу отправил эту частоту на ядро, то это прямо. А если я ее умножил через PLL, то это уже косвенно эту частоту я использую.
[uquote="СКАЗОЧНИК",url="/forum/viewtopic.php?p=3560216#p3560216"]Я увидел, что там надо подставить букву вместо Х. Но дальше дана полная таблица этих регистров, где также описан один всего GPIOx и указано его смещение от начального адреса.[/uquote]
Почему вдруг всего один GPIOx, если вместо 'x' подставляются буквы портов...
У каждого порта должен быть свой такой регистр со своим адресом?!
Естественно, базовый адрес для каждого порта разный, смещение для всех регистров одинаковое.
[uquote="СКАЗОЧНИК",url="/forum/viewtopic.php?p=3560242#p3560242"]про прямо и косвенно я правильно понял? )[/uquote]
Правильно, но над скоростью нужно еще поработать
Добавлено after 59 minutes 5 seconds:
И да, увидел я в МэмориМэпинг адреса портов. )))
И теперь, вроде дошло до меня по ним.
Например, портЕ имеет адрес 0х40011800. И регистр GPIOE_CLR находится по этому адресу. И дефайнить теперь я его сам могу в любое другое обозначение. И следующий регистр GPIOE_CRH будет по адресу 0х40011800 + 0х04 = 0х40011804. и т.д. и т.п.
[uquote="СКАЗОЧНИК",url="/forum/viewtopic.php?p=3560252#p3560252"]Например, портЕ имеет адрес 0х40011800. И регистр GPIOE_CLR находится по этому адресу. И дефайнить теперь я его сам могу в любое другое обозначение.[/uquote]Да что же это за маниакальное желение новичкков всё передефайнить. Это чтобы ваш код был максимально непонятным и никто на форуме не смог помочь? Чем вам дефайны от производителя не угодили? Зачем делать то что уже сделано внося свои ошибки?
[uquote="СКАЗОЧНИК",url="/forum/viewtopic.php?p=3560548#p3560548"]И вот этот файл stm32f10x.h он не относится к SPL? Это просто заголовочный файл с объявленями?[/uquote]А внутрь файла заглянуть религия не позволяет? Спойлер
Религия позволяет, только, почему-то заголовки сразу прокручиваешь и смотришь уже всякие объявления внутри... ) Вот и не догадался.
И насколько увидел из его описания, нету упоминаний о СПЛ.
о... А нахрена он так стоит? Блин, че теперь на каждом файле править его вручную?
Я еще подзапутался в этих библиотеках. Вот есть у меня stm32f10x.h, в ней описаны все имена регистрам и их адреса. Чтобы тупо не писать цифрами, я могу взять имена из этого файла и использовать их в своей программе.
Но есть еще несколько файлов, которые к ним приложены.
И если я хочу сделать конфигурацию той же тактовой частоты сам, то я могу написать типа:
RCC_CR = 0b00000000000000010000000000000000;
Ну или RCC-CR |= (1<<HSEON);
и т.д.
Но у меня же уже где-то в этих подключенных файлах есть целые функции, которые частоту задают сами?! Они же все сделают по своему? Ведь та же stm32f10x.h ссылается на кучу других файлов, которые в свою очередь подключают еще кучу своих файлов. и уже концов не найдешь. Запутался я в них.