Перейти к содержанию
    

Artery USART перестали работать

9 hours ago, dOb said:

Нужно использовать прерывания, DMA.

Совершенно не обязательно, хотя DMA и прерывания идеологически правильны.

Spoiler
////////////////////////////////////////////////////////////////////////////////
// Цикл обмена по SPI

inline uint8
spi_exchange( uint8 _aByte )
{
    uint8
        tmp8;

    uint32
        prot;

    prot = 10'000'000;

    while( wiz_spi -> SR & SPI_SR_RXNE )
    {
        tmp8 = wiz_spi -> DR;

        prot--;

        if( prot == 0 )
        {
            break;
        }
    };

    *( volatile uint8 *)&( wiz_spi -> DR) = _aByte;

    prot = 10'000'000;

    while( !( wiz_spi -> SR & SPI_SR_RXNE ) )
    {
        prot--;

        if( prot == 0 )
        {
            break;
        }
    }

    tmp8 = *( volatile uint8*)&( wiz_spi -> DR );

    return( tmp8 );
}

////////////////////////////////////////////////////////////////////////////////

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 12/29/2023 at 6:24 AM, arhiv6 said:

Зачем такое делать вручную, если специально для этого существуют стилизаторы кода? Попробуйте Astyle, он очень простой в использовании. Выберите готовый стиль, похожий на свой (что-то вроде --style=kr ), потом при желании можно под себя его донастроить. Уверен, для notepad++ есть плагины для работы с astyle. Но даже если нету - то можно простой макрос сделать, который будет вызывать astyle для текущего файла по какому-нибудь сочетанию клавиш.

уже работает и так, но спасибо за интересную ссылку

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 12/29/2023 at 4:53 PM, tonyk_av said:

хотя DMA и прерывания идеологически правильны.

Тут тоже палка о двух концах.

Запустили вы DMA и пошли выполнять другую работу.

Передача еще не завершилась, а тут еще кто-то захотел отправить.

Появляется необходимость блокировок, флагов, ожиданий.

В одном месте добавляете изящества, в другом теряете это изящество.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Давайте всеже завершим правильными регэкспами тему, что началась с регэкспов неправильных.

Правильные regexp-ы для PowerGrip. Который оказался абсолютный чемпион в этом деле.

 

\)\s*[\n\r]+\s*\{\s*[\n\r]+         ){\n
do\s*[\n\r]+\s*\{\s*[\n\r]+         do{\n
else\s*[\n\r]+\s*\{\s*[\n\r]+       else{\n 
\"C\"\s*[\n\r]+\s*\{\s*[\n\r]+      "C"{\n
enum\s*[\n\r]+\s*\{\s*[\n\r]+       enum{\n
struct\s*[\n\r]+\s*\{\s*[\n\r]+     struct{\n
union\s*[\n\r]+\s*\{\s*[\n\r]+      union{\n
\=\s*[\n\r]+\s*\{\s*[\n\r]+         = {\n 
PROTOTYPE\s*[\n\r]+\s*\{\s*[\n\r]+  PROTOTYPE {\n
 

Этот набор регэкспов переводит в cтиль «K&R» любое форматирование с вынесенной на следующую строку открывающей скобкой.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...