Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Микроконтроллеры других производителей

Микроконтроллеры других производителей Все, что касается микроконтроллеров и НЕ подошло в раздел Microchip.

Ответ
 
Опции темы Опции просмотра
Старый 12.09.2017, 22:45   #1
petrd
Senior Member
 
Регистрация: 09.02.2008
Адрес: Воронеж
Возраст: 46
Сообщений: 1,671
Вес репутации: 1522/67
petrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant future
Отправить сообщение для petrd с помощью ICQ
По умолчанию STM32 Вопрос по Keil

Всем привет!
Для примера, есть код:
Код:
GPIOA->ODR ^= (1 << 0);
input = GPIOA->IDR;
В Keil ставим курсор на ODR, щелкаем правой кнопкой мыши и в выпадающем меню переходим на Go To Defenition of 'ODR' и попадаем на строку __IO uint32_t ODR; в файле stm32f100x.h
Код:
typedef struct
{
  __IO uint32_t CRL;
  __IO uint32_t CRH;
  __IO uint32_t IDR;
  __IO uint32_t ODR;
  __IO uint32_t BSRR;
  __IO uint32_t BRR;
  __IO uint32_t LCKR;
} GPIO_TypeDef;
Теперь делаю тоже самое с IDR ..... но на строку __IO uint32_t IDR не попадаю, и вообще файл stm32f100x.h теперь не открывается, но зато внизу открывается окно Browser и что с ним делать.
Что за ерунда? У всех так?
__________________
License MikroC, MikroC PRO and EasyPIC5 by mikroElektronika (the dead mikroICD replaced PICKit2 & PICKit3)
petrd вне форума   Ответить с цитированием
Старый 14.09.2017, 06:51   #2
petrd
Senior Member
 
Регистрация: 09.02.2008
Адрес: Воронеж
Возраст: 46
Сообщений: 1,671
Вес репутации: 1522/67
petrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant future
Отправить сообщение для petrd с помощью ICQ
По умолчанию Re: STM32 Вопрос по Keil

Понял! Вопрос задан не в том месте.
__________________
License MikroC, MikroC PRO and EasyPIC5 by mikroElektronika (the dead mikroICD replaced PICKit2 & PICKit3)
petrd вне форума   Ответить с цитированием
Старый 14.09.2017, 08:16   #3
HHIMERA
Senior Member
 
Регистрация: 10.06.2008
Возраст: 55
Сообщений: 2,720
Вес репутации: 3742/99
HHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond repute
По умолчанию Re: STM32 Вопрос по Keil

Да хоть в каком месте... никто этим просто не заморачивается... просто открывают хедер и всё... А при наборе подсказка выскакивает... хотя меня она раздражает...
__________________
"Я не даю готовых решений, я заставляю думать!"(С)
HHIMERA вне форума   Ответить с цитированием
Старый 14.09.2017, 08:32   #4
petrd
Senior Member
 
Регистрация: 09.02.2008
Адрес: Воронеж
Возраст: 46
Сообщений: 1,671
Вес репутации: 1522/67
petrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant future
Отправить сообщение для petrd с помощью ICQ
По умолчанию Re: STM32 Вопрос по Keil

Цитата:
Сообщение от HHIMERA Посмотреть сообщение
... никто этим просто не заморачивается... просто открывают хедер и всё...
А зря. Открыть хедер и крутить его пока глазами не найдешь искомое (пока крутишь эту портянку можно забыть, что искал), либо Ctrl-C -> открыть хедер -> Ctrl-F -> Ctrl-V -> Find. Слишком много движений при наличии удобной функции, но не всегда работающей.
__________________
License MikroC, MikroC PRO and EasyPIC5 by mikroElektronika (the dead mikroICD replaced PICKit2 & PICKit3)
petrd вне форума   Ответить с цитированием
Старый 14.09.2017, 10:20   #5
Greg
Super Moderator
 
Регистрация: 25.02.2007
Адрес: Moscow, ODBS
Сообщений: 6,640
Вес репутации: 5137/156
Greg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond repute
По умолчанию Re: STM32 Вопрос по Keil

Цитата:
Сообщение от petrd Посмотреть сообщение
А зря. Открыть хедер и крутить его пока глазами не найдешь искомое (пока крутишь эту портянку можно забыть, что искал), либо Ctrl-C -> открыть хедер -> Ctrl-F -> Ctrl-V -> Find. Слишком много движений при наличии удобной функции, но не всегда работающей.
там же появляется подсказка после набора стрелочки
Greg вне форума   Ответить с цитированием
Старый 14.09.2017, 11:19   #6
petrd
Senior Member
 
