Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту


Ответ
Опции темы

С чего начать изучать стм?

Непрочитано 11.02.2017, 15:28   #31
NewWriter
Почётный гражданин KAZUS.RUN
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,481
Сказал спасибо: 396
Сказали Спасибо 2,222 раз(а) в 1,317 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: С чего начать изучать стм?

Сообщение от eddy Посмотреть сообщение
неправильная у вас мигалка
Это пчелы неправильные А мигалка правильная
А у вас букав много в мигалке.
И попробуйте объясните начинающему, че такое "сисьтик" Кстати, действительно, чето шибко много там с сисьтиком накручено. Както просче все это должно выглядеть...
Реклама:
NewWriter вне форума   Ответить с цитированием
Непрочитано 11.02.2017, 15:29   #32
eddy
Почётный гражданин KAZUS.RUN
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,684
Сказал спасибо: 116
Сказали Спасибо 823 раз(а) в 597 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: С чего начать изучать стм?

majorka65, часто (но однократно) используемые конструкции красиво будет оформить в отдельный (общий для всех проектов) заголовочный файл как static inline функции. В итоге удобней будет новые проекты создавать.
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!
eddy вне форума   Ответить с цитированием
Сказали "Спасибо" eddy
majorka65 (11.02.2017)
Непрочитано 11.02.2017, 15:34   #33
eddy
Почётный гражданин KAZUS.RUN
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,684
Сказал спасибо: 116
Сказали Спасибо 823 раз(а) в 597 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: С чего начать изучать стм?

Сообщение от NewWriter Посмотреть сообщение
чето шибко много там с сисьтиком накручено
Самый минимум. Вообще, конечно, правильней систик (я так и делаю в проектиках) использовать как системный таймер (прерывание раз в миллисекунду инкрементирует счетчик), а мигалку на каком-нибудь другом таймере сделать.
Хотя, не скрою: самое первое знакомство с микроконтроллерами я обычно на простейшей мигалке делаю: в прерывании систик инвертирую сигнал на ноге светодиода. Если период мигания совпадает с расчетным, значит, ничего в настройках тайминга я не напортачил, и можно уже к более серьезным вещам переходить.
А с настройками таймеров у меня совсем недавно был прикол: мигалка для STM32F042 неправильно работала на 030. Посмотрел, а там делители совсем по-другому сделаны.
Вот тебе и совместимость внутри одной серии! Уж могли бы STM хотя бы общую архитектуру внутри серий одинаковой делать, чтобы простейший код, написанный под один камень, работал на всех камнях серии. Понятно, что всякие HSI48 не везде есть, но уж общую схему базового тактирования могли бы одинаковой сделать!
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!
eddy вне форума   Ответить с цитированием
Непрочитано 11.02.2017, 15:40   #34
eenote
Частый гость
 
Регистрация: 11.02.2017
Сообщений: 25
Сказал спасибо: 11
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
eenote на пути к лучшему
По умолчанию Re: С чего начать изучать стм?

Уважаемые , а может перестанете ругаться и снизойдете до меня ?

Можно вас попросить накидать по пунктам -как создать свой проект с нуля в Kel, не используя SPL и CubeMX.
Или я слишком много прошу.
Заранее большое спасибо.
eenote вне форума   Ответить с цитированием
Непрочитано 11.02.2017, 16:01   #35
NewWriter
Почётный гражданин KAZUS.RUN
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,481
Сказал спасибо: 396
Сказали Спасибо 2,222 раз(а) в 1,317 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: С чего начать изучать стм?

Сообщение от eddy Посмотреть сообщение
Посмотрел, а там делители совсем по-другому сделаны.
Эммм... Делители? Какие, в таймере? Не, ну что вы, в таймере то PSC одинаково работает как в F030, так и в F746.
Да и AHB/APB, если по умолчанию, то коэфф. деления 1:1
Общая схема тактирования применительно к таймерам тоже одинакова от F030 до F746, отличие только в количестве участков тактирования и всевозможных делителей.
NewWriter вне форума   Ответить с цитированием
Непрочитано 11.02.2017, 17:06   #36
eddy
Почётный гражданин KAZUS.RUN
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,684
Сказал спасибо: 116
Сказали Спасибо 823 раз(а) в 597 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: С чего начать изучать стм?

