Добрый день. Методика, которую использую я для изучения микроконтроллеров "От случая к случаю, когда есть время" дает очень плохие результаты...
Однако, желание не пропадает, а времени на все просто не хватает. Прошу помочь уже много лет начинающиму расшифровать эту строчку:
А точнее, ее правую часть.
1. Правильно же я понял, что
TIM2_BASE - это просто число -
адерс памяти, по которму находится первый регистр для таймера2?
2. А
TIM_TypeDef - это название типа (структуры), у которой есть поля, которые в свою очередь являются
РЕГИСТРАМИ для настройки этого таймера?
3. И так как, эти поля как целые 32 разрядные типы, то первое поле имеет смещение 0 и, следовательно, первый регистр в этой структуре будет равен адресу
TIM2_BASE, а второй уже будет равен
TIM2_BASE+32? и т.д.
4. А сама запись
(TIM_TypeDef *) TIM2_BASE Что-то я туплю... Тут же нету пременных? Если я беру адрес переменной через & и присваиваю его перменной-указателю, то более или менее понятно. Гоню. Ест перменная TIM_TypeDef типа структуры. В нее почему через звездочку запихивают значение адреса? Потому что нет переменной у которой надо брать адрес через разыменование?
Короче, надо более подробно про работу указателей и структур
ИМЕННО в связке микроконтроллера. Простое изучение Си для компьютера порождает путаницу в голове, т.к. для компа понятно, там используются названия переменных, а для микроконтроллера не очень, т.к. здесь получается простая адерсная арифметика на числах...
Добавлено after 4 minutes 27 seconds:
И в догонку. Правильно я понимаю, что организация памяти этих микроконтроллеров (и ИМЕННО она) позволила сделать подобное, чтобы можно было все регистры расписать через структуры, а потом к ним обращаться? Т.е. в этом принципиальное различие от тех же АВР контроллеров?
Добавлено after 4 minutes 15 seconds:
З.Ы. я подозреваю, что сам на свои вопросы отвечаю. Но все же лучше уточнить.