Merhaba,
Arduinodaki millis fonksiyonu arka planda bir Timer'ın bu değerlere set edilerek sizlere değer döndürmesi ile gerçekleşmekte.
ARM mimaride ise SYSTick Timer bu işi kendisi halletmekte.
Eğer 8051 mimarisinde çalışacak ve bu tarz bir fonksiyona gerek duyulacak ise tavsiyemiz;
Timer0, Timer1 veya Timer3 ü bu özellik için 1ms interrupta ayarlayarak bir değişkeni arttırmanız.
daha sonra oluşturacağınız
uint32_t millis(void)
{
return ms1timer;
}
şeklinde bir fonksiyon ile aynı işlemi gerçekleştirebilirsiniz.
Buradaki ms1timer global olarak volatile olarak set edilmeli ve Timer interrupt içerisinde arttırılmalı.