Например TDA7294

Форум РадиоКот • Просмотр темы - Программирование STM8
Форум РадиоКот
Здесь можно немножко помяукать :)



Текущее время: Вт мар 09, 2021 14:13:14

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 2073 ]     ... , , , 102, ,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Вс янв 10, 2021 12:57:41 
Потрогал лапой паяльник

Карма: 1
Рейтинг сообщений: 23
Зарегистрирован: Вс янв 11, 2015 20:33:32
Сообщений: 354
Рейтинг сообщения: 0
Кому интересно, вот здесь :
https://radiokot.ru/forum/viewtopic.php?f=17&t=174887


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Вс янв 10, 2021 12:58:41 
Говорящий с текстолитом
Аватар пользователя

Карма: 11
Рейтинг сообщений: 250
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 1519
Рейтинг сообщения: 0
Вот так ещё неплохо.
Код:
struct B
{
  int x;
  B(int y=0){ x=y; }
  operator int() { return x++;} 
};

volatile int a;

int main()
{             
  for(B b;;a=b);   
}

На STM8
Код:
//volatile int a;
`a`:
        DS8 2
       
//int main()
//{             
//   for(B b;;a=b);   
        CLRW      X
??main_0:
        LDW       L:`a`, X
        INCW      X
        JRA       L:??main_0
//}


Вернуться наверх
 
Друзья! Скоро Новый Год! Китайский! Но мы работаем и в праздники тоже!

JLCPCB, всего $2 за прототип печатной платы! Цвет - любой!

Отличное качество, подтвержденное более чем 600,000 пользователей! Более 10,000 заказов в день.

Зарегистрируйтесь и получите два купона по 5$ каждый:https://jlcpcb.com/quote

Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Пт янв 15, 2021 12:51:50 
Потрогал лапой паяльник

Карма: 1
Рейтинг сообщений: 23
Зарегистрирован: Вс янв 11, 2015 20:33:32
Сообщений: 354
Рейтинг сообщения: 0
Только "въезжаю", в язык Си. Есть вопрос.
Изображение
Касательно функции getchar(), в строке №7, программа, подойдя к выполнению этой функции, останавливается. Т.е. ждет, пока не будет введен с клавиатуры какой либо символ ? Точно так же, и в строке №12, в теле цикла, программа приостанавливается. Я все правильно понимаю ?


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Пт янв 15, 2021 13:48:30 
Опытный кот

Зарегистрирован: Пт июл 12, 2019 22:52:01
Сообщений: 869
Рейтинг сообщения: -3
sergey.UA, в мане же все нормально написано! Неужто тяжко в консоли набрать просто man getchar?
Цитата:
Функция fgetc() считывает очередной символ из потока stream и возвращает unsigned char преобразованный в int, или EOF при достижении конца файла или при возникновении ошибки.
Функция getc() похожа на fgetc(), но она может быть реализована как макрос, который определяет состояние stream более одного раза.
Функция getchar() эквивалентна getc(stdin).
...
Неблокирующие аналоги смотрите в unlocked_stdio(3).

А если набрать man unlocked_stdio, можно увидеть неблокирующие аналоги.

Только к чему здесь stdio, если тема посвящена микроконтроллерам? Использовать stdio в микроконтроллерах — признак неквалифицированности разработчика.

_________________
Я на гитхабе, в ЖЖ


Вернуться наверх
 
Как сделать ИП с ультрашироким диапазоном?

Ключевыми особенностями высоковольтных SiC MOSFET Wolfspeed являются малое сопротивление канала в открытом состоянии и минимальное значение паразитных емкостей, что позволяет максимально снизить статические и динамические потери, и, соответственно, увеличить рабочую частоту преобразователей.

Читать статью>>
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Пт янв 15, 2021 14:42:10 
Потрогал лапой паяльник

Карма: 1
Рейтинг сообщений: 23
Зарегистрирован: Вс янв 11, 2015 20:33:32
Сообщений: 354
Рейтинг сообщения: 0
То что вопрос не по теме, я в курсе.
И, вопрос был не о том КАК РАБОТАЕТ ФУНКЦИЯ getchar()?
А о том что, ПРИОСТАНАВЛИВАЕТСЯ ЛИ, И ОЖИДАЕТ ВВОДА ПРОГРАММА, В ТАКИХ ТО СТРОКАХ?
Сама функция у меня работает, и в консоли все прекрасно выводится.
И то что с Си не сталкивался ВООБЩЕ, я же ЧЕТКО указал.
Если не сложно, подскажите по поводу ЗАДАВАЕМОГО ВОПРОСА.
Спасибо.


Вернуться наверх
 
STM32L5 – первое семейство ST на ядре Cortex-M33 с ультранизким потреблением

Первое семейство STM32L5 на базе ядра ARM Cortex-M33, флагман семейств ST с низким потреблением. Область применения IoT, расходомеры, умные часы, промышленные датчики и многое другое. Опубликованы материалы двух практических вебинаров по расчету энергопотребления и работой с TrustZone. Рассмотрены особенности и примеры практической реализации CAN FD на STM32L5.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Пт янв 15, 2021 14:48:42 
Собутыльник Кота

Карма: 36
Рейтинг сообщений: 798
Зарегистрирован: Ср ноя 29, 2017 06:58:50
Сообщений: 2915
Рейтинг сообщения: 0
Eddy_Em, набрал man ничё не вышло. Что я делаю не так?
sergey.UA, есть ветка вопросов по с/с++ она теоретически больше подходит, так как здесь конкретно stm8. Вас интересует поведение этой функции именно в STM8?


Вернуться наверх
 


Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Пт янв 15, 2021 15:30:30 
Потрогал лапой паяльник

Карма: 1
Рейтинг сообщений: 23
Зарегистрирован: Вс янв 11, 2015 20:33:32
Сообщений: 354
Рейтинг сообщения: 0
BlackKilkennyCat, понял, перейду в более подходящую ветку. От меня просьба, заглядывайте туда иногда.))
Вы правы, касательно STM8. Допустим есть такая функция, ( предположительно ) которая ожидает появления высокого уровня на конкретном пине микроконтроллера. То по аналогии с функцией getchar() в языке Си для Visual Studio, микроконтроллер будет уходить в " вечный цикл ", до появления этого самого высокого уровня? Надеюсь понятно попытался объяснить что я хочу узнать.


Вернуться наверх
 


Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Пт янв 15, 2021 16:00:05 
Опытный кот

Зарегистрирован: Пт июл 12, 2019 22:52:01
Сообщений: 869
Рейтинг сообщения: -3
Eddy_Em, набрал man ничё не вышло. Что я делаю не так?

Может, пробуешь на игровой приставке эту команду набрать?
микроконтроллер будет уходить в " вечный цикл ", до появления этого самого высокого уровня? Надеюсь понятно попытался объяснить что я хочу узнать.

Есть такое понятие, как поллинг. Не нужно постоянно сидеть и ждать события: можно его периодически проверять. Аналогично с вводом: достаточно использовать select или poll, чтобы не торчать постоянно в ожидании, пока появятся данные. Например.

А на МК есть еще прерывания и DMA, что сильно расширяет возможности.

_________________
Я на гитхабе, в ЖЖ


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Пт янв 15, 2021 16:55:06 
Собутыльник Кота

Карма: 36
Рейтинг сообщений: 798
Зарегистрирован: Ср ноя 29, 2017 06:58:50
Сообщений: 2915
Рейтинг сообщения: 0
sergey.UA, всё зависит от алгоритма и аппаратных возможностей. Если алгоритм требует ничего не делать до получения 1 на пине - можно сделать цикл while с условием выхода из него - появление 1. Как уже выше сказали, существует метод опроса (polling), когда можно эпизодически опрашивать пин, не появилась ли там 1. Этот метод прост, но имеет две проблемы: можно пропустить короткий синал; невозможно установить точное время его появления. Существуют метод обработки прерываний, при условии, что именно этот контроллер умеет это делать на этом пине. В этом случае появление 1 вызовет событие, обработкой которого займётся специальная функция.
В обоих методах можно продолжать что-то делать, а можно и ожидать в цикле, или вообще усыпить микроконтроллер, активируя лишь изредка или по внешнему прерыванию.

DMA, о котором зачем-то сказано выше, рассматривать в данном случае не стоит.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Пт янв 15, 2021 17:17:50 
Потрогал лапой паяльник

Карма: 1
Рейтинг сообщений: 23
Зарегистрирован: Вс янв 11, 2015 20:33:32
Сообщений: 354
Рейтинг сообщения: 0
По поводу работы программы в микроконтроллере, касательно STM8, я так и думал.
Проворачивал нечто подобное, разными способами с камнями PIC16Fxxx.
А по поводу работы функции getchar() и приостановки выполнения программы в Visual Studio, спрошу уже в более подходящей ветке.
Спасибо коллеги что реагируете. :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Пт янв 15, 2021 17:36:15 
Опытный кот

Зарегистрирован: Пт июл 12, 2019 22:52:01
Сообщений: 869
Рейтинг сообщения: 0
DMA, о котором зачем-то сказано выше, рассматривать в данном случае не стоит.

Как же не стоит? Без DMA не реализовать какой-нибудь дурацкий протокол вроде 1-wire или того же управления светодиодами...
Да и просто, если нужно замерить длительность нескольких коротких импульсов, очень удобно использовать DMA, которое будет автоматом по событию capture складывать нужные данные в массив.

Но, понятно, что это не относится к STM8S. Как, в принципе, и stdio…

