Archiv verlassen und diese Seite im Standarddesign anzeigen : Gettime();
Hi,
ich wollte den Gettime() Befehl mahl ausprobieren. Und so wie ich das verstanden habe gibt es mir die Zeit seit der Asuro eingeschaltet wurde in milliSekunden an.
Also müsste es nach sagen wir 5sec 500 ausgeben und nach 10sec 10.000, ...
Also ich hab das einfach mal probiert:
#include "asuro.h"
int main(void) {
Init();
unsigned long aktTemp;
for(;;){
aktTemp = Gettime();
PrintInt(aktTemp);
SerWrite("\r\n",4);
}
}
Doch es gibt mir inerhalb von ca. 5sec werte von 1000 und größer.
Warum ist das so.
Danke
Mfg Florian
radbruch
03.07.2012, 21:14
Hallo
Gettime() gibt es ab Version 2.2 der Library und zählt die Millisekunden seit dem Programmstart in einem Longint (32bit):
// neue Zeitfunktion
unsigned long Gettime(void)
{
return ((timebase*256)+count72kHz)/72;
// return ((timebase*256)+count36kHz)/36; // Formel für 36kHz-Lib ab Version 2.3
}
ASURO Library Versions History
==============================
Version 2.2
===========
- 31.03.2005 Erweiterte Funktionen (Author: weja - Robotrixer Buxtehude)
Kurzbeschreibung der Funktionen in der neuen asuro.h, asuro.c vom 31.03.05
Leider konnten die neuen Funktionen nicht mehr in einer Extradatei untergebracht
werden, weil mehrere "alte" Funktionen verändert wurden, damit z.B. die Systemzeit
integriert werden konnte. Auch wurde die PollSwitch Funktion vom Ballast der Fließkomma-
berechnung befreit. Nun ist wieder mehr Platz für eigenen Code vorhanden.
Encoder_Init()
Dieser Befehl installiert die Interrupt Funktion für den automatischen Wegzähler.
Encoder_Start()
Startet die automatische Zählung nach
Encoder_Stop()
neu. Diese Stopp Funktion hält den Zähler an
Encoder_Set(int,int)
Setzt die Variablen encoder[0] und encoder[1]. Z.B.: Encoder_Set(0,0) setzt beide
Variablen auf Null.
switches
ist eine Variable, die, wenn Startswitch() gestartet wurde, auf wahr gesetzt wird,
sobald eine Taste gedrückt wurde. gleichzeitig wird die Tastenüberwachung wieder
abgeschaltet. Beispiel:
Start_Switch();
while (!switches){;} //wartet auf Tastendruck
// an dieser Stelle kann mit Pollswitch geprüft werden
// welche Taste gedrückt wurde, wenn nötig.
switches=FALSE; // für eine neuen Aufruf von Startswitch()
Msleep(int)
wartet die angegebene Zeit in ms. Z.B warte 10 Sekunden: Msleep(10000);
Gettime()
Gibt die Zeit, die seit dem letzten Start des Asuro vergangen ist als unsigned long zurück.
Die Angabe erfolgt auch hier in Millisekunden.
PrintInt(int)
Eine kleine Ausgabehilfe für Integerwerte.
Beispiel Zeilenweise Ausgabe der encoder Werte:
PrintInt(encoder[0]);SerWrite(" ",3);PrintInt(encoder[1]);SerWrite("\n\r",2);
31.03.05 Robotrixer Buxtehude
Version 2.1
===========
- 10.11.2003 Original Version von der ASURO CD (Author Jan Grewe - DLR)(http://sourceforge.net/projects/asuro/files/AsuroLib/)
Gruß
mic
P.S.: Ach ja, 1000ms ergeben eine Sekunde...
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.