Сообщение от NewWriter Посмотреть сообщение
Делители? Какие, в таймере?
Да, делитель на 8. В стандартном CMSIS что-то криво было, поэтому в 030 тот же код, что и для 042, в 8 раз быстрей заставлял systick крутиться. Я чуть подшаманил, стало нормально.
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!
eddy вне форума   Ответить с цитированием
Непрочитано 11.02.2017, 18:20   #37
oleg110592
Гражданин KAZUS.RUN
 
Регистрация: 05.04.2009
Сообщений: 973
Сказал спасибо: 35
Сказали Спасибо 154 раз(а) в 133 сообщении(ях)
oleg110592 на пути к лучшему
По умолчанию Re: С чего начать изучать стм?

Сообщение от eenote Посмотреть сообщение
как создать свой проект с нуля в Kel, не используя SPL и CubeMX
Можно прямо в Кейле скачать пример "мигающего светодиода" под родственный микроконтроллер, внимательно рассмотреть и создать новый проект по образу и подобию. Или этот пример использовать как шаблон, подкорректировав настройки под нужный микроконтроллер.
Миниатюры:
Нажмите на изображение для увеличения
Название: Keil_example.png
Просмотров: 0
Размер:	60.6 Кб
ID:	110102  
oleg110592 вне форума   Ответить с цитированием
Сказали "Спасибо" oleg110592
eenote (11.02.2017)
Непрочитано 11.02.2017, 18:40   #38
eenote
Частый гость
 
Регистрация: 11.02.2017
Сообщений: 25
Сказал спасибо: 11
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
eenote на пути к лучшему
По умолчанию Re: С чего начать изучать стм?

Такс проект сделал, скомпилировал и проверил в железе.
Hello world - запущен.
Можно продвигаться дальше.
Если все не против я скоро завалю вас вопросами.
eenote вне форума   Ответить с цитированием
Сказали "Спасибо" eenote
majorka65 (11.02.2017)
Непрочитано 11.02.2017, 18:55   #39
NewWriter
Почётный гражданин KAZUS.RUN
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,481
Сказал спасибо: 396
Сказали Спасибо 2,222 раз(а) в 1,317 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: С чего начать изучать стм?

Относительно мигания "SOS" и системного таймера..
Вот такой вариант. Настройка частоты сисьтаймера не меняется, всё-же это ведь системный таймер, но в его обработчке есть флаги отсчета интервалов.
Причем, поскольку все остальные интервалы кратны интервалу "точки", то можно убрать из сисьтаймера кратные интервалы, а их отсчитывать в цикле ожидания. Тут уж кому как нравится.
Нажмите, чтобы открыть спойлер

PHP код:
#include "stm32f0xx.h"
volatile uint32_t systimer_ms = 0;            //переменная счетчик мс

struct Morse_flags {                        // флаги для интервалов Морзе
        unsigned int dot :1;                // флаг "точки"
        unsigned int dash :1;                // флаг "тире"
        unsigned int letter_spacing :1;        // флаг "межбуквенный интервал"
        unsigned int word_spacing :1;        // флаг "межсловный интервал"
        } timerflag;                        // структура для таймера

/*============== Основная программа ==============*/
int main(void)
{
    /*-- Настройка порта PA ----*/
    RCC-›AHBENR |= RCC_AHBENR_GPIOAEN;        // включено тактирование порта А
    GPIOA-›MODER |= GPIO_MODER_MODER0_0;    // PA0 настроен на выход

    /*-- настройка системного таймера для интервалов --*/
    SysTick_Config(SystemCoreClock/1000);    //Настройка системных тиков (1 kHz)

    while (1)
    {
        /*-- Три "точки" --*/
        for (int imp = 0; imp ‹ 3; imp++)
        {
            GPIOA-›BSRR = GPIO_BSRR_BS_0;    // включили св.диод
            timerflag.dot = 0;                // сбросили флаг таймера "точки"
            while (timerflag.dot == 0) {}    // ожидание истечения интервала "точки"

            GPIOA-›BSRR = GPIO_BSRR_BR_0;    // выключили св.диод
            timerflag.dot = 0;                // сбросили флаг таймера
            while (timerflag.dot == 0) {}    // ожидание истечения интервала паузы
        }//-----

        /*-- Три "тире" --*/
        for (int imp = 0; imp ‹ 3; imp++)
        {
            GPIOA-›BSRR = GPIO_BSRR_BS_0;    // включили св.диод
            timerflag.dash = 0;                // сбросили флаг таймера "тире"
            while (timerflag.dash == 0) {}    // ожидание истечения интервала "тире"

            GPIOA-›BSRR = GPIO_BSRR_BR_0;    // выключили св.диод
            timerflag.dot = 0;                // сбросили флаг таймера
            while (timerflag.dot == 0) {}    // ожидание истечения интервала паузы
        }//-----

        /*-- Три "точки" --*/
        for (int imp = 0; imp ‹ 3; imp++)
        {
            GPIOA-›BSRR = GPIO_BSRR_BS_0;    // включили св.диод
            timerflag.dot = 0;                // сбросили флаг таймера "точки"
            while (timerflag.dot == 0) {}    // ожидание истечения интервала "точки"

            GPIOA-›BSRR = GPIO_BSRR_BR_0;    // выключили св.диод
            timerflag.dot = 0;                // сбросили флаг таймера
            while (timerflag.dot == 0) {}    // ожидание истечения интервала паузы
        }//-----

        /*-- Межсловный интервал --*/
        timerflag.word_spacing = 0;                // сбросили флаг таймера
        while (timerflag.word_spacing == 0) {}    // ожидание истечения межсловного интервала
    }//--------------
}//==================================================  =====================

/*============== Интервалы системного таймера ===============*/
void SysTick_Handler(void)
{
    systimer_ms++;                        //инкремент по 1 мс

    if  (!(systimer_ms % 150))            // если 150 мс прошло,
    {
        timerflag.dot = 1;                // то флаг точки
    }

    if  (!(systimer_ms % (150 * 3)))    // если 450 мс прошло,
    {
        timerflag.dash = 1;                // то флаг тире
    }

    if  (!(systimer_ms % (150 * 7)))    // если 1050 мс прошло,
    {
        timerflag.word_spacing = 1;        // то флаг межсловного интервала
    }

} 

Последний раз редактировалось NewWriter; 12.02.2017 в 17:51.
NewWriter вне форума   Ответить с цитированием
Непрочитано 11.02.2017, 19:05   #40
scorpi_0n
Прописка
 
Регистрация: 10.03.2016
Сообщений: 114
Сказал спасибо: 14
Сказали Спасибо 46 раз(а) в 41 сообщении(ях)
scorpi_0n на пути к лучшему
По умолчанию Re: С чего начать изучать стм?

Сообщение от NewWriter Посмотреть сообщение
Относительно мигания "SOS" и системного таймера..
Вот такой вариант. Настройка частоты сисьтаймера не меняется, всё-же это ведь системный таймер, но в его обработчке есть флаги отсчета интервалов.
Причем, поскольку все остальные интервалы кратны интервалу "точки", то можно убрать из сисьтаймера кратные интервалы, а их отсчитывать в цикле ожидания.
Пепел ардуины упорно стучит в чьё-то сердце. Обычный таймер и DMAR, вот и всё что нужно для этого. И хоть "Юстас Алексу" на немецком и с рязанским акцентом.
scorpi_0n вне форума   Ответить с цитированием
Ответ


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TMS320F2812 - с чего начать? ilix Цифровые сигнальные процессоры 9 07.02.2014 20:24
С чего начать? PanamaRus Proteus, KiCAD и другие ECAD 7 01.12.2013 00:27
PICи - с чего начать? Alexxx2005 Микроконтроллеры, АЦП, память и т.д 11 27.05.2007 01:37
C чего начать? melkij Микроконтроллеры, АЦП, память и т.д 11 21.08.2006 13:39
м/к Cyglal. c чего начать? Kos1yan Микроконтроллеры, АЦП, память и т.д 0 24.05.2006 18:16


Часовой пояс GMT +4, время: 07:02.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.