Hallo Dirk,
ich glaube, so langsam kann ich meine ersten kleinen Erfolge verbuchen. Ich lasse die Interrupt-Rountine jetzt nur noch alle 10ms laufen und wenn ich mir die Empfangenen Bits anzeigen lasse kommt sowas dabei raus:
Code:
111100011111000111110001111100011111000111110001111100011111
011111000111110001111100011111000111110001111100011111000111
000111110001111100011111000111100001111000111110001111100011
100011000000000000000000000000000000000000000000000000000000
111000111110001111100011111000111110001111100011111000111110
111100001111000111110001111100011111000111110001111100011111
011111000111110001111100011111000111110001111100011111000111
000111110001111100011111000111110001111100011111000111110001
100011111000111110001111100011111000111110001111100011111000
111000111110001111100011111000111110001111100011111000111110
111110001111100011111000111110001111000111110001111100011111
.
.
.
.
Ja, das sieht ja schonmal ziemlich regelmäßig aus, so solls doch auch bestimmt sein, richtig? (Das wäre dann nämlich der Erfolg den ich erwähnt habe
)
Aber jetzt stellt sich mir eine neue Frage:
Wenn eine Pause ca. 700-900ms andauert, dann müsste ich ja in meinen Bitfolgen 70-90 gleiche Zeichen hintereinander finden. Dagegen findet man bei genauem hinschauen zwischen den regelmäßigen Bitfolgen auch eine Reihe in der nur Null-Bits stehen, ist das dann vielleicht das Signal für das Endebit?
Wenn ich meinen Pin an den anderen Anschluss des Conrad-DCF-Empfängers anschließe bekomme ich ca. 8 Zeilen Nullen und dann eine regelmäßige Zeile wie oben. Sind diese 8 Zeilen dann vielleicht die Pausen?
Meinen Timer hab ich übrigens wie folgt umgeschrieben:
Code:
void timer_init(void)
{
t=0;
t2=0;
TCCR2=(1<<CS22) | (1<<CS20) | (1<<WGM21);
OCR2=156; //10,0ms (?)
TIMSK|=(1<<OCIE2);
sei();
}
Gruß
cesupa
P.S.: Hab mir jetzt mal die Variable t ausgeben lassen. Komischerweise reicht die Zahl ziemlich oft bis ca 200, aber Zahlen zwischen 70 und 90 werden auch erreicht.
Lesezeichen