Kronograf för Air kanon (4 / 6 steg)
Steg 4: programvara
Källkod *.asm fil och monterade *.hex fil för programmering är kopplade. Dessutom ingår en hög nivå flödesschema för huvudprogrammet.
Detaljer
Mikroprocessorn används är en PIC16F628A. Mikroprocessorn körs på en egen intern 4 MHz klocka. De inre anvisning cyklerna därför ta 1 mikrosekund.
Programmet startar en inre timern på när den första strålen bryts. Interna timern (timer 0 på denna PIC processor) räknas med en hastighet av en räkna per instruktion cykel. När den andra strålen bryts, stängs programmet av räknaren. Timer 0 är endast 8 bitar så det svämmar över varje 256 räknas, eller varje 256 mikrosekunder. Programmet kontrollerar om översvämningar och ökar en annan variabel varje gång ett dataspill inträffar, om den variabeln flödar över (efter 65536 instruktioner cyklar), sedan en annan variabel ökas. På detta sätt, en 24-bitars sammanräkning av antalet instruktion cykler som har uppstått sedan bryta av den första strålen genereras. Eftersom en instruktion cykel tar 1 mikrosekund, är antalet i mikrosekunder.
Om räkningen flödar över den andra variabeln, programmet avslutas och visar ett meddelande om timeout.
24 bitar kan lagra ett värde av 16777215 räknas, så timern kan mäta ett intervall mellan händelser som 16.78 sekunder.
Om den andra strålen bryts innan den maximala tiden förflutit, fortsätter programmet sedan konvertera 24-bitars binär räkningen till 8 ASCII decimal siffra som sedan visas på LCD-skärmen.
När enheten är första driver upp eller återställa, en intro skärmen visas på LCD-skärmen under ca 1 sekund. Efteråt, vilja den uppvisning en snabb skärm, läsa "Väntar för START". Den kommer att fortsätta att visa detta meddelande förrän efter andra strålen bryts (i hela intervallet mellan att bryta två balkar). Efter den andra strålen är bruten, visas resultaten sedan som XXXXXXXX MIKROSEKUNDER. Detta meddelande visas tills reset-knappen trycks in eller befogenhet att enheten är cyklade slå på den igen.
Om räkningen överskrider maximalt, meddelandet "Greve OVERFLOW" kommer att visas tills en återställning eller makt cykel inträffar.