adc.inc
changeset 89 1b3cea759eff
parent 88 c923295ee520
child 90 13c2deb919d1
--- a/adc.inc	Mon Jun 02 18:27:08 2014 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-;;
-;; Basic ADC operation
-;;
-
-; Reference select
-.set ADC_REF    = 0b01      ; AVcc
-
-; Bit adjustment
-.set ADC_LAR    = 1         ; Left-adjust
-
-; Input select
-.set ADC_MUX    = 0b000     ; ADC0
-
-; Auto-trigger source
-.set ADC_ATS    = 0b011     ; TC0 OCA
-
-; Auto-trigger enable
-.set ADC_ATE    = 1
-
-; Prescaler
-.set ADC_PS     = 0b111     ; 1/128
-
-; I/O pins
-.equ ADC_DDR    = DDRC
-.equ ADC_PORT   = PORTC
-.equ ADC_PIN    = PORTC0
-        
-;; Initialize the ADC for starting conversions
-ADC_Init:
-    ; ADMUX
-        ldi         r16, (ADC_REF << REFS0) | (ADC_LAR << ADLAR) | (ADC_MUX << MUX0)
-        sts         ADMUX, r16
-    
-    ; ADCSRB
-        ldi         r16, (ADC_ATS << ADTS0)
-        sts         ADCSRB, r16
-
-    ; ADCSRA
-        ; ADSC: No need if using external auto-trigger ???
-        ; Enable interrupt
-        ldi         r16, (1 << ADEN) | (1 << ADSC) | (ADC_ATE << ADATE) | (1 << ADIE) | (ADC_PS << ADPS0)
-        sts         ADCSRA, r16
-    
-    ; Disable digital circuit for pin
-        ldi         r16, (1 << ADC_PIN)
-        sts         DIDR0, r16
-
-    ; Done
-        ret
-
-;; Interrupt handler stub for ADC_HANDLER
-ADC_Interrupt:
-        in          r0, SREG
-
-        rcall       ADC_HANDLER
-
-        out         SREG, r0
-        reti
-
-;; Read the current 8-bit ADC sample 
-; Returns value in r16
-ADC_Read8:
-    ; Copy
-        lds         r16, ADCH
-
-    ; Done
-        ret
-