Stap 5: 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 mogelijkheid van asynchrone seriële poort 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 software bootst in wezen de opdrachten die wij handmatig uit het Eindprogramma gezonden. Op de juiste plaatsen wacht het op het verwachte responsen van de ESP8266 alvorens verdere opdrachten. De opdrachten verzonden en de reacties verwacht wellicht wijzigen als de opdracht AT set in nieuwere versies van de ESP8266 wordt bijgewerkt. Bij het verzenden van de opdracht snaren en de dummy boodschap dat de PIC gebruikt indirecte adressering van RAM-locaties in banken 0 en 1. De code voor het initialiseren van de geheugenlocaties is gelegen aan het einde van de aanbieding. Helaas, deze oudere foto's zijn beperkt in hun indirecte adresseringsmogelijkheden zodat we niet enkel de snaren in Flash-geheugen insluiten zoals we voor de grafische weergave van de LCD in aflevering 13 deden. Dat project gebruikt een nieuwere 16F1847 PIC en het zou makkelijk genoeg naar de haven van dit programma aan dat nieuwere PIC als je zo geneigd zijn.
Om het gebruik van een gemeenschappelijk routine voor het verzenden van de snaren we konden hebben beide een lengte van de tekenreeks doorgegeven aan de routine of gewoon een "einde-van-string"-teken toevoegen aan elke tekenreeks. De tweede optie is wat ik ervoor gekozen en ter vereenvoudiging van het verder gebruikte ik de numerieke waarde 0. Waarmee de code voor het laden van de volgende waarde en vervolgens controleren om te zien als het laden veroorzaakt de vlag van de nul moet worden ingesteld in de Status registreren. De lengte van de tekenreeks gedefinieerd omvatten ruimte voor een regelterugloop en een regelinvoer voor elk op de opdracht en de einde-van-tekenreeks-id voor alle uitgangen. Merk op dat de gegevens die worden verzonden na het versturen van de CIPSEND opdracht niet hoeft een regelterugloop of regelinvoer.
Het is de moeite waard om op te merken dat de ESP8266 stuurt terug een heleboel gegevens die we echt niet schelen. Vanwege dat, gelet de seriële ontvangen code als een interrupt handler niet zou een goede manier om te gaan. Het probleem is echter dat het gewoon polling voor reacties zal leiden tot de ontvanger buffer overflow. Dat is de reden waarom de "Overflow"-handler in de code is erg belangrijk. Het staat de PIC gewoon ruimen de overloop op haar gemak en wacht u tot het verwachte responsen. In voorgaande aanbiedingen waar ik had niet verwacht overflows dat gebruikte ik de methode beschreven in de data sheet voor uitschakelen/inschakelen van de seriële poort. Dat werkte niet goed in dit programma en ik vermoed op had iets te maken met het feit dat de zender kan niet zijn voltooid voordat de overflow werd behandeld. Vanwege dat ik veranderde de tweede methode van de clearing van de vlag van de overloop waarin alleen de seriële ontvanger uitgeschakeld/ingeschakeld is.
Het het schermschot van de PIC berichten van het programma terminal en naar de webpagina die wordt weergegeven boven. Merk op dat de "Hello World"-bericht verzonden is op twee lijnen. Dat komt omdat het bericht heeft een opdracht HTML opgenomen (< br >) die een nieuwe regel doet. Dat is belangrijk op te merken, omdat de meeste elke HTML-opdracht opgenomen worden kan in wat u naar de webpagina verzendt. Terwijl het bericht in dit voorbeeld statisch is, kon u het dynamische aan uw behoeften. Gewoon bellen naar uw eigen bericht maken van routine in de routine van de "Send_Data". Zoals vermeld in de sectie van de opening kunt u lezen een temperatuursensor, de waarde te converteren naar ASCII, en vervolgens output de resultaten wanneer de ESP8266 een webpagina ontvangt verbinding verzoek. Voor toepassingen zoals die zorgt voor een vernieuwing van de webpagina de PIC voor het verzenden van nieuwe gegevens, zodat u niet hoeft te sluiten en opnieuw op de webpagina.
Nou, dat is het voor aflevering 18 van "Fun met PIC vergadering". Stay tuned voor meer afleveringen.