Hej Kåre
Helt klart. Ja, det er lidt overkill med en mega32, men nu var det lige den, eksemplet var lavet ud fra ;-) Eksemplet er jo lavet med en Captureindgang for at kunne benytte interrupt - det vil jeg også gerne lave det med, men som jeg forstår eksemplet, så starter timeren, når ICP går høj og stopper, når den går lav igen - er det ikke rigtigt forstået? Jeg vil jo netop have een fotosensor til at starte timeren og en anden til at stoppe den. Det lyder næsten som en S/R Flip-flop, men hvorfor skulle man dog blande en F/F ind i det, når det da bør laves i SW'en - der er vel andre, der har haft behov for at lave et lignede projekt før? :-) Det skal faktisk bruges til at aflæse "mundingshastigheden" fra en katapult, så lidt tidskritisk er det da. Jo, jeg kan godt programmere, men man kan jo altid blive dygtigere af andres erfaringer :-)
Mvh.
T.
------------------------------- Du har jo nok pins nok, så jeg ville bare vælge en fotosensor ind på hver sin interruptindgang. Bland Capture funktionen ude af det.
Start en timer når det ene interrupt trigger, og stop timeren og udfør beregning, sende data osv når det andet interrupt kommer. Det kræver ingen ekstra ekstern hardware, og koster vel ikke mere end 10-20 linier kode, for selve interrupt/timing delen.
Du kan jo bruge Mega32'erens 16 bit timer 1, sætte prescaler så du får en tilpas opløsning. Hvis de 16 bit ikke er nok må du jo så enable overflow interrupt for timeren, så du kan tælle til mere end 65535 ticks. Nulstil timeren på INT0 (fotocelle1), og aflæs den på INT1 (fotocelle 2).
mvh Kåre