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

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

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

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

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

 

На связи круглосуточно
[email protected]
[email protected]

 

 

 

 

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


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

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

 

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


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

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

1 minute ago, Artos5 said:

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

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

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

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


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

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

 

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

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


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

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

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

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

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

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

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

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

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

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


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

 

 

15 minutes ago, Artos5 said:

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

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


Нет ни в спаме ни в почте. Попробуйте [email protected]
 

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


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

Да ну ..

Банального :

if(GPIO==PRESS)

{

delay(50);

if(GPIO==PRESS)

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

}}

 

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

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


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

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

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


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

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. При чём тут "ардуинщики" ?

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

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


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

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

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


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

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

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

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


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

Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...