Kul med PIC församling - Episode 3 (3 / 3 steg)
Steg 3: programvara
Programvaran länk nedan. Medan det är måltavlan för 16F688, är det lätt portas till andra versioner av bilden. Se bara till att du väljer en som har Timer1 Gate (T1G) ingång och en yttre mellanjobb ingång (INT eller EXT). Du måste också ändra raden som identifierar den PIC versionen (lista =) och INCLUDE-filen men de är intuitivt förändringar. Den __CONFIG linjen kan också behöva tweaking bara för att en eller två av de etiketter som används är stavat fel i några av inkluderade filer.
Avbrottshanterare här är lite finare än den som används i episod 2, inte att det behöver vara, men eftersom det visar hur du kan hantera flera avbrott källor. I princip kontrollera du bara vilka enskilda avbrott flagga har varit set och sedan gå till hanteraren. Om mer än ett avbrott flagga har ställts in kan du antingen kolla igen från inne avbrottshanterare eller helt enkelt tillbaka från avbrottet. Om en annan avbrott flaggan fortfarande anges, kommer avbrottshanterare utlösas igen automatiskt.
Som framgår av rubriken programvara, kräver ultraljud modulen en 10us eller längre Trigger puls. Det tar sedan upp till 38ms för Echo pulsen till komplett, med 38ms anses vara ett "ingen echo" värde. Rutinen Ping skickar ut en Trigger puls av om 14us och sedan väntar 50 ms för Echo pulsen. Det förväntas att avbrottet kommer att inträffa under denna tid försening. Avbrottshanterare sparar bara Timer 1 räkna värdena (alla 16-bits) och klarnar sedan timern och yttre mellanjobb flaggan. De allmänna avbrott aktivera (GIE) har aktiverats på nytt automatiskt när programmet avslutas avbrottshanterare. 200ms förseningen i LCD_Loop är godtyckliga värden som begränsar avståndet mätning uppdateringar om 4 per sekund.
Område av ultraljud modul resultaten är en maximal puls av ca 25ms eller 168 inches. Programvaran varit för bekvämlighet skull, begränsad till högst ca 98 inches (3800 hex). Omvandlingsfaktorer för både centimeter och tum anges i rubriken programvara så känn dig fri att ändra konvertera rutin för att utvidga de rapporteras eller ändra måttenheterna.
LCD-skärmen visar "xx INCHES" om inte rutinen konvertera bestämmer att avståndet är större än den godtyckliga gränsen för 98 inches. I så fall kommer den att Visa "Av RANGE".
Tja, är det det för Episode 3 "Kul med PIC församling". Håll ögonen öppna för ytterligare episoder.