
Max
30.07.2017
22:21:01
Решение софтверных проблем хардверными способами...)

Alex
30.07.2017
22:21:35
хехе
ну я думаю, тут проблема в коде, но я сколько не искал - не понимаю(

Max
30.07.2017
22:22:27
Я бы преложил сгладить входные данные слегка, если не нужна быстрая реакция. А то шум, все дела.

Google

Max
30.07.2017
22:23:07
Дребезг, опять же...
(спрятался)

Alex
30.07.2017
22:24:24
ну я для теста просто втыкаю перемчку в землю и в напряжение питания. Делаю все это в момент delay, так что дребезга, думаю, тут нет.
а вот по поводу сгладить - не совсем понимаю. Если бы был шум, то работало бы раз на раз. А тут стабильно. Одно лишнее срабатывание и все ок.

Max
30.07.2017
22:50:09
А если 17 и 18 строки схлопнуть в одну?

Alex
30.07.2017
22:51:15
да разве есть разница?)

Max
30.07.2017
22:51:43
Нет. Просто ночь и туплю.

Alex
30.07.2017
22:51:58
вот сейчас схлопнул)
по той же ссылке

Max
30.07.2017
22:52:20
Так.
Я просто проблему в пятый раз пернчитываю и не могу понять, а что логике не соответствует.
Сорри за тупняк

Alex
30.07.2017
22:53:34
не сосем понимаю, что ты не понимаешь)

Google

Max
30.07.2017
22:54:43
Ща, еще раз прочту.
Не, не распарсю, сорри. Надо нарисовать. Как есть и как должно.

Alex
30.07.2017
22:59:32
Смотри, включаем МК, напргуи на ногу нет, загорается один светодиод. Подаем напругу - загорается другой, а первый гаснет. Горит он 1 секунду, потом гаснет и весь цикл блокирется на 3 секунды. Через 3 секунды опрашивается нога и если есть напруга, то горит второй светодиод, если нет - то горит первый.

Max
30.07.2017
23:00:58
Это я понял) Я не понял, где это сломалось.

Alex
30.07.2017
23:02:05
вот, сейчас я включаю - горит первый светодиод, я подаю напругу, загорается второй, первый гаснет. В этот момент я убираю напругу, проходит 3 секунды, должен загореться первый, но загорается второй. А вот еще через 3 секунды уже только загорается первый.

Max
30.07.2017
23:06:02
Предположение - что аналог после считывания надо сбросить, уже рассматривалось?

Alex
30.07.2017
23:06:18
ага(
но мб я не правильно сбрасывал?

Max
30.07.2017
23:08:51
А сетап в цикл уже вносил? И, подозреваю, вместо continue else тоже ставил?

Alex
30.07.2017
23:09:38
+

LexsZero
30.07.2017
23:09:47
тебе стейт нужно где-то хранит
нарисуй как стейт-машину

Max
30.07.2017
23:10:31
Я хотел посоветовать КА нарисовать, но подумал, что один фик...

LexsZero
30.07.2017
23:10:46
а то с трудом понятно из текстового описания как оно должно работать, заодно и сам поймешь

Max
30.07.2017
23:11:00
Разве что тупо исключить невалидные состояния

Alex
30.07.2017
23:11:10
о как, я изменил while(ADCSRA & _BV(5) == 0); на while(ADCSRA & _BV(4) == 0);
и ничего не изменилось. Значит косяк тут

Max
30.07.2017
23:11:42
И логическое?
А не битовое?

Alex
30.07.2017
23:12:00
битовое

Google

Max
30.07.2017
23:12:31
Так, все, звыняйте, но я спать

LexsZero
30.07.2017
23:12:33
если у тебя оно реагирует вообще на что-то - то проблема не тут, а в логике

Alex
30.07.2017
23:16:23
а зачем хранить состояние?
у меня ж тут поток зависает

LexsZero
30.07.2017
23:19:24
у тебя разные поведения в ситуациях "изначально мало" и "было много, стало мало"
дословно перевел твое описание на псевдокод
while (1) {
value = get_adc();
switch (state) {
case IDLE:
if (value > threshold) {
PB1 = 1;
}
else {
PB0 = 1;
state = WAIT_UNTIL_GREATER;
}
break;
case WAIT_UNTIL_GREATER:
if (value > threshold) {
PB0 = 0;
PB1 = 1;
sleep(1);
PB1 = 0;
sleep(3);
state = IDLE;
}
break;
}
}
тут всего два состояния, можно тупо на флажок заменить. это я так для ясности расписал.
// ШАЛЫТО ШАЛЫТО ШАЛЫТО

Nikita
30.07.2017
23:25:40
В Шалыто-стайл было бы ещё три состояния для понту

LexsZero
30.07.2017
23:40:56
ну да, можно ещё слипы заменить

Дмитрий
31.07.2017
01:10:26
/warn

Cate
31.07.2017
01:25:15
Спасиб

Dmitry
31.07.2017
11:35:44
@lady_noname емнис ты показывала как-то разработки фиговин, которые 100G диагностят.
а есть ли похожее, но для банальных 485/CAN?

Cate
31.07.2017
11:44:51

Ingenegr
31.07.2017
12:36:01

Alex
31.07.2017
12:45:31

Dmitry
31.07.2017
12:47:06

Ingenegr
31.07.2017
12:47:59

Alex
31.07.2017
13:21:17

Google

Ingenegr
31.07.2017
14:27:02

Alex
31.07.2017
14:27:47

Admin
ERROR: S client not available

Ingenegr
31.07.2017
14:28:41

Alex
31.07.2017
14:28:51
так это с моих слов записано)

Ingenegr
31.07.2017
14:29:53

Дед Пегас
31.07.2017
16:15:19
@AlexFails
@lady_noname

Cate
31.07.2017
16:17:02
Спасибо

Denis
31.07.2017
16:17:06
Только что в соседней нагадил...

Ingenegr
31.07.2017
19:27:55
И не помню флаг окончания преобразования надо принудительно сбрасывать или он сам сбрасввается

Valentin
31.07.2017
19:35:55
Сколько будет?
int i = 5;
int ans = i+++++i;
если по этим приоритетам, то сначала будет 6 , потом прединкримент, потом сложение

Stanislav
31.07.2017
19:36:56

Valentin
31.07.2017
19:37:09
Логично, там как парсер рапсарсит

Google

Stanislav
31.07.2017
19:41:05

Valentin
31.07.2017
19:41:17
Таки 12, но почему ?
Если приоритет пост- пред- знаки арифметики
i++ + ++i;

Stanislav
31.07.2017
19:42:45

Valentin
31.07.2017
19:43:53
Спасибо огромное

Stanislav
31.07.2017
19:44:10
http://en.cppreference.com/w/c/language/eval_order
http://en.cppreference.com/w/cpp/language/eval_order
кланг на такое даже ругается
warning: multiple unsequenced modifications to 'i'

Valentin
31.07.2017
19:45:42
Спасибо!

Ingenegr
31.07.2017
19:48:21

Lazar
31.07.2017
21:11:15
[Из песочницы] Секвенирование ДНК в домашних условиях: Как на коленке собрать прибор за 10 миллионов
https://geektimes.ru/post/291613/
Tags: Биотехнологии, DIY или Сделай сам, Секвенатор, diy, генетика, днк
Author s0ko1ok on #geektimes

Cate
31.07.2017
21:13:21
Норм.