_________________
Я на гитхабе, в ЖЖ


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Пт янв 15, 2021 20:05:01 
Вымогатель припоя

Карма: -17
Рейтинг сообщений: 11
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 608
Рейтинг сообщения: 0
Касательно функции getchar(), в строке №7, программа, подойдя к выполнению этой функции, останавливается. Т.е. ждет, пока не будет введен с клавиатуры какой либо символ ? Точно так же, и в строке №12, в теле цикла, программа приостанавливается. Я все правильно понимаю ?

EOF - признак конца файла (для файловых потоков). Тот пример просто читает поток символов с одного файлового потока и записывает в другой (копирует), пока не дойдёт до конца файла.
Всё.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Пт янв 15, 2021 20:19:07 
Потрогал лапой паяльник

Карма: 1
Рейтинг сообщений: 23
Зарегистрирован: Вс янв 11, 2015 20:33:32
Сообщений: 354
Рейтинг сообщения: 0
Вот блин, неужели я спрашивал про ПРИЗНАК КОНЦА ФАЙЛА - EOF?!!!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Сб янв 16, 2021 14:58:45 
Вымогатель припоя

Карма: -17
Рейтинг сообщений: 11
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 608
Рейтинг сообщения: 0
а о чём?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Сб янв 16, 2021 17:53:26 
Потрогал лапой паяльник

Карма: 1
Рейтинг сообщений: 23
Зарегистрирован: Вс янв 11, 2015 20:33:32
Сообщений: 354
Рейтинг сообщения: 0
О том что, приостанавливается ли выполнение программы на указанных ранее строках?
Только и всего лишь.
Если не трудно, можете перейти в ветку где обсуждается Си_Си++ ?
https://radiokot.ru/forum/viewtopic.php ... 1#p3961061


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Вт янв 19, 2021 09:40:56 
Мучитель микросхем
Аватар пользователя

Карма: 10
Рейтинг сообщений: 69
Зарегистрирован: Сб янв 28, 2006 22:47:24
Сообщений: 444
Рейтинг сообщения: 0
можно пропустить короткий синал

В особо важных случаях можно поставить один корпус с триггером и считывать его состояние, сбрасывая после чтения. В некоторых PIC микроконтроллерах периферия содержит отдельные триггеры, входы и выходы можно вывести наружу настройкой альтернативных функций. Возможно, есть триггеры и в STM.

_________________
Астролябия-сама меряет, было бы что мерять!!!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Вт янв 19, 2021 09:58:44 
Опытный кот

Зарегистрирован: Пт июл 12, 2019 22:52:01
Сообщений: 869
Рейтинг сообщения: 0
Asmodey, зачем? Есть прерывания, в них можно флаг выставить, а потом неспешно проверять себе…

_________________
Я на гитхабе, в ЖЖ


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Вт янв 19, 2021 11:07:12 
Мучитель микросхем
Аватар пользователя

Карма: 10
Рейтинг сообщений: 69
Зарегистрирован: Сб янв 28, 2006 22:47:24
Сообщений: 444
Рейтинг сообщения: 0
1. прерывания слишком ценный ресурс, чтобы тратить их на проверку состояний линий портов.
2. микроконтроллер в состоянии sleep. Пока просыпается по прерыванию, все тысячу раз может измениться. Известная ситуация - спящий микроконтроллер и энкодер, вращение которого регистрируется по прерыванию. Без триггера он будет "крутиться" либо рандомно, либо в одну сторону.

А вообще, вопрос не ко мне, а к обсуждавшим выше способы регистрации уровней на входах МК.

_________________
Астролябия-сама меряет, было бы что мерять!!!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Вт янв 19, 2021 13:01:23 
Вымогатель припоя

Карма: -17
Рейтинг сообщений: 11
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 608
Рейтинг сообщения: 0
Известная ситуация - спящий микроконтроллер и энкодер, вращение которого регистрируется по прерыванию. Без триггера он будет "крутиться" либо рандомно, либо в одну сторону.
Для этого есть таймеры МК, работающие в режим захвата. Естественно - их тактирование не должно отключаться на время сна ядра.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Вт янв 19, 2021 13:13:51 
Мучитель микросхем
Аватар пользователя

Карма: 10
Рейтинг сообщений: 69
Зарегистрирован: Сб янв 28, 2006 22:47:24
Сообщений: 444
Рейтинг сообщения: 0
Естественно - их тактирование не должно отключаться на время сна ядра.

Тогда в некоторых случаях теряется смысл перевода мк в спящий режим. Скажем, в радиоприемной аппаратуре. Гасить нужно все, что может гадить в эфир, в том числе и тактовый генератор микроконтроллера, чтобы не ловить его гармоники.

_________________
Астролябия-сама меряет, было бы что мерять!!!


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 2073 ]     ... , , , 102, ,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y