Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: Millisekunden Timer mit SFR Kategorie: CC2-Unit & Appl.Board / CC2-Station (von rĂĽdi und kone - 2.05.2003 21:39)
Als Antwort auf Re: Millisekunden Timer mit SFR von Cris - 2.05.2003 14:15

He Chris,

echt mal vielen Dank für Deine Hilfe, haben unser Problem gelöst!

MfG
rĂĽdi und kone

> Hallo Ihr Hacker von der Alb,
>
> zunächst einmal sorry für die misslungene Anrede. Ich war der Meinung, irgendwo etwas von Klaus gelesen zu haben.
> Hoffentlich seid Ihr nicht sauer.

> Jetzt zu Eurem Problem. Ihr woll einen Millisekunden-Timer bauen. Warum tut es nicht der Timer vom Betriebssystem
> system.timer()?
>
> Mit den Timern 7 oder 8 lässt sich auch so etwas machen. Das hat aber ein paar Nachteile. Diese beiden Timer gehören zur CAPCOM6-
> Einheit des Prozessors. Diese steuert z.B. die PLM-Ausgänger der CC2 an. D.h. wenn Ihr die Timer anderweitig verwendet, könnt Ihr
> die PLM-Ausgänge nicht nutzen. Die CAPCOM6 Einheit  kann mit den Vorteilern in T78CON, Reload-Werten und Werten
> in den CAPCOM-Registern komplexe Impulsfolgen an den 3 PLM-Ausgängen generieren. Die Steuerung der Timerfrequenz ist nur sehr grob
> mit 8 Vorteilerwerten möglich. Diese sind im schon erwähnten Manual 2 des Prozessors auf Seite 16-6 erklärt. Für den Timer sind die Bits
> 0...3 fĂĽr diesen Vorteilerwert verantwortlich.
>
> Der Werte 0B0010 macht eine Auflösung von 1,6µs und eine Periodendauer von 105 ms. Wenn Ihr also 1000 ms wartet, ist der Zähler
> mit dieser Einstellung fast 10 mal übergelaufen. Ein Reeload von 0x4000 sorgt dafür, dass der Zähler nicht bei 0 sondern
> 0x4000 startet.
>
> Probiert einmal diese Einstellung

> >  sfr.set_T7REL(0x0000);                 //setze Reload-Wert Timer 7
> >  sfr.set_T7IC(0B0000000000000000);      //Interrupts Timer 7 auschalten
> >  sfr.set_T78CON(0B0000000001001111);    //Timer 7 starten
> > 
> >  int t3, p3;
> > 
> >  while(1)
> >  {
> >   t3 = 0;
> >   t3 = sfr.get_T7();
> >  sleep(100);
> >   p3 = 0;
> >   t3 = sfr.get_T7();
> >  }
>
> Die mit sfr.get_T7() eingelesenen Zählerstände müsst Ihr dann noch in Millisekunden umrechnen.
>
> Beste GrĂĽĂ?e
>
> Cris


    Antwort schreiben


Antworten: