@proembedded

Страница 165 из 975
Человек-Даук
02.01.2017
21:09:03
а вообще как разруливаются коллизии ?

Ibh
02.01.2017
21:15:14
а вообще как разруливаются коллизии ?
http://www.gorferay.com/pic/Mifare_DESFire_EV1_2K_4K_8K_MF3ICD21_MF3ICD40_MF3ICD41_MF3ICD81_77.jpg

* http://www.gorferay.com/initialization-and-anticollision-iso-iec-14433-3/

Человек-Даук
02.01.2017
21:36:59
так я понимаю: они просто ждут пока их считают и так один за другим по комманде ?

Google
Человек-Даук
02.01.2017
21:37:22
поэтому с ридера я просто буду снимать данные оче быстро, а потом уже сортировать ?

LexsZero
02.01.2017
21:46:49
в каком-то протоколе я видел разруливание коллизий с random backoff

Catethysis
02.01.2017
21:48:37
в вайфае, и ещё куче радиопротоколов и любых протоколов с разделяемой средой.

LexsZero
02.01.2017
21:50:14
я про нфц именно

Человек-Даук
02.01.2017
22:27:16
да тут не нфц

меня стукнули извне: вот дескать,готовое железо

не говорят какое

надо завести сие дерьмо

а какое не грят

применение широкое

я голову ломаю:а как же коллизии

Sergio
03.01.2017
22:19:34
вы тут о высоком... блин. а я про кнопочки спросить хотел.

