Stap 11: Schrijven en compileren van de Code van de AVR
Ten eerste, download een exemplaar van WinAVR - http://winavr.sourceforge.net/ of MacAVR http://www.harbaum.org/till/macavr/index.shtml
WinAVR is een suite van nuttige tools zoals de compiler, headers/codebibliotheken en meer. In principe alles wat die je nodig hebt om te beginnen met programmeren en het uploaden van uw code.
Codering voor AVR's is heel eenvoudig. U gewoon uitschrijven uw code met behulp van normale C, kunt u het opnemen van standaard bibliotheken voor het sorteren, string manipulatie, wiskunde en nog veel meer. U hoeft te nemen van de relevante AVR bibliotheken zoals de io, slaap, interrupt pakketten, afhankelijk van wat uw code bevat (de bibliotheek is altijd nodig).
Nadat de code is geschreven, moet het worden gecompileerd en gekoppeld. De eenvoudigste manier om dit te doen is met behulp van een makefile. De makefile doet al het harde werk voor u, alles wat je doet is geeft u de naam van uw C-bestanden en alle bestanden van de vergadering (moet worden aangeroepen. S - hoofdlettergevoelig) en de processor die u gebruikt. Dit bestand gaat in dezelfde map als uw broncode.
Er is een goede sjabloon hier: http://electrons.psychogenic.com/modules/arms/art/8/AVRProjectOrganizationStandardizedAVRMakefileTemplate.php
Ik zal niet gaan door het proces van het schrijven van een bestand, de sjabloon hierboven is toegelicht en moet duidelijk :)
Om te compileren eigenlijk uw code in het .hex binaire bestand dat uw micro kan begrijpen, we gebruiken de MS-DOS-prompt. Navigeer naar de map die u nodig hebt met de opdracht 'cd' vervangen door de map van het bestand. Simpelweg type "Breng hex" en druk op enter. Wat zou moeten resulteren, is een paar lijnen van het schrijven die u kunt negeren en een hexadecimaal bestand moet worden weergegeven in de map met uw broncode. Als om het even wat verkeerd ging, zal de compiler een fout meestal met een regelnummer en het bestand dat de fout was in spugen. Vervolgens kun je aan de lijn verwijzing, positiebepaling naar de werkstuk en probeer het opnieuw. De code geef ik hier moeten worden compileerbaar, of ten minste compileert op mijn machine. Ik zal niet zeggen bug-vrij omdat geen code ooit is!
Ik zal proberen, als ik kan om te geven een run down van wat de code doet. Het is mooi ook commentaar in mijn mening dus moet vrij zelf verklarend voor ervaren programmeurs. De code die we gebruiken is vrij ingewikkeld en aanbiedingen met een heleboel dingen die nieuwkomers weten willen, omgaan met input en output, interfacing met een display, met behulp van de ADC en Timer interrupts, slapen modi en meer. Het was een geweldige primer voor mij in ieder geval = D
OK, gaan laat op uw eerste programma en proberen om het te uploaden!