Millis() funktion för stm8s MCU
Liksom många andra, jag började med Arduino plattform, och kan inte leva utan funktionen användbar millis(). När någonsin studerar nya MCU, en av de första saker jag gör är att leta efter millis() funktion. Med AVR är att funktionen är redan tillgängliga, med hjälp av Timer0 det enklaste sättet. För STM8S, kunde jag inte hitta en. Så, jag måste bygga en. Efter en kort tid att lära sig, var jag kan göra ett bibliotek så att det är lätt att använda.
Huvudsakligen, har denna funktion måste vi använda en timer, i detta fall jag använder Timer4, som är grundläggande 8-bitars timer, och vi kommer att använda sin overflow avbrott. Nedan finns information om hur man använder det:
- Först i det huvudsakliga bötesbeloppet (normalt main.c), måste biblioteket anropas:
#include "tim4millis.h"
- På Main () del, måste vi inleda timer 4 genom att funktionen TIM4_Init()
TIM4_init();
- Sedan, när någonsin behöver veta den aktuella millis sedan startade, vi behöver bara kalla millis()
uint32_t currentTime = millis();
I den bifogade filen (eller i min Github repo) använder sidhuvudfilen och källfilen tim4millis bibliotekets och exempelfilen att visa hur man blinkar led (klämma fast PB5) som i Denna STM8S103F3P6 Minimum Development Board, millis().
Hoppas detta kommer att spara några gånger när du startar med STM8S. Skål.