Also er soll immer ungefähr 2ms warten...
Das kannst du mit
Sleep(2);
machen. Hier wartet er genau 2 ms.
Hallo an alle,
ich habe folgendes Problem. Wollte eine IR-Fernbedienung
entwickeln, welche den SIRCS/CNTRL-S-Code verwendet.
Das ist aber erstmal egal.
Das eigentliche Problem ist, das ich versucht habe in c ein Programm zu schreiben, welches mir an einem Ausgang meines Controllers einen Takt mit definierte Impuls-, Pausenverhältnis bringen soll
Ich habe es folgendermaßen realisiert:
for(;
{
outp (0x00, PORTB);
for(a=0;a<8300;a++); // 8300 Takte warten, entspricht
// ungefähr 2,4ms
outp (0x01, PORTB);
for(a=0;a<8300;a++);
}
Hierbei ist das Problem, das die Anzahl der Takte die die Schleife zählt,
stark nichtlinear zu der Zeit ist die der Takt andauert.
Woran liegt das, was kann ich besser machen damit ich mir die Länge des Taktes vorher berechnen kann.
Danke im vorraus. . .
Also er soll immer ungefähr 2ms warten...
Das kannst du mit
Sleep(2);
machen. Hier wartet er genau 2 ms.
Handbuch: Ein Objekt, das den Monitor auf Augenhöhe anhebt.
Hardware: Die Teile eines Computers, die man treten kann.
Multitasking: Mehrere Dinge gehen gleichzeitig kaputt.
Muss ich da noch eine spezielle header-datei einbinden?
Mein Compiler kennt den Befahl sleep nicht.
Hab nur die "io.h" drin
Den Befehl kenn' Ich auch nicht(und wenn der Compiler den Takt nicht kennt, kann auch keine Funktion eine davon unabhängige Zeit warten.).
Die Delay.h enthält zwei Warteschleifen. In der Datei steht auch als Kommentar drin, wie lange die jeweils dauern.
it works best if you plug it (aus leidvoller Erfahrung)
Der Befehl Sleep(ms) ist in c++ vorhanden ("Probleme bei Taktung mit c++").
Wenn du ihn benutzen willst musst du die iostream.h einbinden.
Handbuch: Ein Objekt, das den Monitor auf Augenhöhe anhebt.
Hardware: Die Teile eines Computers, die man treten kann.
Multitasking: Mehrere Dinge gehen gleichzeitig kaputt.
beim c compiler müsste es den geben ich arbeite schließlich mit c und um mit cout und cin zu arbeiten brauche ich iostream.h
also der müsste gehen
Danke für die Postings, aber hinbekommen habe ich das immer noch nicht.
Ich zeig mal den Programmtext.
#include<sleep.h>
#include<avr/io.h>
int main(void)
{
sleep(2);
return(0);
}
Und die Fehlermeldung dazu die der Compiler rausspuckt:
C:\Dokumente und Einstellungen\Franz\Desktop\Roboter\Programme\Test 01/
Intervalltest.c:8: undefined reference to `sleep'
Also es scheint ja das der Compiler das sleep an sich findet aber irgendein Problem mit dem Wert 2 hat, so verstehe ich das, aber ich weiss nicht was falsch sein soll.
Wäre euch sehr verbunden wenn ihr mir helfen könntet.
Hi, das ist ja auch wieder nur C ohne iostream.h , da kennt er das sleep() nicht. Aber ich kann in meiner *.cpp Datei leider kein iostream.h einbinden, findet er nicht.
Bei mir kam das gleiche! Ich habe dann einfach Sleep groß geschrieben am Anfang und jetzt geht es!
Kannst auch nen Timer verwenden! Hab hier nen Quellcode mit nem Timer gepostet https://www.roboternetz.de/phpBB2/viewtopic.php?t=4337 !
Lesezeichen