Steward
分享是一種喜悅、更是一種幸福
微處理器 - Microchip ATtiny13 - Assembly - Sleep
參考資訊:
https://www.microchip.com/en-us/product/attiny13#Documentation
https://nerdathome.blogspot.com/2008/04/avr-as-usage-tutorial.html
本練習使用Power-down模式
main.s
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | . equ PCMSK , 0x15 . equ PINB , 0x16 . equ DDRB , 0x17 . equ PORTB , 0x18 . equ GIMSK , 0x3b . equ MCUCR , 0x35 . equ BTN , 0 . equ LED , 1 . org 0x0000 rjmp main reti rjmp pcint0_handler . org 0x0010 main : sbi DDRB , LED cbi DDRB , BTN sbi PORTB , LED sbi PORTB , BTN ldi r16 , 0x20 out GIMSK , r16 ldi r16 , 0x01 out PCMSK , r16 ldi r16 , 0x30 out MCUCR , r16 sei sleep cbi PORTB , 1 loop : rjmp loop pcint0_handler : reti |
編譯和燒錄
$ avr-as -mmcu=attiny13 -o main.o main.s $ avr-ld -o main.elf main.o $ avr-objcopy --output-target=ihex main.elf main.ihex $ sudo avrdude -c usbasp -p t13 -B 1024 -U flash:w:main.ihex:i
完成