delays100ms mit MPLAB

Gast #841948
Lesenswert?

Hallo zusammen, ich habe ein Problem mit delays von Pic18F4550 mit 
compiler C und Frequenz 20MHz ich will solche schaltung realisiert

|
|
|        EIN
|       |----|--------------------|----|AUS
|       |    |                    |    |
|       |    |                    |    |
|       |    |                    |    |
|-------|----|--------------------|----|-------
         delays 100ms              delays 100ms


ich habe viele Programme Probiert aber nicht geschafft, denn das delay 
Time war immer unterschiedlich.
ich brauche Hilfe
Gruß
#842010
Lesenswert?

Hallo

ich weiss nicht , wie dein Programm aussieht, aber versuchs mal so:

//delay, CLK/4,:8:256 = 1,66*1ms bei 4,9152 MHz, ohne Interrupt
//delay, CLK/4,:8:256 = 2,22*1ms bei 3,6864 MHz, ohne Interrupt
//
void delay( unsigned char ms )
{
  TMR3L = 0;
  TMR3H =  0-ms;//(0xff ^ ms);  //delay = ms*1,66 oder 2,22 ms

  PIR2bits.TMR3IF = 0;
  T3CONbits.TMR3ON = 1;  //Timer start
  while( PIR2bits.TMR3IF == 0 );
  T3CONbits.TMR3ON = 0;  //Timer wieder aus.
}


Das ist ein funktionierender Code, allerding nicht mit 20MHz sonder mit 
4,9152MHz. Sollte aber anpassbar sein.

Und das steht bei mir für die Initialisierung:
...
TMR3L = 0;      //delay-Funktion
  TMR3H = 0;
  T3CON = 0x30;    //Vorbereiten aber nicht starten, Vorteiler 8
  T3CONbits.TMR3ON = 0;

...

Gerhard

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren