- 12V Akku mit 280 Ah bauen         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Probleme bei Taktung mit c++

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    18.05.2004
    Ort
    Aachen
    Beiträge
    33

    Probleme bei Taktung mit c++

    Anzeige

    Powerstation Test
    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. . .

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    22.04.2004
    Alter
    35
    Beiträge
    119
    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.

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    18.05.2004
    Ort
    Aachen
    Beiträge
    33
    Muss ich da noch eine spezielle header-datei einbinden?
    Mein Compiler kennt den Befahl sleep nicht.
    Hab nur die "io.h" drin

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.03.2004
    Ort
    Paderborn
    Alter
    40
    Beiträge
    614
    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)

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    22.04.2004
    Alter
    35
    Beiträge
    119
    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.

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    09.08.2004
    Alter
    46
    Beiträge
    77
    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

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    18.05.2004
    Ort
    Aachen
    Beiträge
    33
    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.

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    10.08.2004
    Beiträge
    122
    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.

  9. #9
    Gast
    Bei mir kam das gleiche! Ich habe dann einfach Sleep groß geschrieben am Anfang und jetzt geht es!

  10. #10
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    03.05.2004
    Ort
    Hannover
    Beiträge
    414
    Kannst auch nen Timer verwenden! Hab hier nen Quellcode mit nem Timer gepostet https://www.roboternetz.de/phpBB2/viewtopic.php?t=4337 !

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress