It used to. I saw it! Really, I'm not going nuts. Oh, sorry, I already am nuts.
Let's see the code. I'll copy/paste it here and check it as I go. If I don't see any boneheaded mistake before I'm done, I'll post :shock:
Starting the timer: (scratch is R16)
ldi scratch,0 ; Stop the clock
out TCNT1H,scratch ; Clear the count
ldi scratch,0b01000001 ; Rising edge capture, Clock/1
out TCCR1B,scratch ; Timer is running?
Set the comparator:
ldi scratch,(ACI<<1) ; Clear any interrupt flag
sbi ACSR,ACIE ; Enable comparator interrupt
sbi ACSR,ACIC ; and captures the Timer 1 count
On the comparator interrupt:
ldi scratch,0 ; Stop the timer 1
out ACSR,scratch ; Stop the comparator
cbi PORTB,1 ; Discharge the capacitor
lds xh,tcnt1H ; Would use ICR1H and ICR1L if this worked
lds xl,tcnt1L ; Get the desired speed
OUT PORTA,xh ; Output so we can see if it's working
The interrupt is triggering 'cause I can see my little cpapcitor charging and discharging, even varying the charge time as I vary the input voltage, but I always read 0s on PortA and PortC.
Since I still don't see where I've goofed up, I'll hit Submit.