Привет, я пишу на C с olimexino (arduino). Я использую следующий код для загрузки 2 регистра (ATmega328):atmega: данные регистратора повреждаются делением операции
asm (
"ldi r20, 0 \n" //load register r20 with 0
"ldi r21, 16 \n" //load register r21 with 16
: : : "r20","r21" //compiler directive to reserve the two registers);
тогда я использую это:
asm ("out 0x05, r21 \n"); //write '0' to portB
asm ("out 0x05, r20 \n"); //write '10000' to portB
писать из двух регистров в порт B. Но с помощью двух регистров r20 и r21 создает проблему. Конфликт возникает, если я выполняю операцию деления. например, если какая-либо часть моей программы имеет оператор типа «x = x/6» или «y = x% 9», то числа, хранящиеся в этих регистрах, могут измениться. если я делаю простое разделение типа «x/4» или «x% 8», проблем нет. но любая операция, которая сложнее, чем простое сменное деление, меня замахивает.
Любая помощь? Благодаря