Регистрация: 09.02.2008
Адрес: Воронеж
Возраст: 46
Сообщений: 1,671
Вес репутации: 1522/67
petrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant future
Отправить сообщение для petrd с помощью ICQ
По умолчанию Re: STM32 Вопрос по Keil

Цитата:
Сообщение от Greg Посмотреть сообщение
там же появляется подсказка после набора стрелочки
Это если набирать, с этим все понятно. А если потом подсмотреть, то и вылазит непонятное поведение.
__________________
License MikroC, MikroC PRO and EasyPIC5 by mikroElektronika (the dead mikroICD replaced PICKit2 & PICKit3)
petrd вне форума   Ответить с цитированием
Старый 14.09.2017, 11:47   #7
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: M.O.
Возраст: 58
Сообщений: 2,093
Вес репутации: 2636/84
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: STM32 Вопрос по Keil

Цитата:
Сообщение от HHIMERA Посмотреть сообщение
С приходом знаний и понимания все эти телодвижения отпадают... автоматически...
Каких знаний, ты о чем?
Помнить аббревиатуры и функционал всех регистров и их битовых полей? Обезьянье знание.
Да и причем тут описания регистров?
А если это собственные дефайны, а если проектов в работе несколько, а если это разбор чужого проекта?
Марк вне форума   Ответить с цитированием
Старый 14.09.2017, 13:44   #8
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 30
Сообщений: 1,438
Вес репутации: 2927/63
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: STM32 Вопрос по Keil

HHIMERA
насчет заучивания параметров периферии, я соглашусь с Марком.
это в какой же амок нужно впасть, чтобы заучить такое?

я еще более-менее знаю управляющие регистры ядра и ассемблер целевой платформы, но заучивание периферии вызывает у меня недоумение.
besogon вне форума   Ответить с цитированием
Старый 14.09.2017, 14:11   #9
petrd
Senior Member
 
Регистрация: 09.02.2008
Адрес: Воронеж
Возраст: 46
Сообщений: 1,671
Вес репутации: 1522/67
petrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant future
Отправить сообщение для petrd с помощью ICQ
По умолчанию Re: STM32 Вопрос по Keil

Цитата:
Сообщение от besogon Посмотреть сообщение
HHIMERA
насчет заучивания параметров периферии, я соглашусь с Марком.
это в какой же амок нужно впасть, чтобы заучить такое?
Угу, хочу написать
Код:
if((GPIOA->IDR & GPIO_IDR_0) == GPIO_IDR_0)
для stm32f0xx написано
Код:
 GPIO_IDR_0                 ((uint32_t)0x00000001)
а для stm32f100x тоже самое не катит, вроде тоже, но выглядит чуть иначе
Код:
 GPIO_IDR_IDR0                 ((uint32_t)0x00000001)
Какой смысл запоминать "переменные константы", главное - знать где их искать.
Только не надо говорить, что если написать так
Код:
if(GPIOA->IDR & (1<<0)) == (1<<0))
то прокатит и там и там.
__________________
License MikroC, MikroC PRO and EasyPIC5 by mikroElektronika (the dead mikroICD replaced PICKit2 & PICKit3)
petrd вне форума   Ответить с цитированием
Старый 14.09.2017, 14:23   #10
HHIMERA
Senior Member
 
Регистрация: 10.06.2008
Возраст: 55
Сообщений: 2,720
Вес репутации: 3742/99
HHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond repute
По умолчанию Re: STM32 Вопрос по Keil

Цитата:
Сообщение от besogon Посмотреть сообщение
заучивание периферии вызывает у меня недоумение.

И как же вы с ней собираетесь работать... не зная как она работает???

Если для вас СТМ32... просто как быстрый пик-авр... как ногодрыг-ардуина, только круче... если "не хочу учиться, а хочу на чужих либах жениться"... то есть КУБ... есть ардуйня... есть "Долгая дорога в дюнах"(с)... Тогда конечно... зачем вам регистры периферии... зачем вам вообще всё... что там внутри... сиди тыкай мышкой в экран монитора... авось что-то и получится... может быть... Но тогда и вопросов... типа... "а как посмотреть?"... не возникает...
Вот и получается... что одним это и даром не впёрлось... априори... изначально... другим это не нужно... потому как из самого написания и так видно... что чему принадлежит и к чему относится... Для остального есть референс и даташит...
__________________
"Я не даю готовых решений, я заставляю думать!"(С)
HHIMERA вне форума   Ответить с цитированием
Старый 14.09.2017, 14:44   #11
HHIMERA
Senior Member
 
