User Tag List

Показано с 1 по 10 из 280

Тема: Микроконтроллеры STM32, "с нуля".

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11

    Регистрация
    29.03.2005
    Адрес
    Ярославль
    Сообщений
    1,102
    Спасибо Благодарностей отдано 
    14
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Ewgeny7 Посмотреть сообщение
    Собственно, я уже запустил прием на прерываниях.
    "Hello, World!" уже погонял в обоих направлениях.
    Завтра отчитаюсь на суд знатоков
    Нужен еще пример?

    ---------- Post added at 12:12 ---------- Previous post was at 11:49 ----------

    Цитата Сообщение от Ewgeny7 Посмотреть сообщение

    Теперь вкратце о подаче 0 или 1 на выход пина.
    GPIOB->ODR |= GPIO_ODR_ODR_7; - записываем 1 в бит регистра пина.
    GPIOB->ODR &= ~GPIO_ODR_ODR_7; - сбрасываем битик пина, на выходе - 0.
    Все хорошо но эти операции не атомарные да и ЧМЗ же .
    Для атомарных операций с портами GPIO есть регистр GPIOx_BSRR

    6.3.5 I/O data bitwise handling
    The bit set reset register (GPIOx_BSRR) is a 32-bit register which allows the application to
    set and reset each individual bit in the outputdata register (GPIOx_ODR). The bit set reset
    register has twice the size of GPIOx_ODR.
    To each bit in GPIOx_ODR, correspond two control bits in GPIOx_BSRR: BSRR(i) and
    BSRR(i+SIZE). When written to 1, bit BSRR(i) setsthe corresponding ODR(i) bit. When
    written to 1, bit BSRR(i+SIZE) resetsthe ODR(i) corresponding bit.
    Writing any bit to 0 in GPIOx_BSRR does not have any effect on the corresponding bit in
    GPIOx_ODR. If there is an attempt to bothset and reset a bit in GPIOx_BSRR, the set
    action takes priority.
    Using the GPIOx_BSRR register to change the values of individual bits in GPIOx_ODR is a
    “one-shot” effect that does not lock the GPIOx_ODR bits. The GPIOx_ODR bits can always
    be accessed directly. The GPIOx_BSRR register provides a way of performing atomic
    bitwise handling.
    There is no need for the software to disable interrupts when programming the GPIOx_ODR
    at bit level: it is possible to modify one or more bits in a single atomic AHB write access.


    Логически разделен на два 16 битных . Запись 1 в младший устанавливает соответствующий бит в порту, запись в старший сбрасывает .

    Код:
    GPIOA->BSRRL = GPIO_BSRR_BS_0;  // установить бит 0 PORTA
    
    GPIOA->BSRRH =GPIO_BSRR_BS_0;  // сбросить   бит 0 PORTA


    ---------- Post added at 13:12 ---------- Previous post was at 12:12 ----------

    Цитата Сообщение от Ewgeny7 Посмотреть сообщение
    Я почему-то думаю, что часы мы обязательно сделаем, одним из первых проектов. просто так принято в мире микроконтроллеров, сначала часы и термометр, затем всё остальное

    Часики (RTC) + или набортный LCD или LED дисплей -
    аппаратный драйвер LED описан здесь http://kazus.ru/forums/showpost.php?...95&postcount=8
    с автоматической коррекцией разнояркости сегментов .
    Либо здесь попроще http://kazus.ru/forums/showpost.php?...postcount=3239
    Или любой дисплей с SPI (от сотовых) .

    Для термодатчиков (1wire) пользуем USART .
    Последний раз редактировалось dosikus; 04.05.2014 в 13:15.
    ZXM-Phoenix 1024+PROF ROM+SMUC+VGA
    Profi 1024+CF+CPM+VGA
    ATARI 800XL+SIO2PC+SIO2SD
    RK86@Maximite

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 17
    Последнее: 26.12.2015, 23:22
  2. Ответов: 19
    Последнее: 30.09.2011, 03:08
  3. Ответов: 0
    Последнее: 15.08.2010, 14:38
  4. Ответов: 18
    Последнее: 27.08.2008, 20:27
  5. Ответов: 6
    Последнее: 20.11.2007, 11:29

Ваши права

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