Мне нужно написать C-код, который делает
DDRB &= ~pins;
с встроенной сборкой (AVR). Я никогда не использовал его раньше. Моя попытка:
register uint8_t t1, t2; // temporary registers
__asm__ volatile (
"in %[t1], %[w1_ddr]" "\n\t"
"mov %[t2], %[pins]" "\n\t"
"com %[t2]" "\n\t"
"and %[t1], %[t2]" "\n\t"
"out %[w1_ddr], %[t1]" "\n\t"
: [t1] "+r" (t1),
[t2] "+r" (t2),
[w1_ddr] "+I" (_SFR_IO_ADDR(DDRB))
: [pins] "r" (pins)
);
gcc
выдает следующую ошибку lvalue required in asm statement
. Что я делаю не так?
DDRB &= ~pins;
? - person Keith Thompson   schedule 22.11.2012