Bastel-Wastel
09.05.2012, 13:58
Hallo zusammen,
ich habe mal wieder ein Problem: ich möchte mit einem PIC12, den ich bei 1 Mhz laufen lasse ein Taktsignal ausmessen. Irgendwie schwankt mein Ergebnis aber gravierend, daher an euch die Frage, ob ihr wisst, woran das liegen kann. Mein Signal hat eine Frequenz von ca. 264 Hz (Tsignal = 3,78 ms). Ich messe, indem ich einen 16 bit Timer mit Ttimer = 7,99 µs pro Inkrement starte, mit
for(i=0; i<16; i++)
{
while(RA5);
while(!RA5);
}
16 Durchläufe abwarte, und dann meinen Timer auslese (inklusive eventuellen Overflows).
Das ANSELA Register habe ich auf 0x00 gesetzt und um einen definierten Startzeitpunkt zu haben, habe ich vorweg while(RA5); while(!RA5); geschrieben.
Nach den 16 Durchläufen sollte ich nun doch eigentlich einen Wert von ca. 7570 aus dem Timer lesen (16 * Tsignal / Ttimer), tatsächlich
bekomme ich aber nur etwa die Hälfte und das Ergebnis schwankt obendrein wie gesagt gravierend. Was meint ihr dazu?
ich habe mal wieder ein Problem: ich möchte mit einem PIC12, den ich bei 1 Mhz laufen lasse ein Taktsignal ausmessen. Irgendwie schwankt mein Ergebnis aber gravierend, daher an euch die Frage, ob ihr wisst, woran das liegen kann. Mein Signal hat eine Frequenz von ca. 264 Hz (Tsignal = 3,78 ms). Ich messe, indem ich einen 16 bit Timer mit Ttimer = 7,99 µs pro Inkrement starte, mit
for(i=0; i<16; i++)
{
while(RA5);
while(!RA5);
}
16 Durchläufe abwarte, und dann meinen Timer auslese (inklusive eventuellen Overflows).
Das ANSELA Register habe ich auf 0x00 gesetzt und um einen definierten Startzeitpunkt zu haben, habe ich vorweg while(RA5); while(!RA5); geschrieben.
Nach den 16 Durchläufen sollte ich nun doch eigentlich einen Wert von ca. 7570 aus dem Timer lesen (16 * Tsignal / Ttimer), tatsächlich
bekomme ich aber nur etwa die Hälfte und das Ergebnis schwankt obendrein wie gesagt gravierend. Was meint ihr dazu?