commit 1e722bc7b85f98887f4a9eb1cc26407aef75178d Author: Sergey Yarkov Date: Sun May 29 00:56:36 2022 +0300 final diff --git a/firmware.asm b/firmware.asm new file mode 100644 index 0000000..84d65a5 --- /dev/null +++ b/firmware.asm @@ -0,0 +1,161 @@ +; +; Project name: sleep-mode-example +; Description: Example of using sleep mode in power-down mode on avr microcontroller +; Source code: https://github.com/sergeyyarkov/attiny2313a_sleep-mode-example +; Device: ATtiny2313A +; Package: 20-pin-PDIP_SOIC +; Assembler: AVR macro assembler 2.2.7 +; Clock frequency: 8MHz with CKDIV8 +; Fuses: lfuse: 0x64, hfuse: 0x9F, efuse: 0xFF, lock:0xFF +; +; Written by Sergey Yarkov 29.05.2022 + +.list + +.def temp_r = r16 +.def wdt_counter = r10 + +.dseg ; Data segment +.org SRAM_START + +.cseg ; Code segment +.org 0x00 + +rjmp RESET_vect ; External Pin, Power-on Reset, Brown-out Reset, and Watchdog Reset +reti ; External Interrupt Request 0 +reti ; External Interrupt Request 1 +reti ; Timer/Counter1 Capture Event +reti ; Timer/Counter1 Compare Match A +reti ; Timer/Counter1 Overflow +reti ; Timer/Counter0 Overflow +reti ; USART0, Rx Complete +reti ; USART0 Data Register Empty +reti ; USART0, Tx Complete +reti ; Analog Comparator +reti ; Change Interrupt Request 0 +reti ; Timer/Counter1 Compare Match B +reti ; Timer/Counter0 Compare Match A +reti ; Timer/Counter0 Compare Match B +reti ; USI Start Condition +reti ; USI Overflow +reti ; EEPROM Ready +rjmp WDT_vect ; Watchdog Timer Overflow +reti ; Change Interrupt Request 1 +reti ; Change Interrupt Request 2 + +WDT_vect: + inc wdt_counter + rcall toggle_led + in temp_r, WDTCSR + ori temp_r, (1<