-
        

Ergebnis 1 bis 2 von 2

Thema: Timer 2 Initialisierung

  1. #1

    Timer 2 Initialisierung

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    void main(void)
    {
    // Do initialization

    // setup timer2 to int every milisecond

    // Start counting
    miliseconds = 0

    // wait until the 1 second is up
    while (miliseconds < 1000);

    do_function();

    // wait until the 10 seconds are up
    while (miliseconds < 10000);


    while(1)
    {
    }

    1)..wäre dieser Code richtig?
    1)Wie muss ich den Timer2 Initalisiern damit er alle 10ms interruptet?
    bei einem
    PIC16F870
    mit
    4Mhz

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    15.10.2004
    Ort
    Pfalz
    Beiträge
    83
    hallo duderino,

    wenn Du den Timer2 als 16Bit-Timer initialisierst, dann kann er bis maximal 2^16 (etwas über 65000) zählen. Wenn Du Deinen Proz mit 12 Mhz taktest sind das 65000µs, die der Timer maximal überbrücken kann, ehe er überläuft und Dir ein Flag setzt.
    Da Du 10ms, also 10000µs brauchst, mußt Du entweder 10000 als Start und Reloadwert setzen und das Teil abwärts zählen lassen. Andere variante: Aufwärtszählen - hier mußt Du (2^16)-10000 als Start- und Reloadwert setzen.
    Die initialisierung des Timers geschieht in den Registern T2COM und T2MOD. In T2H und T2L werden die Sartwerte gesetzt. Die Reloadwerte werden in zwei weitere Registern gesetzt (habe den Namen vergessen - steht aber in jedem 8051-er-Handbuch)
    Ich hoffe das hilft Dir ein wenig weiter.

    Ciao

    Patrick
    HAVE A NICE DAY

Berechtigungen

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