-         

Ergebnis 1 bis 6 von 6

Thema: Timer in C programmieren

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    25.03.2006
    Ort
    nahe Tulln (Niederösterreich)
    Alter
    26
    Beiträge
    460

    Timer in C programmieren

    Anzeige

    Hallo!
    ich bin gerade dabei C zu leernen. ich will zuerst einmal die grundlagen lernen und mich dann erst auf mikrokontroller-programmierung konzentrieren. also ich kann schon ein bisschen und möchte gerne zu einem programm einen timer dazumachen. er soll von 30 sekkunden ca im sekkundentakt herunterzählen, mit 2-3 kommastellen. kann mir jemand sagen welchen befehl ich verwenden muss oder die paar zeilen posten?
    danke im voraus!

    mfg,
    Christoph

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    46
    Beiträge
    2.236
    Hallo,
    *hust*, Du meinst Timer für den PC ?

    wenn ja ist <time.h> Dein Freund, schau mal da

    Gruß Sebastian
    Software is like s e x: its better when its free.
    Linus Torvald

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    14.04.2006
    Ort
    Stuttgart
    Alter
    38
    Beiträge
    321
    öhm, was mir spontan dabei so auffällt:
    Zitat Zitat von Christoph2
    ca im sekkundentakt herunterzählen, mit 2-3 kommastellen
    Soll es jetzt jede Sekunde zählen oder soll es mit 2-3 Nachkommastellen (also Tausendstelsekunden oder so) zählen?

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    25.03.2006
    Ort
    nahe Tulln (Niederösterreich)
    Alter
    26
    Beiträge
    460
    sorry dass ich so lang nicht on war, mein computer is irgendwie kaputt, virus oder so.
    jetzt muss ich mit dem laptop meines vaters ins netz

    also der timer soll so zählen:

    30.000
    dann 29.999
    dann 28.998
    .
    .
    .
    das dann soll er nicht schreiben, sondern das 29.999stadt den 30.000 usw.

    danke für die antworten

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.801
    So allgemein kann man deine Frage nicht beantworten, da Standard-C keine Vorstellung von Zeit oder von Interrupts hat.

    Je nach Architektur wird die Antwort also ganz verschieden aussehen und ist auch davon abhängig, ob du für "the raw machine" codieren willst, oder ein OS oder eine HAL an deiner Seite hast, deren Funktionen du nutzen und gegen deren Bibliotheken du linken kannst.

    Auf einer nackten Maschine musst du die SFRs kennen, die du anpacken musst und das Zeug selber implementieren...
    Disclaimer: none. Sue me.

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    18.06.2005
    Alter
    34
    Beiträge
    17
    Wenn du einen AVR verwendest konntest du das in etwa so machen:


    //Timer einstellen
    TCCR1B = (1<<CS10) | (1<<CS11); //setzt den Prescaler 64
    OCR1A = 62500; //setzt den Vergleichswert
    TCNT1 = 0; //startewert des Counters
    TIMSK = 1<<OCIE1A; //Compare-Int aktivieren
    sei(); //globale Ints aktivieren
    TCCR0 = (1<<CS00) | (1<<CS02); //prescaler 1024 Bei einen Zhlerdtand von 4 sind 1,024 ms vergangen
    TCNT0 = 0;



    SIGNAL (SIG_OUTPUT_COMPARE1A)
    {
    //wird ausgeführt wenn der Counterwert mit dem Vergleichswert übereinstimmt

    s++;
    TCNT1 = 0; //timer 1 auf null
    Anzeige(s,m,h);

Berechtigungen

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