да ничего там сложного нет.bafomet911 писал(а):Теперь вот хочу с ассемблером разобраться, так как в си проблематично работать с одним битом регистра...
Сделайте себе макросовую обертку битовых операций, если хочется, да работайте....
Можете даже обертку низкоуровневых асмовых SBR/CBR замутить...
Или вон ARV в соседней теме предлагает битовые поля через юнионы делать...
[uquote="ARV",url="/forum/viewtopic.php?p=3590365#p3590365"]7seg, кстати... раз уж вы юзаете avr-gcc, рекомендую пользоваться такой поддерживаемой этим компилятором фишкой, как "анонимные юнионы/структуры". у вас там многоступенчатая вложенность структур, что код не украшает. с анонимными структурами/юнионами это будет более красиво:
Код: Выделить всё
typedef union{
uint8_t as_byte;
struct{ // структура, под которую не выделено "поля" в union - безымянная или анонимная структура
uint8_t bit0 : 1;
uint8_t bit1 : 1;
uint8_t bit2 : 1;
uint8_t bit3 : 1;
uint8_t bit4 : 1;
uint8_t bit5 : 1;
uint8_t bit6 : 1;
uint8_t bit7 : 1;
}; // вот тут бы идентификатор - а его нет!
} my_type_t;
my_type_t var;
var.bit7 = 1;
var.as_byte++;

