Stap 3: Software
Hieronder vindt u de link van de software. Terwijl het wordt gericht voor de 16F688, is het gemakkelijk ported aan andere versies van de PIC. Zorg ervoor dat u kiest een die de Timer1 Gate (T1G) input en een externe interrupt inbreng (INT of EXT heeft). U zult ook moeten veranderen de regel waarmee de PIC-versie (lijst =) en het INCLUDE-bestand, maar die zijn intuïtieve veranderingen. De __CONFIG lijn wellicht ook tweaken alleen maar omdat een of twee van de gebruikte etiketten zijn anders gespeld in sommige van de INCLUDE-bestanden.
De interrupt handler hier is een beetje liefhebber dan degene die zijn gebruikt in aflevering 2, niet omdat het moet, maar omdat het laat zien hoe u kunt omgaan met meerdere interrupt bronnen. In feite controleren u gewoon om te zien welke afzonderlijke interrupt-vlag is ingesteld en vervolgens GOTO die handler. Als meer dan één interrupt-vlag is ingesteld kunt u opnieuw controleren uit binnen de interrupt handler of gewoon terug uit de interrupt. Als nog een andere interrupt-vlag is ingesteld, worden de interrupt handler automatisch weer geactiveerd.
Zoals aangegeven in de header van de software, vereist de ultrasone Module een 10us of langer Trigger puls. Vervolgens duurt het tot 38ms voor de Echo-puls te voltooien, met 38ms beschouwd als een "geen echo" waarde. De routine van de Ping stuurt een puls van de Trigger van over 14us en vervolgens wacht 50 MS voor de Echo-puls. Verwacht wordt dat de interrupt tijdens die tijdvertraging zal optreden. De interrupt handler alleen slaat de waarden tellen Timer 1 (alle 16-bits) en vervolgens worden gewist van de timer en de externe interrupt-vlag. De algemene interrupt enable (GIE) wordt automatisch opnieuw wordt ingeschakeld bij het afsluiten van de interrupt handler. De 200ms vertraging in de LCD_Loop is een willekeurige waarde die de afstand meten updates voor ongeveer 4 per seconde beperkt.
Het effectieve bereik van de ultrasone Module resultaten is een maximale hartslag van ongeveer 25ms of 168 inches. De software is voor gemakshalve, beperkt tot een maximum van ongeveer 98 duim (3800 hex). De omrekeningsfactoren voor zowel centimeters en inches worden vermeld in de kop van de software dus voel je vrij om te wijzigen de routine converteren om het te rapporteren bereik uitbreiden of maateenheden wijzigen.
Het LCD-scherm "xx INCHES" tenzij de Convert routine bepaalt dat de afstand groter dan de arbitraire limiet van 98 inch is. In dat geval wordt het 'OUT OF RANGE' weergegeven.
Nou, dat is het voor aflevering 3 van "Fun met PIC vergadering". Stay tuned voor meer afleveringen.