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