Hallo,
es geht nochmal um meine Skizeitnahme.
Hab ja schon vor ein paar Wochen mal angefragt wegen der
Funkübertragung; die XBee-Module sind mittlerweile da und schauen recht
vielversprechend aus.
Jetzt geht es darum, die beiden Uhren am Start und Ziel miteinander zu
synchronisieren.
Dazu habe ich 2 ATmega88 genommen, auf denen jeweils dieser Code
1 | #include <avr/io.h>
|
2 |
|
3 | int main(void)
|
4 | {
|
5 | DDRC = 0xFF;
|
6 |
|
7 | long i;
|
8 |
|
9 | while(1)
|
10 | {
|
11 | PORTC = 0xFF;
|
12 | for (i=0;i<50;i++) asm("NOP");
|
13 | PORTC = 0x00;
|
14 | for (i=0;i<950UL;i++) asm("NOP");
|
15 | }
|
16 | }
|
läuft.
Die µC laufen mit Ext. Crystal Oscillator, 11.0592 MHz.
Am Port C (PC5) hängt jeweils ein Oszi-Tastkopf, Trigger ist auf CH1.
Ich wollte dann eigentlich nach einiger Zeit am Oszi die
Gangungenauigkeit ablesen, aber irgendwie läuft das ganz schnell
auseinander, siehe dieses Video:
http://www.myvideo.de/watch/6765009/Quartz_Ganggenauigkeit_Versuch
Ich hätte irgendwie erwartet dass die beiden Impulse sehr langsam
auseinander "driften"...
Hab ich irgendwo einen Denkfehler oder ist so ein Quartz wirklich so
ungenau?
Wenn ja was hätte ich für Möglichkeiten 2 Uhren zu einem Zeitpunkt x zu
synchronisieren, so dass nach x+2h der Gangunterschied <10ms bleibt?
Danke,
Martin