Регистрация: 10.06.2008
Возраст: 55
Сообщений: 2,720
Вес репутации: 3742/99
HHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond repute
По умолчанию Re: STM32 Вопрос по Keil

Цитата:
Сообщение от petrd Посмотреть сообщение
Угу, хочу написать
Какой смысл запоминать "переменные константы", главное - знать где их искать.
Синдром первой новобрачной ночи... не знаете кто кого...
Да большинство через это проходили... и никто не умер... и никто на это уже не обращает внимание... Там подобных нестыковок и в Кейле... и в самом референсе валом... И что теперь... в лес не ходить... грибов не есть???
А зачем вам их запоминать??? Вы должны знать как работает периферия определённого семейства... и в чём там различия... и всего лишь... Всё есть остальное есть в хедере... Часто вы в пиках в хедер заглядывали??? Нет!!! А здесь уже придётся... со временеи будете занлядывать всё реже... Привыкнете... или забросите СТМ32...
Я... лично... не вижу никаких проблем... или уже свыкся...
Ф1хх... Ф2хх... Ф4хх... или даже СТМ8... да какая разница??? Перекинул кусок кода... ругнулось... исправил по хедеру... и пошёл дальше...
__________________
"Я не даю готовых решений, я заставляю думать!"(С)
HHIMERA вне форума   Ответить с цитированием
Старый 14.09.2017, 14:58   #12
HHIMERA
Senior Member
 
Регистрация: 10.06.2008
Возраст: 55
Сообщений: 2,720
Вес репутации: 3742/99
HHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond repute
По умолчанию Re: STM32 Вопрос по Keil

Цитата:
Сообщение от petrd Посмотреть сообщение
Угу, хочу написать
Код:
if((GPIOA->IDR & GPIO_IDR_0) == GPIO_IDR_0)
для stm32f0xx написано
Код:
 GPIO_IDR_0                 ((uint32_t)0x00000001)
а для stm32f100x тоже самое не катит, вроде тоже, но выглядит чуть иначе
Код:
 GPIO_IDR_IDR0                 ((uint32_t)0x00000001)
.
А вообще... ничего хорошего не вижу в этой записи... Многа букафф... а смысла никакого... да и по МИСРА... насколько помню... на что-то там обращали внимание... Лучше осмысленно писать... через макросы... типа if(BUTTON_READY)... тогда через условную компиляцию можно написать один и тот-же код и для Ф1ххх... и для Ф4хх... и для Ф0ххх... один раз... чтобы потом по хедерам глаза не ломать... ИМХО...
__________________
"Я не даю готовых решений, я заставляю думать!"(С)
HHIMERA вне форума   Ответить с цитированием
Старый 14.09.2017, 15:09   #13
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 30
Сообщений: 1,438
Вес репутации: 2927/63
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: STM32 Вопрос по Keil

petrd
с моей точки зрения
Код:
 GPIO_IDR_0                 ((uint32_t)0x00000001)
есть плохой образец кода.

в описании к целевому контроллеру есть описание цифрового порта.
по которому можно составить аля
Код:
typedef struct {
	volatile uint32_t ansel;
	volatile uint32_t anselclr;
	volatile uint32_t anselset;
	volatile uint32_t anselinv;
	volatile uint32_t tris;
	volatile uint32_t trisclr;
	volatile uint32_t trisset;
	volatile uint32_t trisinv;
	volatile uint32_t port;
	volatile uint32_t portclr;
	volatile uint32_t portset;
	volatile uint32_t portinv;
	volatile uint32_t lat;
	volatile uint32_t latclr;
	volatile uint32_t latset;
	volatile uint32_t latinv;
	volatile uint32_t odc;
	volatile uint32_t odcclr;
	volatile uint32_t odcset;
	volatile uint32_t odcinv;
	volatile uint32_t wpu;
	volatile uint32_t wpuclr;
	volatile uint32_t wpuset;
	volatile uint32_t wpuinv;
	volatile uint32_t wpd;
	volatile uint32_t wpdclr;
	volatile uint32_t wpdset;
	volatile uint32_t wpdinv;
	volatile uint32_t cncon;
	volatile uint32_t cnconclr;
	volatile uint32_t cnconset;
	volatile uint32_t cnconinv;
	volatile uint32_t cnen;
	volatile uint32_t cnenclr;
	volatile uint32_t cnenset;
	volatile uint32_t cneninv;
	volatile uint32_t cnstat;
	volatile uint32_t cnstatclr;
	volatile uint32_t cnstatset;
	volatile uint32_t cnstatinv;
} pic32mx_port_t;

