#include "asuro.h"
gehe zum Quellcode dieser Datei
Funktionen | |
unsigned long | Gettime (void) |
return time since system start in ms | |
void | Sleep (unsigned char time36kHz) |
Wartefunktion. | |
void | Msleep (int dauer) |
Wartefunktion in ms. |
Erzeugt Zeiteinheiten anhand des laufenden Timer 2-Interrupts.
Dieser ist auf 36 kHz eingestellt um die Hardware der serielle
Schnittstelle zu bedienen (siehe in asuro.c unter SIGNAL (SIG_OVERFLOW2)).
Die globalen Variablen count36kHz und timebase werden dort bearbeitet.
In den hier vorhandenen Funktionen werden diese Variablen genutzt
um Zeiten und Verzoegerungen zu erzeugen.
V--- - bis zum 07.01.2007 -
Bitte in Datei CHANGELOG nachsehen.
V001 - 13.01.2007 - m.a.r.v.i.n
+++ Alle Funktionen
Zerlegte Sourcen in einzelne Dateien fuer eine echte Library.
V002 - 22.01.2007 - Sternthaler
+++ Alle Funktionen
Kommentierte Version (KEINE Funktionsaenderung)
Definiert in Datei time.c.
unsigned long Gettime | ( | void | ) |
return time since system start in ms
Da der Asuro keine Atomuhr hat, ist es die vergangene Zeit seitdem er eingeschaltet wurde.
Genauer: nachdem der Interrupt Timer2 aktiviert wurde.
keine |
Definiert in Zeile 78 der Datei time.c.
00079 { 00080 return ((timebase * 256) + count36kHz) / 36; 00081 }
void Msleep | ( | int | dauer | ) |
Wartefunktion in ms.
Diese Funktion nutzt die Sleep()-Funktion um mit dem uebergeben Parameter
Pausen in ms-Einheiten zu erhalten.
[in] | dauer | Wartezeit in Millisekunden. |
// 1.5 Sekunde warten Msleep (1500);
Definiert in Zeile 143 der Datei time.c.
00145 { 00146 int z; 00147 for (z = 0; z < dauer; z++) 00148 Sleep (36); 00149 }
void Sleep | ( | unsigned char | time36kHz | ) |
Wartefunktion.
Die maximale Wartezeit betraegt 7ms. Fuer laengere Wartezeiten siehe Msleep().
Diese Funktion nutzt den Timer 2-Interrupt um ein 'zeitgefuehl' zu erhalten.
Der Interrupt wird mit 36 kHz, durch die Init()-Funktion initialisiert,
aufgerufen und zaehlt dort die globale Variablen count36kHz weiter.
Diese Funktion nutzt diesen Zaehler und berechnet daraus mit dem uebergeben
Parameter den Zeitpunkt wann die Pausenzeit erreicht ist, Danach bricht sie
ab, und im Hauptprogramm ist eben eine Wartezeit eingelegt worden.
[in] | time36kHz | Wartezeit x/36kHz (sec) |
// 1 Millisekunde warten Sleep (36);
Definiert in Zeile 111 der Datei time.c.
00113 { 00114 unsigned char ziel = (time36kHz + count36kHz) & 0x00FF; 00115 00116 while (count36kHz != ziel) 00117 ; 00118 }