AVR

uint32_t >> 4

AVR

32bit値を4bitシフト。 Rα,Rβ,Rγ,Rδに値が入っている RαがLSB側、RδがMSB側 Rα,Rβ,Rγ,Rδに返る Rα,Rβ,Rγ,RδはR16〜R31 swap Rα ; 1 swap Rβ ; 2 swap Rγ ; 3 swap Rδ ; 4 andi Rα, 0x0f ; 5 eor Rα, Rβ ; 6 andi Rβ, 0x0f ; 7 eor Rα, Rβ ; 8 eor Rβ, Rγ ; 9…

GPIOR

AVR

久しぶりにmega48用にコードをぽちぽちと書いていて気付いた。GPIOR1,GPIOR2ってSBIC/SBIR/SBI/CBI使えないじゃん…

飽和加算

AVR

前提: 255で飽和 r24,r25に値が入っている 結果をr24に返す r25の値は壊れてよい add r24,r25 sbc r25,r25 or r24,r25 これを下記のようにすると、r25を壊さずに済む代わりにr24のところはr16〜r31にしか出来なくなる add r24,r25 brcc LABEL ldi r24,0xff …