Stap 15: Schrijven van de Code
De code is, nogmaals, aangesloten. Er zijn twee versies. Men zal werken met Canon, men zal werken met Nikon. Controleer in de mappen, zoekt u naar "Intervalmeter Test.c". Edit de makefile zodat het lijkt voor deze c bestand wanneer het compileren.Het proces is heel veel hetzelfde, echter. Wij definiëren sommige namen voor elke pin zodat de code begrijpelijker.
Dan, we schrijven de init functie opnieuw, maar ditmaal we alle Port D uitvoer en slechts één pin op poort C aan output worden ingesteld - de LED we afgelopen tijd toegevoegd.
Vervolgens schrijven we de daadwerkelijke shoot-functie. Het uitgangspunt is simpel, elk in- / uitschakelen voor de LED cyclus duurt 26uS, wij verdelen de pulsen in 26uS brokken en vervolgens herhalen aan/uit cycli die vele malen. Pauzes tussen peulvruchten zijn gewoon normale vertragingen. De code is commentaar over de vraag hoe de tijdsinstellingen zijn uitgewerkt. De lussen zijn alleen voor lussen.
Het hoofdprogramma is vrij eenvoudig. We initialiseren onze input/output. Vervolgens gaan we in de oneindige lus, zet de LED (niet status LED) en de shoot-functie aanroepen. Vervolgens schakelt u de LED en wacht 5 seconden. Deze lus worden eindeloos herhaald.
Als u een echt echt eenvoudige intervalmeter wilt, zojuist u een. Gewoon de vertraging instellen wat u nodig (er is een Delay_s-functie ook) en het programma wordt herhaald totdat u de stroom uitschakelen.
Uw code uploaden naar het micrcontroller als voorheen, vergeet niet om het verbinden van de kristal/condensatoren. Uw programma testen en controleren van het bereik. LEDs zijn vrij directionele, dus je moeten zult erop het min of meer loodrecht op de IR-poort van de camera te garanderen van een foto op een groter bereik. In een rechte hoek aan de camera heb ik ongeveer 2 m bereik. Geconfronteerd met het hoofd van de chip op ik heb ongeveer 5-10 m +. Dit bereik enigszins buiten zal afnemen, maar het zal nog steeds werken als je de emitter dicht op de camera houden.
Next up, knoppen.