Ich habe jetzt noch etwas rumprobiert und dank eurer Hilfe funktioniert der Timer jetzt!!!


In meinem C Programm rufe ich mit "pause_1(2000); //2 Sekunden pause " folgenden Code der oberhalb von void main{} steht

Code:
//timer
int ms;
void pause_1(ms)
{
      while(ms){        // Schleife verlassen wenn ms=0 ist
            OPTION = 3;       // Vorteiler auf 16 einstellen 
            TMR0 = 100;       // 1/10M *4 *16*x    x=156   für 1ms 
                                        //256-156=100
            while (TMR0);     // abwarten einer Milisekunde 
               ms--;          // "ms"-1 
      } 
};//timer
Zum testen habe ich 2 LEDs zum leuchten gebracht und in 30 Sekunden Abständen ( pause_1(30000) ) mit meiner alten Stopuhr gemessen. Ich weiss, dass das verglichen mit dem PIC sehr ungenau ist (wenn man in ms rechnet). Es war nur um grob zu wissen ob das Ergebnis möglich ist oder total falsch. Zwichen PIC und Stopuhr ist ein Unterschied von rund 2/10 Sekunden. Wenn man meine Reaktionszeit und die genauigkeit der Stopuhr berücksichtig, sollte so weit alles in Ordnung sein. Was genaueres zum messen habe ich hier nicht aber ich will ja mit meinem PIC der Atomuhr auch keine Konkurenz machen

Da der Timer jetzt geschafft ist, würde ich gerne auch ein oder zwei Servos (PWM) ansteuen können.

So viel wie ich weiss, müsste ein Servo bei 1,5 ms stehen bleiben und bei 2ms sich drehen.
Reicht es dann wenn ich die Servos an + und - anschliesse und das dritte Kabel an einen Pin den ich dann mit meinem timer(1,5
oder 2ms) immer auf High und Low setze?

Grüsse,
Tornado