@ru_arduino

Страница 5952 из 7737
morda
14.04.2018
20:36:20
За комп надо идти)

Dolphin
14.04.2018
20:36:21
нет

Атмел студия - для души

бальзам прям

Google
morda
14.04.2018
20:36:57
Ну пока обвес сочиняешь ардуина рулит)

Хотя)

Надо будет попробовать чистый атмел

Dolphin
14.04.2018
20:38:39
За комп надо идти)
покаж потом, со схемой и кодом

интересно

morda
14.04.2018
20:40:53
схемы нет пока

сперва нагуглил вот это http://cxem.net/arduino/arduino8.php

но там ужасный говнокод)



если посмотреть на , то видно что если повесить ИНТ на CHANGE то из коробки получаем направление)

получилась вот такая замена

void encoder() { noInterrupts(); encoder_A = digitalRead(pin_A); encoder_B = digitalRead(pin_B); encoder_A = digitalRead(pin_A); encoder_B = digitalRead(pin_B); encoder_A = digitalRead(pin_A); encoder_B = digitalRead(pin_B); encoder_A = digitalRead(pin_A); encoder_B = digitalRead(pin_B); encoder_A = digitalRead(pin_A); encoder_B = digitalRead(pin_B); encoder_A = digitalRead(pin_A); encoder_B = digitalRead(pin_B); if(encoder_B) { // выход В в полож. сост., значит вращение по часовой стрелке // увеличиваем яркость, не более чем до 255 if(brightness + fadeAmount <= 255) brightness += fadeAmount; } else { // выход В в 0 сост., значит вращение против часовой стрелки // уменьшаем яркость, но не ниже 0 if(brightness - fadeAmount >= 0) brightness -= fadeAmount; } interrupts(); Serial.println(brightness); }

Google
morda
14.04.2018
20:43:31
attachInterrupt(digitalPinToInterrupt(interruptPin), encoder, FALLING);

ой на FALLING

morda
14.04.2018
20:44:38
это я там их 8шт насобачил чтоб посмотреть успевает считывать)

успевает)

короче когда А падает - идет прерываение (через диод) на инт0 (пин1 чотоле) и в прерывании анализируем Б

а енкодеры такие оказались что постоянно А и Б в плюсе и только когда вращаешь идут мелкие минусы

(см диаграмму)

Dolphin
14.04.2018
20:46:42
да понял понял )

я иначе делаю )

morda
14.04.2018
20:47:59
причем пока от 0 до 255 мотаешь - ошибок нет, а если от нуля дальше в ноль крутишь то периодически единица проскакивает)

и также сверху

Dolphin
14.04.2018
20:49:23


morda
14.04.2018
20:49:27
а если пины в рабочем цикле читать то там прям сильная зависимость от колво-ошибок и вот эта задержка if(currentTime >= (loopTime + 5)){ // проверяем каждые 5мс (200 Гц)

Dolphin
14.04.2018
20:50:16
читает пины энкодера, и создает битовую маску, в которой находятся биты в какую сторону крутится энкодер и нажата ли кнопка

morda
14.04.2018
20:50:17
блин за такой код...)))

Dolphin
14.04.2018
20:52:58
че не нравится? )

morda
14.04.2018
20:53:10
канделябром чо)

Google
Dolphin
14.04.2018
20:53:21
схуя?

там все красиво и лампово

morda
14.04.2018
20:54:10
собеседование не пройдешь)

Dolphin
14.04.2018
20:54:28
с чего бы?

названия переменных не нравятся?

morda
14.04.2018
20:54:50
так уйди)

Dolphin
14.04.2018
20:54:57
так они названы по стандарту

morda
14.04.2018
20:55:01
я сюда отдохнуть от программерства прихожу)

нет, там тернарник запутанный со скобками

Dolphin
14.04.2018
20:55:57
ничего там запутанного, там все в точном соответствии поставленной задаче и последовательности вычислений

+ одно условие

morda
14.04.2018
20:56:53
еще раз я сюда от кода отдыхать прихожу)))

morda
14.04.2018
20:57:03
но можно твой улучшить чтоб читался)

но не буду)

Dolphin
14.04.2018
20:57:12
да ноупроблем, я не навязываю

а то все горазды трындеть

morda
14.04.2018
20:57:30
60/час)

Dolphin
14.04.2018
20:57:35
а на деле - "но не буду"

60/час)
копеечник )

Google
morda
14.04.2018
20:57:51
чорт(

ну кинь его текстом)

`

завтра планирую нихуянеделать мож порешаю)

Dolphin
14.04.2018
20:59:12
ISR (PCINT0_vect) { _pB = PINB & ( _enL | _enR | _enB ); _enc_state = ((_pB & _enB)!=0) ? ( ( ( _pB & _enR ) << 1 ) ^ ( _storB & _enL ) ) | ( ( ( _pB & _enL ) >> 1 ) ^ ( _storB & _enR ) ) : _enB; _storB = _pB; }

Victor
14.04.2018
20:59:44
Автообфускация

Dolphin
14.04.2018
21:00:01
еще один

где вы обфускацию нашли?

Admin
ERROR: S client not available

morda
14.04.2018
21:00:18
кстати а можно как-то ардуинные говна в нормальном редакторе редактировать а потом пулять?

Dolphin
14.04.2018
21:00:19
все прозрачно и ясно

Victor
14.04.2018
21:01:11
Мозг немного ломает, но ?

morda
14.04.2018
21:01:21
все прозрачно и ясно
для тех кто в контексте)

Dolphin
14.04.2018
21:02:07
для тех кто в контексте)
надо просто понимать как работает энкодер, и какую задачу решает выражение ;)

и тогда его смысл очевиден

morda
14.04.2018
21:03:02
ясен пень)

по этому ардуина рулит)

код простой как палка)

Dolphin
14.04.2018
21:04:26
^^^
CodeBlocks

Google
Dolphin
14.04.2018
21:04:32
Platformio

Victor
14.04.2018
21:04:32
^^^
пиши на обычном С/С++ и собирай avr-gcc

Dolphin
14.04.2018
21:04:41
Visual Studio Code

Victor
14.04.2018
21:04:42
зачем Arduino?

morda
14.04.2018
21:06:03
Dolphin
14.04.2018
21:07:20
morda
14.04.2018
21:07:46
CodeBlocks
нене я не спрашивал за редактор, я спрашивал когда есть ардуинный файл уже в редакторе нормальном приготовленный как бы его так же просто как в ардуиноИДЕ шить на плату

консолька мож

Dolphin
14.04.2018
21:08:31
я разве не так сказал? )

всмысле ну компилируй с коммандной строки

и шей дудкой комплектной

https://www.youtube.com/watch?v=HwOGyrTUuJo&feature=share

morda
14.04.2018
21:15:27
лядно лядно)

Papin ?
14.04.2018
22:06:23
Речи то не идёт о длительной эксплуатации в таких условиях)

Byte
14.04.2018
23:17:55
777Andrej, Атлас 5 красиво ушёл ;)

Dolphin
15.04.2018
01:03:36
Remald
15.04.2018
01:17:47
У кого бывает сонный паралич при недопробуждении?

Defragmented
15.04.2018
01:39:28
Remald
15.04.2018
01:40:14
У меня бывает раз в несколько лет, вот сегодня был

Andrey
15.04.2018
06:37:32
https://www.ixbt.com/live/chome/orange-pi-one---ustanovka-domoticz-servera-s-nulya.html

Страница 5952 из 7737