roboforum.ru

Технический форум по робототехнике.

МикроКонтроллер AVR начинающим - общие вопросы

Re: МикроКонтроллер AVR начинающим - общие вопросы

Drunya » 01 фев 2013, 21:46

Вычитал в ДШ что toggle пином можно делать не по принципу "чтение-модификация-запись" регистра PORTx, а просто установкой соответствующего бита PINx.
Итак, пишем
Код: Выделить всёРазвернуть
PINB  |= (1<<PB0);
на выходе имеем
Код: Выделить всёРазвернуть
      // 2
      PINB  |= (1<<PB0);
  62:   b0 9a          sbi   0x16, 0   ; 22
  64:   b0 9a          sbi   0x16, 0   ; 22
Бит устанавливается дважды. Это я что-то не так делаю, или глюк компилятора? Работаю в Atmel Studio 6.

Re: МикроКонтроллер AVR начинающим - общие вопросы

avr123.nm.ru » 01 фев 2013, 23:53

Наверно глюк.

Re: МикроКонтроллер AVR начинающим - общие вопросы

Drunya » 03 фев 2013, 20:00

Разобрался. Оптимизатор шалит. Хотя в рамках дозволенного.

Re: МикроКонтроллер AVR начинающим - общие вопросы

Duhas » 04 фев 2013, 10:47

Товарищи, напомните плиз, нормирован ли ток защитных дидов в портах АВР? если да, то как называется этот параметр? в дш на xmegaAU не нашел.

Re: МикроКонтроллер AVR начинающим - общие вопросы

avr123.nm.ru » 04 фев 2013, 10:59

ранее не указывался в ДШ. я писал в Атмел лет 5 назад - ответили до 1 мА.

Re: МикроКонтроллер AVR начинающим - общие вопросы

Duhas » 04 фев 2013, 11:00

большое спасибо!

Re: МикроКонтроллер AVR начинающим - общие вопросы

Ahtyng » 17 фев 2013, 12:00

Здравствуйте уважаемые! Так случилось, что ко мне в руки попала плата stm32f4DISCOVERY я в микроконтроллерах совершенный профан, но темой очень интересуюсь. Во многих местах советуют начинать изучение МК с ассемблера и после того как разберешься в структуре переходить на С. Но тут я столкнулся с такой проблемой: я не смог найти компилятор для stm32 или подойдет любой компилятор для AVR? Ну вообщем помогите выбрать среду разработки и компилятор.

З.Ы.: понимаю, что для ATMIL примеров и вообще материала не в пример больше, однако макетка уже есть и покупать другую как то денег жалко...

Re: МикроКонтроллер AVR начинающим - общие вопросы

Myp » 17 фев 2013, 18:20

какой нафиг ассемблер.
ты ещё про перфокарты спроси
забудь это слово и не вспоминай, а тех кто советовал ассемблер смело шли в баню.

http://robocraft.ru/blog/ARM/653.html

Re: МикроКонтроллер AVR начинающим - общие вопросы

elmot » 17 фев 2013, 18:33

Ahtyng писал(а):Здравствуйте уважаемые! Так случилось, что ко мне в руки попала плата stm32f4DISCOVERY я в микроконтроллерах совершенный профан, но темой очень интересуюсь. Во многих местах советуют начинать изучение МК с ассемблера и после того как разберешься в структуре переходить на С. Но тут я столкнулся с такой проблемой: я не смог найти компилятор для stm32 или подойдет любой компилятор для AVR? Ну вообщем помогите выбрать среду разработки и компилятор.

З.Ы.: понимаю, что для ATMIL примеров и вообще материала не в пример больше, однако макетка уже есть и покупать другую как то денег жалко...

Начнем с того, что не надо трогать ассемблер.
Продолжим тем, что эта плата - НЕ AVR, компиляторы и среды от AVR не пойдут. Эта плата - на базе МК STM32F407VG, совместимого с ARM Cortex M4. Для него и ищем компиляторы, а именно - IAR, KEIL, Atollic или Coocox - на выбор.

Re: МикроКонтроллер AVR начинающим - общие вопросы

Duhas » 17 фев 2013, 18:58

Myp писал(а): а тех кто советовал ассемблер смело шли в баню.

щас возьму и обижусь! хотя в баньку можно бы сходить!

Re: МикроКонтроллер AVR начинающим - общие вопросы

avr123.nm.ru » 18 фев 2013, 02:14

Ahtyng писал(а): я не смог найти компилятор для stm32
правда? и гугл не помог?

https://www.google.ru/webhp?sourceid=ch ... =699&ion=1

Re: МикроКонтроллер AVR начинающим - общие вопросы

Ahtyng » 25 фев 2013, 16:13

Myp писал(а):какой нафиг ассемблер.
ты ещё про перфокарты спроси
забудь это слово и не вспоминай, а тех кто советовал ассемблер смело шли в баню.
http://robocraft.ru/blog/ARM/653.html


Все таки С++ слишком абстрагирован от "железа", а цель моя не только научиться программировать МК, но я для начала понять его. Вполне возможно, что подход мой не верен, однако сейчас я начал изучать асм и продолжу это занятие, а по сему еще пара дурацких вопросов: поморгал благополучно светодиодами и добрался я до прерываний, как будто бы все настроил: в RCC_APB2 разрешил тактирование SYSCFGEN, в SYSCFG_EXTICR1 выбрал PA0, в EXTI_IMR, EXTI_RTSR и EXTI_FTSR активировал 1-ю линию, ну и кнопку PA0 естественно инициализировал, а дальше начались непонятки.
1. В референс мануале указанны 16 мультиплексоров EXTI0-EXTI15, а векторов прерывания всего 5. Где написано какая линия по какому вектору прерываний работает(я внимательно читал референс мануал(ну не весь конечно, только этот пункт) и уверен, что не проглядел, может где то отдельно написано)?
2. Зная вектор прерывания как в эту область памяти поместить обработчик? Ассемблер я действительно знаю очень плохо, потому ногами прошу не пинать.
3. Посоветуйте книгу по ARM ассемблеру и по Keil можно и на английском, но русский конечно предпочтительнее.
4. Во многих примерах на С++ при инициализации прерывания настраивают NVIC_IRQ в референс мануале этот момент не освещен поясните пожалуйста, что это?

Re: МикроКонтроллер AVR начинающим - общие вопросы

Dmitry__ » 25 фев 2013, 16:41

Про "забудь про асм", не слушай их, они все наркоманы :D
Я для stm32 asm понимал через:
http://stm32asm.ru/periph_gpio_init.html
http://teplofizik.diary.ru/?tag=4580486

тут про вектора:
http://teplofizik.diary.ru/p182735637.htm?oam#more1

Re: МикроКонтроллер AVR начинающим - общие вопросы

elmot » 25 фев 2013, 21:05

Ahtyng писал(а):Все таки С++ слишком абстрагирован от "железа", а цель моя не только научиться программировать МК, но я для начала понять его.

Не так-то уж и абстрагирован. В конце концов можно на C писать, там меньше зауми.
полне возможно, что подход мой не верен, однако сейчас я начал изучать асм и продолжу это занятие, а по сему еще пара дурацких вопросов: поморгал благополучно светодиодами и добрался я до прерываний, как будто бы все настроил: в RCC_APB2 разрешил тактирование SYSCFGEN, в SYSCFG_EXTICR1 выбрал PA0, в EXTI_IMR, EXTI_RTSR и EXTI_FTSR активировал 1-ю линию, ну и кнопку PA0 естественно инициализировал, а дальше начались непонятки.

Следует учесть, что у механических кнопок есть дребезг - будут ложные срабатывания, их надо обрабатывать
1. В референс мануале указанны 16 мультиплексоров EXTI0-EXTI15, а векторов прерывания всего 5. Где написано какая линия по какому вектору прерываний работает(я внимательно читал референс мануал(ну не весь конечно, только этот пункт) и уверен, что не проглядел, может где то отдельно написано)?

http://www.st.com/st-web-ui/static/acti ... 031020.pdf
смотрим таблицу на стр 196, position 23 и position 40

2. Зная вектор прерывания как в эту область памяти поместить обработчик? Ассемблер я действительно знаю очень плохо, потому ногами прошу не пинать.

просмотрите ассемблеровские файлы из стандартной библиотеки, поищите там Vector Table

4. Во многих примерах на С++ при инициализации прерывания настраивают NVIC_IRQ в референс мануале этот момент не освещен поясните пожалуйста, что это?

Освещен. NVIC - это Nested vectored interrupt controller. Это контроллер прерываний, если его не настроить, прерываний не будет.

Re: МикроКонтроллер AVR начинающим - общие вопросы

Duhas » 26 фев 2013, 13:45

а пчаму все это в ветке про АВР ? )


Rambler\'s Top100 Mail.ru counter