Исправление Goganchic, (текущая версия) :
Итак, на новую либу переходить не стал, но разобрался с багами в текущем коде, теперь ответ приходит правильный. Если кому-то интересно, описываю какие были баги (достаточно глупые, на самом деле)
правильный макрос такой:
#define SET_BITS_0(x,pinbit,level) (((x) & ~(1 << (pinbit))) | ((level && 1) << (pinbit)))
в общем, как оказалось - всему виной кривые руки, библиотека непричем
теперь буду дальше разбираться почему неправильно работает avrdude 6.1, может даже зачиню его :)
Исходная версия Goganchic, :
Итак, на новую либу переходить не стал, но разобрался с багами в текущем коде, теперь ответ приходит правильный. Если кому-то интересно, описываю какие были бали (достаточно глупые, на самом деле)
правильный макрос такой:
#define SET_BITS_0(x,pinbit,level) (((x) & ~(1 << (pinbit))) | ((level && 1) << (pinbit)))
в общем, как оказалось - всему виной кривые руки, библиотека непричем
теперь буду дальше разбираться почему неправильно работает avrdude 6.1, может даже зачиню его :)