...
#define PIC32MX_PORTA ((pic32mx_port_t*)0xbf886000)
#define PIC32MX_PORTB ((pic32mx_port_t*)0xbf886100)
#define PIC32MX_PORTC ((pic32mx_port_t*)0xbf886200)
...
pic32mx_port_t* const pic32mx_porta = PIC32MX_PORTA;
pic32mx_port_t* const pic32mx_portb = PIC32MX_PORTB;
pic32mx_port_t* const pic32mx_portc = PIC32MX_PORTC;
зачем скатывать в УГ аля
Код:
GPIO_IDR_0                 ((uint32_t)0x00000001)
а потом удивлять, что логика поплыла, из-за того, что нет понимания, кто и как порт захватил?

все это в stm32. можно спокойно определить что нужно, и безопасно писать код.
besogon вне форума   Ответить с цитированием
Старый 14.09.2017, 15:17   #14
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 30
Сообщений: 1,438
Вес репутации: 2927/63
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: STM32 Вопрос по Keil

пример, естественно, навскидку.
для конкретного stm - нужно открывать документацию и смотреть раскладку интерфейса конкретного порта в память.
у ti, microchip, stm и.т.д - у всех все более-менее похоже сделано.
и есть более-менее нормальные описания.
besogon вне форума   Ответить с цитированием
Старый 14.09.2017, 15:43   #15
petrd
Senior Member
 
Регистрация: 09.02.2008
Адрес: Воронеж
Возраст: 46
Сообщений: 1,671
Вес репутации: 1522/67
petrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant futurepetrd has a brilliant future
Отправить сообщение для petrd с помощью ICQ
По умолчанию Re: STM32 Вопрос по Keil

Цитата:
Сообщение от besogon Посмотреть сообщение
petrd
с моей точки зрения
Код:
 GPIO_IDR_0                 ((uint32_t)0x00000001)
есть плохой образец кода.
Да не не мной это писано, это в CMSIS для STM32 написано (stm32f051x8.h). Плохо ли хорошо ли там написано не мне судить.
__________________
License MikroC, MikroC PRO and EasyPIC5 by mikroElektronika (the dead mikroICD replaced PICKit2 & PICKit3)
petrd вне форума   Ответить с цитированием
Старый 14.09.2017, 16:17   #16
HHIMERA
Senior Member
 
Регистрация: 10.06.2008
Возраст: 55
Сообщений: 2,720
Вес репутации: 3742/99
HHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond repute
По умолчанию Re: STM32 Вопрос по Keil

Цитата:
Сообщение от besogon Посмотреть сообщение
с моей точки зрения
Код:
 GPIO_IDR_0                 ((uint32_t)0x00000001)
есть плохой образец кода.
Ничего плохого в этом нет... это просто определение GPIO_IDR_0... И тем более переписывать там ничего не нужно...
С одной стороны напрягает зоопарк GPIO_IDR_0 и GPIO_IDR_IDR0... с другой стороны... сразу видно под какое семейство писалось...
Не... можно конечно переписать и под себя... но смысла в этом особого и нет... порты в разных семействах имеют и другие отличия... Т.е. ... как бы... к общему знаменателю один фиг всё не привести...
Вот с СТМ8 - да... там вообще бардак... там стОит хедер довести до ума... там большая часть битов вообще никак не определена и даже не упомянута...
__________________
"Я не даю готовых решений, я заставляю думать!"(С)
HHIMERA вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по ПИД в инерциальной, сильношумящей системе. FlashBack Общетехнические вопросы 4 29.04.2011 17:06
Вопрос по прерываниям RB7-RB4 KSB31 Продукция MICROCHIP 4 15.08.2010 23:53
Вопрос по Altium Designer Iptash Печатный монтаж 2 14.09.2008 14:57
вопрос по PICC EXT_INT Вопросы начинающих 13 26.08.2008 07:53
Вопрос новичка по Си ramonchik Продукция MICROCHIP 3 05.03.2007 16:28


Часовой пояс GMT +3, время: 13:05.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd. Перевод: zCarot