led7seg.s
changeset 30 5226e512755c
parent 28 51344df466ca
child 32 7ceb76b5a104
--- a/led7seg.s	Sun May 09 23:17:14 2010 +0300
+++ b/led7seg.s	Sun May 09 23:27:12 2010 +0300
@@ -7,9 +7,13 @@
         rjmp        init
 
 .org OC1Aaddr
-		; Timer/Counter1 Overflow
+		; Timer/Counter1 Compare Output A
 		rjmp		Timer_OC1A
 
+.org OC0Aaddr
+        ; Timer/Counter0 Compare Output A
+        rjmp        Timer_OC0A
+
 .org SPIaddr
         rjmp        SPI_Interrupt
 
@@ -34,6 +38,8 @@
 .include "adc.inc"
 
 ;; Timer
+.set TIMER0_CB_A = SPI_Update
+
 .include "timer.inc"
 
 ;; Utils
@@ -42,7 +48,8 @@
 
 Sleep_ADC:
         ; delay
-        rcall       ADC_Read8 
+        ; rcall       ADC_Read8 
+        rcall       DIP_Read8
         
         ; Sleep for 64 * var timer cycles
         ldi         r17, 64
@@ -54,17 +61,27 @@
 
 ;; Show value
 Main_ShowValue:
+    ; DEBUG
+		sbi			PIND, PORTD7
+
         ; load value to r16
-        rcall       DIP_Read8
+        ; rcall       DIP_Read8
         ; rcall       ADC_Read8
+        rcall       Timer0_Read8
 
         ; display from r16
         rcall       LED7_ShowHex
         
-        ; *g*
-        ldi         XL, 0
-        ldi         XH, 16
-        rcall       Timer_Sleep
+        ; wait
+        rcall       Sleep_ADC
+
+        ; ldi         XL, 0
+        ; ldi         XH, 16
+        ; rcall       Timer_Sleep
+        
+        ; rcall       ADC_Read8
+        ; mov         r20, r16
+        ; rcall       VarDelay
 
         ; continue
         rjmp        Main_ShowValue
@@ -175,10 +192,6 @@
 
 Main:
 init:
-	; DEBUG
-		sbi			DDRD, PORTD7
-		sbi			PORTD, PORTD7
-
     ; Stack
         ldi         r16, high(RAMEND)
         ldi         r17, low(RAMEND)
@@ -200,9 +213,13 @@
     ; LCD (requires interrupts, blocks)
         rcall       LED7_Init    
     
+    ; DEBUG
+        sbi         DDRD, PORTD7
+        cbi         PORTD, PORTD7
+
     ; Run
-        rcall       Main_ShowValue
-        ; rcall       Main_Spin
+        ; rcall       Main_ShowValue
+        rcall       Main_Spin
         ; rcall       Main_Countup
         ; rcall       Main_Countdown
         ; rcall       Main_Blink