RoboterCC - Robotic Code Compiler
Forum Roboter.CC Webseite Fragen und Probleme delay - welche Zeit ?

Welcome

Nachrichten

Sie sind nicht eingeloggt.

Werbung

Banner

Letzte Themen

  • Keine Beiträge vorhanden

Site-Statistic

  • 7430 private projects
  • 378 public projects
  • 16178470 lines compiled
  • 58188 builds
NIBO @ facebook YouTube Twitter
Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:
Fragen und Probleme zur Roboter.CC-Plattform können hier diskutiert werden.
  • Seite:
  • 1

THEMA: delay - welche Zeit ?

delay - welche Zeit ? 10 Jahre 10 Monate her #2552

  • achim S.
  • achim S.s Avatar
  • OFFLINE
  • Gold Boarder
  • Beiträge: 441
Hallo
Im Nibo Library steht unter delay das folgende:


Makrodefinitionen

#define delay_ms(ms) _delay_ms(ms)
#define delay_us(us) _delay_us(us)


#define delay_ms ( ms ) _delay_ms(ms)


Verzögerung um die angegebene Zeit.
Parameter:
ms Zeit(Fliesskomma) in Milisekunden, maximal 16,383 ms


#define delay_us ( us ) _delay_us(us)


Verzögerung um die angegebene Zeit.
Parameter:
us Zeit(Fliesskomma) in Mikrosekunden, maximal 48 µs


void delay ( uint16_t ms )


Verzögerung um die angegebene Zeit.
Parameter:
ms Zeit(Ganzzahl) in Milisekunden, maximal 65535 ms

Wie ist den nun die korrekte Schreibweise und welche Zeit ist was?

achim
Der Administrator hat öffentliche Schreibrechte deaktiviert.

delay - welche Zeit ? 10 Jahre 10 Monate her #2555

  • BirgerT
  • BirgerTs Avatar
  • OFFLINE
  • Gold Boarder
  • Beiträge: 325
Hi Achim und alle anderen..
Mit delay_us(us) können Verzögerungszeiten in Mikrosekunden realisiert werden, der übergebene Parameter ist ein Float, also delay_us(1.5); würde theoretisch 1,5 Mikrosekunden warten. Beim Nibo2 sind scheinbar 2us die untere Grenze. es gehen auch 2.25, 2.5, 2.75 us Verzögerungen bis eben halt 48us. Das kann man selber gut ausprobieren: mehrere "delay_us()" mit unterschiedlichen Parametern von 0.5..5 programmieren.
Und einen Kommentar davor schreiben. Nach dem Compilieren entsteht eine Datei mit der Endung .lss. Hierdrin steht der vom Compiler erzeugte Maschinen-/Assemblercode--je nachdem wieviel us verzögert werden soll, gibt es eine Schleife mit unterschiedlich vielen NOPs drin.

Mit den Floats bei delay_ms() habe ich noch nicht probiert - einfach mal gucken, was der Compiler draus macht.
Es sollten also auch Verzögerungszeiten von z. Bsp. 2,234ms machbar sein.
Ein Tipp aus dem Internet (Atmel Note?): Das Delay sollte immer mit einer Konstanten aufgerufen werden, wird eine Variable übergeben, wird die Verzögerungszeit erst aufwendig berechnet. Deshalb auch die (nicht ganz genaue) Funktion delay() in der Nibolib. Bei delay(ms) wird nämlich ms als Zähler verwendet (uint16) der x-mal ein "delay_ms(1);" aufruft.
Der Administrator hat öffentliche Schreibrechte deaktiviert.
  • Seite:
  • 1
Ladezeit der Seite: 0.037 Sekunden

Werbung