diff -r 453550e69e07 -r 5226e512755c led7seg.s --- 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