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

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

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

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

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

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


 
Опции темы

FAQ по STM8

Непрочитано 17.12.2019, 13:14  
eddy
Почётный гражданин KAZUS.RUN
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,684
Сказал спасибо: 116
Сказали Спасибо 823 раз(а) в 597 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: FAQ по STM8

Сообщение от MikeF Посмотреть сообщение
я говорю про стандартный printf
"стандартный printf" недопустимо использовать на STM8! Оно ж отожрет половину флеша. Так что, явно там printf какой-то "нестандартный".
Сообщение от MikeF Посмотреть сообщение
Вы для чего используете прерывания при отправке, чтобы пока байт отправляется, основная прога исполнялась?
Да, чтобы не выжидать долго. Если бы на STM8S был DMA, все было бы проще.
Реклама:
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!
eddy вне форума  
Непрочитано 17.12.2019, 13:23  
MikeF
Прописка
 
Регистрация: 14.04.2005
Сообщений: 120
Сказал спасибо: 12
Сказали Спасибо 18 раз(а) в 12 сообщении(ях)
MikeF на пути к лучшему
По умолчанию Re: FAQ по STM8

Сообщение от eddy Посмотреть сообщение
"стандартный printf" недопустимо использовать на STM8! Оно ж отожрет половину флеша.
С чего вдруг недопустимо, я ж использовал. Ну если речь идет про stm8s001, то может быть и отожрет

Сообщение от eddy Посмотреть сообщение
Да, чтобы не выжидать долго.
Понятно, но это имеет смысл только если время отправки байта в первом приближении › времени одного цикла программы, иначе только кодозависимые-джиттероподобные паузы будут между байтами. Или вы следующий байт в прерывании отправляете?

Последний раз редактировалось MikeF; 17.12.2019 в 13:29.
MikeF вне форума  
Непрочитано 17.12.2019, 13:29  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,313
Сказал спасибо: 2,633
Сказали Спасибо 12,076 раз(а) в 6,082 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: FAQ по STM8

Сообщение от MikeF Посмотреть сообщение
А можно целиком этот пример увидеть
Это чисто функции getchar() и putchar() через прерывания.

Сообщение от MikeF Посмотреть сообщение
в нем как раз работают через стандартную stdio
Не совсем. Переназначены стандартные на эти.
Да и зачем Вам? Формируете строку, а потом отдаете эту строку самописной функции вывода строки, которая и выведет строку без запинок и "зависаний" процессора в тяжелом printf-e.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
Непрочитано 17.12.2019, 13:33  
MikeF
Прописка
 
Регистрация: 14.04.2005
Сообщений: 120
Сказал спасибо: 12
Сказали Спасибо 18 раз(а) в 12 сообщении(ях)
MikeF на пути к лучшему
По умолчанию Re: FAQ по STM8

Сообщение от akegor Посмотреть сообщение
Не совсем.
Ну а всё же, как найти этот пример? А то у меня нет CV.

Сообщение от akegor Посмотреть сообщение
Да и зачем Вам?
Удобно использовать когда нужно выводить данные с числовыми вставками из переменных.
MikeF вне форума  
Непрочитано 17.12.2019, 14:07  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,313
Сказал спасибо: 2,633
Сказали Спасибо 12,076 раз(а) в 6,082 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: FAQ по STM8

Сообщение от MikeF Посмотреть сообщение
когда нужно выводить данные с числовыми вставками из переменных
"sprintf" прекрасно сформирует строку. Останется только направить ее в нужное место.
Пример? Да хоть так:
PHP код:
void putstr(char buf) {
    int i=0;
    while (buf[i]) {
        my_putchar(buf[i]);
        i++;
    }
    return;
} 
my_putchar - вывод на прерываниях.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
Непрочитано 17.12.2019, 14:15  
MikeF
Прописка
 
