Autor Thema: Zeitmessung  (Gelesen 844 mal)

Offline Sascha_Focus

  • Jr. Member
  • **
  • Beiträge: 77
    • Profil anzeigen
Zeitmessung
« am: April 18, 2017, 13:20:12 Nachmittag »
Hallo,

erstmal zur Theorie:

Genutzter PIC: PIC18F47K40
                        HFINTOSC 64MHz, PIC Takt 16MHz

Um die Aufrufzeit dt für eine Regelung zu erfassen, habe ich den Timer 0 mit dem Vorteiler 1:16 eingestellt. Überlauf des Timers alle 10 Millisekunden. Im Timer Interrupt
zähle ich eine Variable hoch. Demnach wäre die aktuelle Zeit: (Variable*10000)+ (65536-(TMR0H,TMR0L))


//Timer 0 Aufruf
void TMR0_ISR(void)
{
    // TMR0 interrupt flag löschen
    PIR0bits.TMR0IF = 0;
    // Timer Preload laden
    TMR0H = timer0ReloadVal16bit >> 8;
    TMR0L = (uint8_t) timer0ReloadVal16bit;

    milli10count++; //32Bit Variable
}

/Ausgabe der aktuellen Zeit
uint32_t Get_Time()
{
    uint32_t time=0xffff;
    time=time-TMR0_Read16bitTimer();
    time=time+(milli10count * 10000);
    return time;
}


//while Schleife der main, zur Efassung und Ausgabe der Zeit
    while (1)
    {
currentTime = Get_Time(); //Aktuelle Zeit holen
cycleTime = currentTime - previousTime; //Zykluszeit
previousTime = currentTime;
dt = (float)cycleTime/1000000;

           
    sprintf( text, "%f",dt);
    LCDGoto(0,2);
    LcdDec(cycleTime);
    LCDGoto(0,3);
    LCDPutStr(text); 
    __delay_ms(250);
    }

Nun scheint es bei der Ausgabe so, das die delay Funktion keinerlei Auswirkungen zu haben scheint. Ebenso so verstehe ich die ausgebene Zeit nicht.
Zeitlich liege ich bei 0.006s bis 0.026s. Ich hätte zumindest erwartet, das die Zeit gleich bleibt. Es sind keine weitere Interrupts vorhanden.

Hat jemand eine Idee oder kann mir meinen Denkfehler aufzeigen??

Gruß Sascha


 


* Recent Topics

topic PIC12F617 PWM Modul
[Programmiersprache Assembler]
cermid
Oktober 20, 2017, 20:42:45 Nachmittag
topic PIC32 LCC Demo
[Entwicklungswerkzeuge]
BL1
Oktober 18, 2017, 12:46:35 Nachmittag
topic Gartenorchideen
[CCS Compiler]
Magiwriva
Oktober 07, 2017, 16:01:43 Nachmittag