"Переключение экрана норм/гонка -- кнопка А. В гоночном режиме старт круга кнопка Б, конец В. В основном экране кнопка Б переключает одометры, удержание кнопки Б сбрасывает одометр. Кнопка В переключает настраиваемые и сбрасываемые данные (моточасы, часы, подсветку). Удержание кнопки В приводит к редактированию данных. Совсем длительное удержание -- стирает (только МЧ). В часах в режиме редактирования Б/В работают на увеличени/уменьшение значения." вот, заморочился. на ардуине оно :( есть идеи, как красиво сделать и реюзабельно? я порылся в гуглах, всё что-то не то. не хочется размазывать по loop() обработку кнопок и реакции на них. я затеял класс с абстрактными методами типа onClick() onPress(0 onPush() итп и наследовать класс для каждого типа кнопки со своими локальными данными и обработчиками событий. Базовый класс будет просто неблокирующе обрабатывать тыки кнопок и дёргать абстрактные методы, которые будут переопределены уже на что-то конкретное. или лучше колбаки и структурку с состояниями? или мешать в кучу?

Google
Sergio
03.01.2017
22:25:51
если что, ответ пролетит и потеряется, я боюсь пропустить в сотных сообщений тут :)

ОлегЪ
03.01.2017
23:09:56
"Переключение экрана норм/гонка -- кнопка А. В гоночном режиме старт круга кнопка Б, конец В. В основном экране кнопка Б переключает одометры, удержание кнопки Б сбрасывает одометр. Кнопка В переключает настраиваемые и сбрасываемые данные (моточасы, часы, подсветку). Удержание кнопки В приводит к редактированию данных. Совсем длительное удержание -- стирает (только МЧ). В часах в режиме редактирования Б/В работают на увеличени/уменьшение значения." вот, заморочился. на ардуине оно :( есть идеи, как красиво сделать и реюзабельно? я порылся в гуглах, всё что-то не то. не хочется размазывать по loop() обработку кнопок и реакции на них. я затеял класс с абстрактными методами типа onClick() onPress(0 onPush() итп и наследовать класс для каждого типа кнопки со своими локальными данными и обработчиками событий. Базовый класс будет просто неблокирующе обрабатывать тыки кнопок и дёргать абстрактные методы, которые будут переопределены уже на что-то конкретное. или лучше колбаки и структурку с состояниями? или мешать в кучу?
э....

это точно ардуина?

там так не делают

digitalRead() и всё

а если по нормальному, то просто прерывания использовать

LexsZero
03.01.2017
23:25:32
"Переключение экрана норм/гонка -- кнопка А. В гоночном режиме старт круга кнопка Б, конец В. В основном экране кнопка Б переключает одометры, удержание кнопки Б сбрасывает одометр. Кнопка В переключает настраиваемые и сбрасываемые данные (моточасы, часы, подсветку). Удержание кнопки В приводит к редактированию данных. Совсем длительное удержание -- стирает (только МЧ). В часах в режиме редактирования Б/В работают на увеличени/уменьшение значения." вот, заморочился. на ардуине оно :( есть идеи, как красиво сделать и реюзабельно? я порылся в гуглах, всё что-то не то. не хочется размазывать по loop() обработку кнопок и реакции на них. я затеял класс с абстрактными методами типа onClick() onPress(0 onPush() итп и наследовать класс для каждого типа кнопки со своими локальными данными и обработчиками событий. Базовый класс будет просто неблокирующе обрабатывать тыки кнопок и дёргать абстрактные методы, которые будут переопределены уже на что-то конкретное. или лучше колбаки и структурку с состояниями? или мешать в кучу?
пока ты затеваешь классы с абстрактными методами, конкуренты из соседнего стартапа уже хуяк-хуяк и все написали на поллинге и лапшичной стейт-машине.

Sergio
03.01.2017
23:31:02
digitalRead() и всё
Это само собой, надо отличить по 4м кнопками тык, тыыык и тыыыыыык. А в зависимости от режима экрана разные действия делать и рисовать там разное.

LexsZero
03.01.2017
23:33:35
ну все равно, оверинжиниринг. you aint' gonna need it.

Sergio
03.01.2017
23:33:57
Лапшичную я уже накидал, не нравится. Вот у вас тут что используется? Абы что как попало или есть красивые решения?

ну все равно, оверинжиниринг. you aint' gonna need it.
Папа, ты с кем разговаривал сейчас (с)

Я сделаю красиво раз и потом использую в других проектах. Делов-то. И на гитхабе поделюсь и в плейграунде. Мне не жалко.

ОлегЪ
03.01.2017
23:35:52
Не канает, заняты оба.
т.е. оба? там же штук 9 прерываний внешних, камень какой?

только они могут быть заняты другими либами, но маловероятно

Sergio
03.01.2017
23:36:13
Атмега328, там два прерывания.

ОлегЪ
03.01.2017
23:36:24
не, там много

Sergio
03.01.2017
23:36:27
Заняты датчиками.

Google
ОлегЪ
03.01.2017
23:36:32
ща

еще 24 PCINT осталось

Sergio
03.01.2017
23:37:47
Это даже не важно, есть там прерывания или нет (дока говорит, что нет). Опросом тоже можно. Написано без delay() всё.

ОлегЪ
03.01.2017
23:38:28
точнее это либо одно прерывание. либо одно на порт, точно не помню, но придется руками проверять, какая кнопка была нажата, что не критично

тогда по прерыванию таймера

Sergio
03.01.2017
23:38:47
еще 24 PCINT осталось
Ардуинский attachInterrupt больше двух (ноги 2 и 3) не ест.

LexsZero
03.01.2017
23:38:49
я бы сделал список структур { кнопка, длительность, коллбэк, аргумент_коллбека }

если кнопок и правда много и у них хитрые функции

но для трех - смысла не вижу

ОлегЪ
03.01.2017
23:39:11
плюсы тогда сами курите

Sergio
03.01.2017
23:39:30
ОлегЪ
03.01.2017
23:39:37
но я бы сделал на прерываниях выводов или таймеров

могу даже примерный код накидать, но на сях

а иначе хз как не иначе, чем в лупе

даже если структуру создашь, всеравно оно по факту в лупе будет

Sergio
03.01.2017
23:40:51
С таймерами там как-то туман. Я ещё не осилил.

ОлегЪ
03.01.2017
23:41:35
а точно надо плюсы и ардуино иде? могу дать кодевижн с годным визардом, который сам сделает все прерывания

хотя можно и просто сишный код вставить

Sergio
03.01.2017
23:42:15
В лупе будет батон.run() вызываться. И всё. Он сам будет дёргать функции по мере их определения и появления событий

ОлегЪ
03.01.2017
23:43:13
но кнопка то всеравно циклически будет проверятся, хоть и вызовом, но в теле while(1) в main() если переводить на нормальный язык

Google
Sergio
03.01.2017
23:43:16
а точно надо плюсы и ардуино иде? могу дать кодевижн с годным визардом, который сам сделает все прерывания
На маке нет кодевижена. Да и ардуина такая уютная. Я в хардкод наступать буду уже с стм32 тогда.

ОлегЪ
03.01.2017
23:43:36
а на маке виндовые проги не работают?

Sergio
03.01.2017
23:43:43
Нет

ОлегЪ
03.01.2017
23:43:51
вроде было же что то типа vine, но даже лучше

ща

Sergio
03.01.2017
23:44:18
Не было. Сказки. Эмуляторы есть, но все говно.

ОлегЪ
03.01.2017
23:45:22
на какой частоте ардуина работает и с какой частотой надо кнопки проверять?

Sergio
03.01.2017
23:45:55
Ардуина 16мгц, кнопки раз в 10мс нормально.

Можно 25мс даже

ОлегЪ
03.01.2017
23:47:13
// Timer2 overflow interrupt service routine interrupt [TIM2_OVF] void timer2_ovf_isr(void) { // Place your code here } это прерывние, имя ф-ции скорей всего придется погуглить, т.к. в avr gcc оно отличается

Sergio
03.01.2017
23:47:31
Сейчас проверяется с частотой лупа, то есть, как получится.

ОлегЪ
03.01.2017
23:47:43
// Timer/Counter 2 initialization // Clock source: System Clock // Clock value: 15,625 kHz // Mode: Normal top=0xFF // OC2A output: Disconnected // OC2B output: Disconnected // Timer Period: 16,384 ms ASSR=(0«EXCLK) | (0«AS2); TCCR2A=(0«COM2A1) | (0«COM2A0) | (0«COM2B1) | (0«COM2B0) | (0«WGM21) | (0«WGM20); TCCR2B=(0«WGM22) | (1«CS22) | (1«CS21) | (1«CS20); TCNT2=0x00; OCR2A=0x00; OCR2B=0x00; это настройка таймера

тока это, телега кавычки поела, ща на пастебин закину

Sergio
03.01.2017
23:48:40
Это камнезависимо очень. :(

ОлегЪ
03.01.2017
23:49:47
не очень, для 168 тоже пойдет, и половины остальных новых тоже, можно сделать через макросы кросплатформенно, но немного геморно

Sergio
03.01.2017
23:49:59
Ну, получу я прерывание. И смысл? Красиво, с другой стороны. Но пихать в обработчик прерывания какую-то логику фу. Нет?

Чем плохо в луп ставить вызов функции?

ОлегЪ
03.01.2017
23:50:53
пихать туда немного логигики, если чего то много и не критично к скорости выполнения, то выставлять флаг какой нибудь и в лупе тогда обрабатывать

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

Sergio
03.01.2017
23:51:35
Так сразу в лупе и обрабатывать тогда. Хмм

Google
Sergio
03.01.2017
23:52:23
Делеев нет. Реалиайм такой, типа кнопки тыкать. Там тыки по секунде.

ОлегЪ
03.01.2017
23:52:53
ф-ции кнопок разные бывают, вот например у тя какой то пздц начинает творится (робат убиает человека), ты жмешь STOP, но в лупе у тя измеряется темпрература поциента, а это около 1с, и все. человек помер

Sergio
03.01.2017
23:52:57
Это приборная панель мотоцикла. Не клава пианистки.

ОлегЪ
03.01.2017
23:53:13
темболее

тут уже за себя переживать надо

ОлегЪ
03.01.2017
23:53:59
ну тогда в лупе, я ж не заставляю использовать прерывания, просто совет

Sergio
03.01.2017
23:54:13
Отклик в 10мс -- это мегабыстро.

ОлегЪ
03.01.2017
23:54:29
если в лупе ничего не повиснет

Sergio
03.01.2017
23:54:40
Я б использовал, но средствами иде никак.

ОлегЪ
03.01.2017
23:54:50
кста, про задерку от дребезга не забудь, а это тоже несколько мс

иде позволяет использовать прерывания

Sergio
03.01.2017
23:55:13
Есть расширитель портов с прерыванием. Но излишне пока что.

иде позволяет использовать прерывания
Для этого камня только две ноги. Заняты.

И от случайного нажатия тоже есть задержка.

ОлегЪ
03.01.2017
23:57:27
как хош, вот, на всякий случай http://pastebin.com/sZWGPZMt

Sergio
03.01.2017
23:58:11
https://www.arduino.cc/en/Reference/attachInterrupt

Пасип. Разберу.

Страница 165 из 975