Ср ноя 15, 2017 23:30:29
Пт ноя 17, 2017 13:44:20
Пт ноя 17, 2017 17:52:38
Пт ноя 17, 2017 19:59:29
Пт ноя 17, 2017 20:08:32
Пт ноя 17, 2017 20:16:25
Пт ноя 17, 2017 20:22:05
Пт ноя 17, 2017 22:14:07
Сб ноя 18, 2017 15:52:28
Вс ноя 19, 2017 00:07:42
Вс ноя 19, 2017 17:32:19
Вс ноя 19, 2017 21:50:54
Вс ноя 19, 2017 21:58:52
Пн ноя 20, 2017 07:08:35
по-моему, надо соблюдать чувство меры и в стремлении абстрагироваться от "нижнего уровня", иначе в этом увлечении можно за деревьями леса не увидеть. if( a1(_read,_pullup) ) ничем не понятнее, информативнее, логичнее и красивее тупейшего if(PORT & (1<<PIN))...mazda писал(а):createpad(a1,a,1);
a1(_write,_H); - вывести 1
if( a1(_read,_pullup) )... проверит есть ли 1 на пине 1 порта А
Пн ноя 20, 2017 07:54:33
Пн ноя 20, 2017 08:01:28
с чего вы это взяли? в моём надуманном примере вместо реального порта и его пина - макросы.mazda писал(а):то есть вы предлагаете например все 32 пина контроллеров атмега32 просто помнить по номеру?
я не возражаю, что многие вещи можно сделать сложно, но практически так же эффективно, как если бы они были простыми... но это действительно нужно? ну не на 90% же освобождает вашу голову эти ваши шаблоны и т.п., наверняка нашлось бы в ней место и дестяку пинов без перегрузки мозга... стремление все и вся облегчить все равно не приносит заметного облегчения, ибо вместо того, чтобы помнить одни сущности приходится запоминать другие.mazda писал(а):creatpad оптимизирован так что после компиляции зачастую равен обычным логическим операциям с портом, нужно будет как нибудь дизасм прикрутить показать из чего что выходит
Пн ноя 20, 2017 08:15:41
Пн ноя 20, 2017 11:11:32
___B8B( bus,
a0, atmega32_dip40_pin26,
a1, atmega32_dip40_pin27,
a2, atmega32_dip40_pin28,
a3, atmega32_dip40_pin28,
d0, atmega32_dip40_pin20,
d1, atmega32_dip40_pin19,
d2, atmega32_dip40_pin18,
d3, atmega32_dip40_pin21,
d4, atmega32_dip40_pin22,
d5, atmega32_dip40_pin23,
d6, atmega32_dip40_pin24,
d7, atmega32_dip40_pin25,
...
using lcd1 = LcdFmc<SSD1298, 320, 240, 16, LcdRot::Auto, FmcBank1, PinG<8>, 9, 9, 1, 16, 1, 1>;
using lcd2 = LcdSoft<S6D1121, 320, 240, 8, LcdRot::Tablet, PinF<1>, GpioG<0xFF>, PinF<7>, PinF<0>, PinG<9>, PinE<2>, 2, 14>;
Пн ноя 20, 2017 11:29:53
Пн ноя 20, 2017 12:03:18
using data = PinsList<PinA<0>, PinA<1>, PinB<5>, PinB<6>, PinB<7>, PinA<3>, PinA<4>, PinA<5>>;
а вообще creatpad это не класс и не структра, это функция
a0 a1 и тд это не параметры вообще
___B8B( bus,
a0, atmega32_dip40_pin26,
a1, atmega32_dip40_pin27,
___B8B( bus,
atmega32_dip40_pin26, //a0
atmega32_dip40_pin27, //a1