Forum: Mikrocontroller und Digitale Elektronik Timer


von Adrian (Gast)


Lesenswert?

Hallo,

kann mir jemand ein Tip geben wie ich eine Zeit von 3 sec. in C 
programmieren kann. Ich habe i=0; i<30000 gesetzt und es klappt. Es sind 
aber keine 3 sec. Danach habe ich auf 50000 erhöht und mein 80C535 
bleibt hängen. Gibt es da grenzen für i?

von Jens Fiedelak (Gast)


Lesenswert?

Hallo Adrian,

das liegt an Deiner Definition von i, geht wahrscheinlich nur bis 32000. 
Versuch's mal mit unsigned int oder long!

Gruß Jens

von Holger (Gast)


Lesenswert?

Hallo!

Falls i ein signed 16-Bit Integer ist, lauft der nur bis 32768.
Zum Zeitberechnen muesste man den Prozessortakt kennen und gucken, 
wieviel Assemblerbefehle der Compiler aus der Schleife macht. Notfalls 
bleibt nur ausprobieren. Du brauchst bestimmt mehrere verschachtelte 
for-Schleifen.
Warum benutzt Du nicht den Timer?

Gruss,
Holger.

von Tobias Vaupel (Gast)


Lesenswert?

Ich denke auch dass es einfacher wäre einen Timer zu benutzen.

Einfach so einstellen dass er alle 50ms nen Interrupt auslöst und bei 
jedem Interrupt ne Ticker-Variable erhöhen. Wenn die Variable dann auf 
60 steht(3000ms/50ms) hast du deine 3sec. erreicht.

Nicht vergessen die Ticker-Variable nach erreichen der 3sec. wieder auf 
0 zusetzen :)

von Adrian (Gast)


Lesenswert?

vielen dank leute werde es versuche und gebe euch dann eine Antwort

mfg,

Adrian

von Adrian (Gast)


Lesenswert?

Vielen Dank,
werde euere Vorschläge ausprobieren und gebe Euch dann eine Antwort.

mfg,

Adrian

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.