Hallo
[Abschweif]
Die Library für den asuro wurde über längere Zeit weiterentwickelt. Sehr praktisch war dabei die Einführung von PrintInt() und Msleep() und die Umstellung auf den 36kHz-Takt für Sleep(). Die wichtigste Erweiterung (aus meiner Sicht) war die Modifikation des Timers zur IR-Abstandsmessung durch waste ab Version 2.3. Es wurden zu dieser Zeit zwar auch Erweiterungen für die Taster- und Encoderauswertungen eingeführt, diese fanden aber keine breite Anwendung (ich habe darüber bisher kaum etwas gelesen). Ab Version 2.6 entwickelte sich die Lib immer weiter weg von der Hardware des asuro, hauptsächlich die neuen Motorfunktionen entfernen sich immer mehr von der klassischen Odometrie der Ur-Lib. Deshalb verwende ich die Version 2.3 und bin eigentlich glücklich damit :) Alle Versionen gibt's hier zum Download:
http://sourceforge.net/projects/asuro/files/AsuroLib
Der Einstieg zur aktuellen Lib befindet sich hier:
https://www.roboternetz.de/phpBB2/vi...=275614#275614
[/Abschweif]
Ich muss ja die wechsel in einer bestimmten zeit zählen
Seit ca. V2.2 gibt es die Funktion Gettime(), sie liefert als LongInt die Zeit in Millisekunden seit dem Systemstart. Damit kann man wunderbar nichtblockierend Zeiten messen:
Code:
// neue Zeitfunktion
unsigned long Gettime(void)
{
return ((timebase*256)+count36kHz)/36;
}
Das Schema:
unsigned long merke_startzeit, gebrauchte_zeit;
merke_startzeit=Gettime();
Mache_irgendwas;
gebrauchte_zeit=merke_startzeit-Gettime();
Für kürzere Zeiten (<1ms) kann man auch direkt auf timebase und count36kHz zugreifen, aber das ist dann schon eher Expert-Level ;)
Gruß
mic
Lesezeichen