Регистрация: 14.04.2005
Сообщений: 120
Сказал спасибо: 12
Сказали Спасибо 18 раз(а) в 12 сообщении(ях)
MikeF на пути к лучшему
По умолчанию Re: FAQ по STM8

Я понимаю, но заменив printf на sprintf мы не сэкономим память как хотел eddy
Спасибо, буду думать что оптимальнее будет применить.
MikeF вне форума  
Непрочитано 17.12.2019, 15:23  
eddy
Почётный гражданин KAZUS.RUN
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,684
Сказал спасибо: 116
Сказали Спасибо 823 раз(а) в 597 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: FAQ по STM8

Сообщение от MikeF Посмотреть сообщение
Или вы следующий байт в прерывании отправляете?
Естественно! На что прерывания еще нужны, если нет DMA? Когда буфер полный, выставляю флаг - длина буфера. КА проверяет этот флаг. Как только он ненулевой, а новых посылок не запущено, запускает посылку и дальше работа идет внутри прерывания. Как только посылка отправлена, выставляется флаг готовности, и можно следующий буфер отправлять.
Как выглядят мои "printf" у меня можно на гите посмотреть. Но там ничего эдакого. просто вывод целых чисел в 10 или 16 формате. Ну и иногда нужно выводить числа с фиксированной точностью, там почти то же самое, что в выводе десятичных целых, только в определенной позиции точка еще выводится.
Так формируется выводной буфер. Далее, как вся строка сформирована, скармливаем ее посыльному. А уж посыльным может быть что угодно: UART на DMA или прерываниях, USB, SPI...
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!

Последний раз редактировалось eddy; 17.12.2019 в 15:25.
eddy вне форума  
Непрочитано 17.12.2019, 17:59  
MikeF
Прописка
 
Регистрация: 14.04.2005
Сообщений: 120
Сказал спасибо: 12
Сказали Спасибо 18 раз(а) в 12 сообщении(ях)
MikeF на пути к лучшему
По умолчанию Re: FAQ по STM8

Сообщение от eddy Посмотреть сообщение
КА проверяет этот флаг. Как только он ненулевой, а новых посылок не запущено, запускает посылку и дальше работа идет внутри прерывания.
Т.е. когда на отправку данные сформированы вы разрешаете прерывание TXE и отправляете первый байт, а остальные байты отправляет уже алгоритм в прерывании?
MikeF вне форума  
Непрочитано 17.12.2019, 18:22  
eddy
Почётный гражданин KAZUS.RUN
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,684
Сказал спасибо: 116
Сказали Спасибо 823 раз(а) в 597 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: FAQ по STM8

MikeF, именно так.
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!
eddy вне форума  
Непрочитано 17.12.2019, 18:36  
MikeF
Прописка
 
Регистрация: 14.04.2005
Сообщений: 120
Сказал спасибо: 12
Сказали Спасибо 18 раз(а) в 12 сообщении(ях)
MikeF на пути к лучшему
По умолчанию Re: FAQ по STM8

Я думал о таком способе, но он мне показался не прозрачным - часть данных отправляется в одном месте кода, часть - в другом, поэтому я подумал что у вас данные отправляются в основном цикле, а прерывание только "крутит" счетчик и служит флагом что можно отправлять следующие байты. Вообщем взял на себя лишнее
MikeF вне форума  
 

Метки
arm, cortex, stm32, stm8
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Импульсная зарядка для авто-аккумуляторов (новодел) Falconist Источники питания и свет 1915 14.03.2024 19:56
FAQ (ЧаВО) по PROTEUS для начинающих и не только dosikus Proteus 221 07.03.2024 22:45
STM8(S/L), первые впечатления kison STM8 1423 19.05.2018 19:23
Вопросы и замечания по топику - FAQ по PROTEUS avr123-nm-ru Proteus 291 05.06.2015 20:49
FAQ Импульсный трансформатор alberio Источники питания и свет 87 13.11.2012 18:07


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


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