История изменений
Исправление COKPOWEHEU, (текущая версия) :
И ещё не советую использовать bit-banding, он далеко не во всех семействах есть.
Да все советуют, только плевал он на советы.
mov r4, #0 mov r5, #1
Я плохо знаю местный ассемблер, но в нем должны быть псевдонимы для регистров. Да даже если нет, через define можно
#define zero r4
#define one r5
mov zero, #0
mov one, #1
Ну и дальше уже использовать их
str r4, [r3, #0] // #0 в 20й бит str r5, [r3, #4] // #1 в 21й бит str r4, [r3, #8] // #0 в 22й бит str r4, [r3, #12] // #0 в 23й бит
А вот здесь надо следить чтобы все промежуточные значения были валидными. Именно для светодиода это вряд ли важно, но в общем случае - да. Ну и еще один камень в сторону битбанда: человеческим способом 4 бита выставляются одной операцией записи, а не четырьмя.
Исходная версия COKPOWEHEU, :
И ещё не советую использовать bit-banding, он далеко не во всех семействах есть.
Да все советуют, только плевал он на советы.
mov r5, #1```
Я плохо знаю местный ассемблер, но в нем должны быть псевдонимы для регистров. Да даже если нет, через define можно
#define one r5
mov zero, #0
mov one, #1
Ну и дальше уже использовать их
str r5, [r3, #4] // #1 в 21й бит str r4, [r3, #8] // #0 в 22й бит str r4, [r3, #12] // #0 в 23й бит
А вот здесь надо следить чтобы все промежуточные значения были валидными. Именно для светодиода это вряд ли важно, но в общем случае - да. Ну и еще один камень в сторону битбанда: человеческим способом 4 бита выставляются одной операцией записи, а не четырьмя.