Realtime OS / LCD på $12 Discovery ombord (2 / 6 steg)
Steg 2: Bygga / kör FreeRTOS
Bara ladda ner den bifogade zip-filen och expandera någonstans på din hårddisk. Efter det är gjort, bör du ha en katalog som heter "Koppar" inställning någonstans på din hårddisk. Nu, brand upp TrueSTUDIO och klicka på menyalternativet Arkiv/Switch arbetsyta / andra... I dialogrutan, kallas punkt Atollic till den nya katalogen du uppackade bara "Koppar".
Du bör vara redo att gå med STM32 Discovery styrelsen anslutna till en USB-port. Under menyalternativet klicka "Projekt" på "Ren...". Detta kommer att rensa alla gamla binära bygga filer om det finns några. Nästa, tryck tangentkombinationen CTRL-b att bygga all källkod. Efter 20-30 sekunder kan alla källfiler kompileras. Det bör finnas inga fel eller varningar efter byggprocessen är klar. Observera, normal bygger tar bara ett par sekunder eftersom kompilatorn endast har att sammanställa en eller två filer.
OK, är vi redo att rock'n. Klicka på den lilla buggen på verktygsfältet med STM32 Discovery styrelsen ansluten (för musen över det - det ska stå "Debug Copper.elf"). Efter den nag annonsen, debugger hämtar binärfilen till styrelsen och sedan väntar på ditt kommando. Allt detta tar ungefär 10 till 15 sekunder. Inuti debugger, tryck F8 för att starta programmet igång.
Med bifogade källan koden kompileras och körs på styrelsen du bör se någon cool LED-aktivitet. Den gröna lysdioden blinkar snabbt och den blå lampan är bleknar långsamt upp och ner. Jag programmerade den blå LED-ganska ser ut som den äpple logon - modenycker upp och ner som ett hjärtslag.
Allt det LED här framöver i vApplicationTickHook() som ligger i "utils.c". Funktionen vApplicationTickHook är en OS callback funktion. OS anropar funktionen på varje OS fästing. Observera att tick ränta kan ändras i filen FreeRTOSConfig.h. Leta efter en variabel som kallas "configTICK_RATE_HZ" för att ändra den grundläggande tick ränta. Standard tick ränta är inställd på 100Hz (eller varje 10 MS).
Så växlar den gröna lysdioden på varje 5: e fästing (10 MS * 5 = 50 ms). Det ger 10 blixtar per sekund. Blå LED använder en PWM-utgång som körs på 100Hz. Timern var setup så att värdena 0 till 1000 tanke som tillverkas av 0 till 100%. Med andra ord, ändras varje ökning av duty cycle värdet PWM utgången med 0,1 procent. Coooool. OS tickande callback funktion bara några steg intermittensen fram och tillbaka.
Poängen med tråkigt lysdioderna är att se till OS körs utan problem och har ingen hicka. Om någon av din kod avbryts, avbryter eller blockerar OS under långa perioder då lysdioderna kommer att göra det synligt.