Net als vele anderen, ik begon met Arduino platform, en kan niet leven zonder de handige millis()-functie. Wanneer ooit de studie van nieuwe MCU's, een van de eerste dingen die ik doe is op zoek naar de millis() functie. Met AVR is dat functie reeds is beschikbaar, met behulp van Timer0 de eenvoudigste manier. Voor STM8S, kon ik niet vinden een. Dus, ik moet bouwen. Na een korte tijd leren, was ik kunnen maken een bibliotheek, zodat het makkelijk te gebruiken.
Vooral, hebben deze functie moeten we gebruiken een timer, in dit geval ik gebruik Timer4, dat standaard 8-bits timer, en zullen we het overflow interrupt gebruiken. Hieronder is de details van hoe het te gebruiken:
- Eerst, kortom de belangrijkste bron (normaly main.c), de bibliotheek moet worden aangeroepen:
#include "tim4millis.h"
- Op het gedeelte van de main(), moet we timer 4 starten door het aanroepen van de functie TIM4_Init()
TIM4_init();
- Dan, wanneer ooit moet weten de huidige millis sinds opstarten, we hoeven alleen maar bel de millis()
uint32_t currentTime = millis();
In de bijlage zijn het headerbestand bronbestanden van de tim4millis-bibliotheek en het voorbeeldbestand om te tonen hoe te knipperen van de led (pin PB5) zoals in Deze STM8S103F3P6 Minimum Development Board, met behulp van millis().
Ik probeerde maar niet de bestanden van de upleaded wordt weergegeven, dus bezoek mijn Github repo voor de bibliotheek en de voorbeeld bestanden.
Hoop dat dit bespaart u soms bij het starten met STM8S. Cheers.