Jump to content

    
MiklPolikov

Программка для STM8

Recommended Posts

Всем привет. Ищется человек, который может быстро и безглючно написать программку для STM8S001J3M3.
Эта простая программка нужна для серийного изделия. Поэтому нужно не "кое-как лишь бы заказчик принял и отстал" а грамотно и безглючно.
 

ТЗ:
Нога 1 подтянута к +, к ней подключена кнопка.
Нога 7 push-pull выход.
После нажатия на кнопку на выходе появляется сигнал 1МГц с коэффициентом заполнения 10%. Точность не важна, это просто управление микромощным ёмкостным преобразователем.
При повторном нажатии сигнал пропадает.
Спустя 5 минут сигнал пропадает сам.
Когда сигнала нет, выход в низком уровне.
 

Кто готов сделать- не тратте время на "Здравствуйте" .. "С уважением" ... , а лучше в первом письме дайте ответы на контрольные вопросы:
1)Как будет организована защита МК от зависания?
2)Как будет организована защита от дребезга кнопки ?
3)Как будет организована защита от спонтанного включения в момент подачи питания ? Например, если RC ячейка на входе кнопки не успела зарядится.
4) Какой цикл вы предпочитаете использовать, и почему?
   while(i<100){i++;}
   while(i!=100){i++;}

 

На связи круглосуточно
3_141592@mail.ru
miklpolikov@gmail.com

 

 

 

 

Share this post


Link to post
Share on other sites

Вопросы- это всего лишь проверка на понимание общих принципов. Кто их понимает, сможет написать содержательные ответы или содержательные опровержения моих рассуждений.
Бюджет - рассчитывается по формуле   ( рабочее время х стоимость времени ). Под временем понимается всё время на проект, включая общение со мной и чтение этой ветки форума.

 

Share this post


Link to post
Share on other sites

Вопросы топикстартеру:
- Защиты (кроме "от зависания") должны быть реализованы программно, или можно внешней "обвеской"?
- STM32 instead STM8 можно?

1 minute ago, Artos5 said:

Во втором да , есть ошибка ) компилятор ругнется )

Я сразу это заметил , но подумал что автор опечатку допустил .

Скорее как элемент теста...

Share this post


Link to post
Share on other sites

Добавлю ещё по поводу бюджета.

 

Раньше всегда писал бюджеты сразу. Такие, что бы можно было рассчитывать на работу с профессионалом.  Но столкнулся вот с какой ситуацией: Я предлагаю $$$, а разработчик был бы готов делать и за $$. В итоге результат всё равно стоит $$, сколько бы я не заплатил - лучше согласившийся просто не умеет.  И я получаю результат на низком уровне, и разработчик не понимает чем я не доволен. Поэтому, не хочу озвучивать сразу, пусть тот, кто готов сделать, сам оценивает стоимость работы. У школьника она в 10 раз меньше, чем у профи. 

Share this post


Link to post
Share on other sites

Уважаемый автор ! А что в данном проекте такого особенного что можно сделать плохо ? 

Все очень таки тривиально .

Опрос кнопки + программный антидребезг.

При событии запускаем таймер и запускаем ШИМ 10% и частотой 1МГц.

По истечению времени или при повторном событии - выключаем ШИМ (PWM=0).

Сделает любой студент.

Вы так пишете будто тут проект чуть ли не операционная система собственная ))

Кстати , я вам на почту написал. Возможно мое письмо в спам фильтр попало. 

Share this post


Link to post
Share on other sites

 

 

15 minutes ago, Artos5 said:

Все очень таки тривиально .
Кстати , я вам на почту написал. Возможно мое письмо в спам фильтр попало. 

Вы попадаете в 0.1% людей, которые знают что такое "программный фильтр дребезга", поэтому представить не можете, на сколько плохо можно сделать ) Моя скрупулёзность результат большого опыта)
 


Нет ни в спаме ни в почте. Попробуйте miklpolikov@gmail.com
 

Share this post


Link to post
Share on other sites

Да ну ..

Банального :

if(GPIO==PRESS)

{

delay(50);

if(GPIO==PRESS)

{ //  должно быть достаточно :) 

}}

 

Для фильтрации дребезга и прочей бяки.

Share this post


Link to post
Share on other sites

С Artos5 не договорились, потому что у него под рукой не нашлось платы что бы проверить. 

Share this post


Link to post
Share on other sites
On 12/14/2019 at 3:46 PM, MiklPolikov said:

1)Как будет организована защита МК от зависания?
2)Как будет организована защита от дребезга кнопки ?
3)Как будет организована защита от спонтанного включения в момент подачи питания ? Например, если RC ячейка на входе кнопки не успела зарядится.
4) Какой цикл вы предпочитаете использовать, и почему?
   while(i<100){i++;}
   while(i!=100){i++;}

1. Watchdog элементарный.

2. Выше сказал - конечный автомат.

3. Можно просто первые 100-150мс на кнопки не реагировать.

4. Здесь все равно. Только нужно учесть, что некоторые старые компиляторы видят разницу между ++i и i++, и вместо того, чтобы в обоих случаях сделать i+=1, для записи i++ они делают что-то вроде tmp=i; i+=1. Поэтому на всякий случай лучше писать везде ++i. По поводу (i<100) или же (i!=100) - если i строго инкрементируется и инкрементируется она лишь внутри цикла, разницы нет. Другое дело - когда i волатильная и может инкрементироваться еще и в каком-нибудь прерывании, вот тогда нужно неравенство.

3 minutes ago, x893 said:

P.S. При чём тут "ардуинщики" ?

Потому что чаще всего подобный бред в их "коде" встречается.

Share this post


Link to post
Share on other sites

Тему почистил. Желающие обсуждать алгоритмы программного антидребезга, создайте отдельную тему в соответсвующем подфоруме. Модератор

Share this post


Link to post
Share on other sites

Написана или отлажена?

Без разницы (i<100) или же (i!=100) возможно компилятору но не контролеру, в зависимости от конструкции цикл может различаться на пару тактов.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.