--- 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
-