Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * AssemblerApplication1.asm
- *
- * Created: 2014-10-26 22:08:08
- * Author: Szymon
- */
- .include "m16def.inc"
- .EQU ADC_DATA_ADDR = 0x0060
- .org 0x00 jmp start
- .org 0x02 jmp Ext_int0_irq
- .org 0x04 jmp ext_int1_irq
- .org 0x06 jmp tim2_comp_irq
- .org 0x08 jmp tim2_ovf_irq
- .org 0x0A jmp tim1_capt_irq
- .org 0x0C jmp tim1_comp_a_irq
- .org 0x0E jmp tim1_comp_b_irq
- .org 0x10 jmp tim1_ovf_irq
- .org 0x12 jmp tim0_ovf_irq
- .org 0x14 jmp spi_stc_irq
- .org 0x16 jmp usart_rxc_irq
- .org 0x18 jmp usart_udre_irq
- .org 0x1A jmp usart_txc_irq
- .org 0x1C jmp adc_irq
- .org 0x1E jmp ee_rdy_irq
- .org 0x20 jmp ana_comp_irq
- .org 0x22 jmp twsi_irq
- .org 0x24 jmp ext_int2_irq
- .org 0x26 jmp tim0_comp_irq
- .org 0x28 jmp spm_rdy_irq
- Ext_int0_irq: reti
- ext_int1_irq: reti
- tim2_comp_irq: reti
- tim2_ovf_irq: reti
- tim1_capt_irq: reti
- ; tim1_comp_a_irq:reti - active
- tim1_comp_b_irq:reti
- tim1_ovf_irq: reti
- tim0_ovf_irq: reti
- spi_stc_irq: reti
- usart_rxc_irq: reti
- usart_udre_irq: reti
- usart_txc_irq: reti
- ; adc_irq: reti - active
- ee_rdy_irq: reti
- ana_comp_irq: reti
- twsi_irq: reti
- ext_int2_irq: reti
- spm_rdy_irq: reti
- tim0_comp_irq: reti
- start:
- ; status register
- eor r16, r16
- OUT SREG, r16
- ; set stack pointer
- LDI R16, high(RAMEND)
- OUT SPH, R16
- LDI R16, low(RAMEND)
- OUT SPL, R16
- ; config timer1
- LDI r16, 8 ;
- OUT TCCR1A, r16 ; foc1a
- LDI r16, 12 ;
- OUT TCCR1B, r16 ; ctc, div by 256
- LDI r16, 40 ;
- LDI r17, 35 ;
- OUT OCR1AH, r17 ;
- OUT OCR1AL, r16 ; ocr1a 512
- LDI r16, 0 ;
- LDI r17, 0 ;
- OUT TCNT1H, r17 ;
- OUT TCNT1L, r16 ;
- LDI r16, 16 ;
- OUT TIMSK, r16 ; output compare interrupt enable
- ; congig adc
- LDI r16, 32 ;
- OUT ADMUX, r16 ; only adlar set
- LDI R16, 0xEF ;
- OUT ADCSRA, r16 ;
- ; cfg io
- SBI PORTB, 3 ;
- SBI DDRB, 3 ;
- CBI PORTD, 0
- CBI DDRD, 0
- ; enable interrupt
- sei
- ; main loop
- hop: rjmp hop
- tim1_comp_a_irq:
- IN r18, SREG
- cli
- IN r16, PORTB
- LDI r17, 8
- EOR r16, r17
- OUT PORTB, R16
- LDS r19, 0x0060
- LDS R20, 0x0061
- OUT OCR1AH, r19
- OUT OCR1AL, r20
- OUT SREG, r18
- reti
- adc_irq:
- IN r16, SREG
- cli
- IN R17, ADCH
- IN R18, ADCL
- STS 0x0060, R17
- STS 0x0061, R18
- OUT SREG, r16
- reti
Advertisement
Add Comment
Please, Sign In to add comment