реклама на сайте
подробности

 
 
4 страниц V  < 1 2 3 4 >  
Reply to this topicStart new topic
> STM32F0+Keil=простой старт, Помогите начать работать с АРМ Cortex M0
hd44780
сообщение Jul 21 2013, 17:30
Сообщение #31


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



А где RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE); ?
Или в F0 не нужно?


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
andries5
сообщение Jul 21 2013, 17:47
Сообщение #32


Участник
*

Группа: Участник
Сообщений: 56
Регистрация: 15-01-09
Из: Moldova
Пользователь №: 43 421



Видимо моя вина, не расписал комментарии. Но это нормально, запомнит. А то автоматом прошло и хорошо, а надо в отладке пройти по шагам и понять что там делается подробно. Я так делаю.
В ARM каждый модуль необходимо включить подачей тактового сигнала.
hd44780 Вам подсказал, порты А и С были включены, а В нет. Потому и не заработал.

Сообщение отредактировал andries5 - Jul 21 2013, 17:51
Go to the top of the page
 
+Quote Post
Artos5
сообщение Jul 21 2013, 18:12
Сообщение #33


Частый гость
**

Группа: Участник
Сообщений: 124
Регистрация: 21-07-13
Из: Украина, Ахтырка
Пользователь №: 77 613



Цитата(andries5 @ Jul 21 2013, 20:47) *
Видимо моя вина, не расписал комментарии. Но это нормально, запомнит. А то автоматом прошло и хорошо, а надо в отладке пройти по шагам и понять что там делается подробно. Я так делаю.
В ARM каждый модуль необходимо включить подачей тактового сигнала.
hd44780 Вам подсказал, порты А и С были включены, а В нет. Потому и не заработал.


Большущее Вам спасибо! Не знаю , куда я смотрел ? sm.gif
Теперь работает порт В : )))

Мне начинает нравится ARM! Особенно точностью генерирования сигнала! Настроил прерывание на 100Гц и в нем меняю состояние выхода, и мой мультиметр показал точно 50.00Гц !
Go to the top of the page
 
+Quote Post
andries5
сообщение Jul 21 2013, 19:28
Сообщение #34


Участник
*

Группа: Участник
Сообщений: 56
Регистрация: 15-01-09
Из: Moldova
Пользователь №: 43 421



Цитата(Artos5 @ Jul 21 2013, 21:12) *
Особенно точностью генерирования сигнала! Настроил прерывание на 100Гц и в нем меняю состояние выхода, и мой мультиметр показал точно 50.00Гц !

Учтите, на плате STM32F0Discovery целевой МК, тактируется от встроенного генератора. На плате нет кварца! Только место под него.
Go to the top of the page
 
+Quote Post
Artos5
сообщение Jul 21 2013, 19:31
Сообщение #35


Частый гость
**

Группа: Участник
Сообщений: 124
Регистрация: 21-07-13
Из: Украина, Ахтырка
Пользователь №: 77 613



Цитата(andries5 @ Jul 21 2013, 22:28) *
Учтите, на плате STM32F0Discovery целевой МК, тактируется от встроенного генератора. На плате нет кварца! Только место под него.


Я это заметил sm.gif
А скажите пожалуйста что это за системный таймер? И с какой макс. частотой могут происходить прерывания?
Go to the top of the page
 
+Quote Post
HHIMERA
сообщение Jul 21 2013, 19:44
Сообщение #36


Местный
***

Группа: Участник
Сообщений: 226
Регистрация: 10-07-09
Пользователь №: 51 126



Цитата(andries5 @ Jul 21 2013, 22:28) *
Учтите, на плате STM32F0Discovery целевой МК, тактируется от встроенного генератора. На плате нет кварца! Только место под него.

И что??? Вы ничего не путаете???
Цитата
SB18 (MCO) ON Provides the 8 MHz for OSC_IN from MCO of STM32F103C8T6.

Go to the top of the page
 
+Quote Post
andries5
сообщение Jul 21 2013, 19:52
Сообщение #37


Участник
*

Группа: Участник
Сообщений: 56
Регистрация: 15-01-09
Из: Moldova
Пользователь №: 43 421



Верно! SB18 замкнут, а SB17 разомкнут. Не обратил внимания. Значит от кварца.
А о SYSTICK почитать например http://chipspace.ru/stm32-systick

Сообщение отредактировал andries5 - Jul 21 2013, 19:54
Go to the top of the page
 
+Quote Post
Artos5
сообщение Jul 22 2013, 19:46
Сообщение #38


Частый гость
**

Группа: Участник
Сообщений: 124
Регистрация: 21-07-13
Из: Украина, Ахтырка
Пользователь №: 77 613



Цитата(andries5 @ Jul 21 2013, 22:52) *
Верно! SB18 замкнут, а SB17 разомкнут. Не обратил внимания. Значит от кварца.
А о SYSTICK почитать например http://chipspace.ru/stm32-systick


Спасибо! Хорошо разжевано! sm.gif
Вот по больше таких примеров и описаний!
Go to the top of the page
 
+Quote Post
andries5
сообщение Jul 22 2013, 20:14
Сообщение #39


Участник
*

Группа: Участник
Сообщений: 56
Регистрация: 15-01-09
Из: Moldova
Пользователь №: 43 421



Сейчас разбираюсь с таймерами на F0, подбираю подобные описания.
Go to the top of the page
 
+Quote Post
Artos5
сообщение Jul 22 2013, 20:16
Сообщение #40


Частый гость
**

Группа: Участник
Сообщений: 124
Регистрация: 21-07-13
Из: Украина, Ахтырка
Пользователь №: 77 613



Здесь были? >

http://forum.easyelectronics.ru/viewtopic....f=35&t=7080

Там по одной ссылке есть очень хорошая книга по СТМ32 на Русском!
Go to the top of the page
 
+Quote Post
_D9_
сообщение Aug 16 2013, 17:21
Сообщение #41


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 16-02-06
Пользователь №: 14 373



вопрос снят)

Сообщение отредактировал _D9_ - Aug 16 2013, 17:45
Go to the top of the page
 
+Quote Post
KuAlex
сообщение Nov 6 2013, 04:12
Сообщение #42





Группа: Новичок
Сообщений: 6
Регистрация: 6-11-13
Пользователь №: 79 060



Цитата(andries5 @ Jul 21 2013, 11:47) *
Создал проект, пробуйте.


Не могу запустить проект в симуляторе - *** error 65: access violation at 0x0000000C : no 'read' permission

Подскажите куда копать?

Пробовал с stm32f100 debug c помощью st-link проходило успешно, вот только меню периферии существенно отличалось - можно было наблюдать подробную информацию о состоянии портов, настройках и частотах. Здесь же голые регистры показаны. Этот момент от чего зависит?
Go to the top of the page
 
+Quote Post
Falkon_99
сообщение Nov 7 2013, 05:40
Сообщение #43


Частый гость
**

Группа: Участник
Сообщений: 169
Регистрация: 26-03-12
Из: Харьков
Пользователь №: 71 010



В симуляторе проэкт может не работать, например если при инициализации в коде есть бесконечный цикл ожидания готовности регистров. На реальной плате эта проверка легко проходит, а в симуляторе зависает. Может помочь галочка RUNtoMAIN, с которой вы пропустите начальный код STARTUP
Go to the top of the page
 
+Quote Post
KuAlex
сообщение Nov 8 2013, 01:30
Сообщение #44





Группа: Новичок
Сообщений: 6
Регистрация: 6-11-13
Пользователь №: 79 060



Цитата(Falkon_99 @ Nov 7 2013, 07:40) *
В симуляторе проэкт может не работать, например если при инициализации в коде есть бесконечный цикл ожидания готовности регистров. На реальной плате эта проверка легко проходит, а в симуляторе зависает. Может помочь галочка RUNtoMAIN, с которой вы пропустите начальный код STARTUP


Дело в том что проект не стартовал совсем, в нулевом адресе. Галочка не помогла..
С другого проекта подглядел, здесь помогло. Установил параметр SARMCM3.DLL ->> "-REMAP" во вкладке Debug. Ошибки все равно идут, но симулирует, правда периферию показывает не так подробно как 32F100 и пользы не приносит. Что бы это значило?

И еще вопрос, есть шанс прошить F0 при помощи st-link установленного vlDiscovery или сразу заказывать программатор вместе с МК?
Go to the top of the page
 
+Quote Post
Artos5
сообщение Nov 12 2013, 07:54
Сообщение #45


Частый гость
**

Группа: Участник
Сообщений: 124
Регистрация: 21-07-13
Из: Украина, Ахтырка
Пользователь №: 77 613



Добрый день дорогие друзья и товарищи!
Помогите пожалуйста чайнику...

Начну по порядку.
есть файлы:
1) main.c // тут есть функции индикации
2) STM32F0xx_it.c // тут содержатся обработчики прерывания

Во втором файле , такой обработчик:
Код
void SysTick_Handler(void)
{
indication_funс();
}


Код
void led_out (){

           clear_leds; // digit off
      
         switch (y) // select digit
          {
          
           case 0:
            
              IND_PORT->ODR  = led_buff[0];            
            digit_1;
           break;
           case 1:
            
              IND_PORT->ODR  = led_buff[1];            
            digit_2;
           break;
          
           case 2:
            
              IND_PORT->ODR  = led_buff[2];            
            digit_3;
           break;
          
          }
                          if (++y>2)y=0;
}

void indication_func()
  {
  

           temp1 = temp;

           temp_lcd1=temp_lcd2=temp_lcd3=0;
          while (temp1>99)
          {
            temp1-=100;
            temp_lcd3++;
          }

          while (temp1>9)
          {
            temp1-=10;
            temp_lcd2++;
          }

          while (temp1<10 && temp1!=0)
          {
            temp1--;
            temp_lcd1++;
          }

       if(temp<10)
       {
          led_buff[2]=led_table[temp_lcd1];
          led_buff[1]=led_table[10];
          led_buff[0]=led_table[10];
       }
       else if(temp>9 && temp<100)
       {
          led_buff[1]=led_table[temp_lcd1];
          led_buff[2]=led_table[temp_lcd2];
          led_buff[0]=led_table[10];
       }
       else if(temp>99)
       {
          led_buff[0]=led_table[temp_lcd1];
          led_buff[1]=led_table[temp_lcd2];
          led_buff[2]=led_table[temp_lcd3];
       }  
            led_out();
}


Хочу поместить в обработчик системного таймера функцию

Код
indication_func();


Никакими из всевозможных способов мне не получается это сделать....

Надо такое:
в прерывании работает индикация и разложение числа на разряды, а в основном цикле я только отправляю
в переменную значения.

Код
temp=111;


Помогите пожалуйста! Буду очень благодарен!

Сообщение отредактировал Artos5 - Nov 12 2013, 08:00
Go to the top of the page
 
+Quote Post

4 страниц V  < 1 2 3 4 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 07:39
Рейтинг@Mail.ru


Страница сгенерированна за 0.0313 секунд с 7
ELECTRONIX ©2004-2016