So, hab mir jetzt mal schnell eine Routine überlegt mit der man das ganze lösen könnte, nur leider funktioniert die nicht so wie sie sollte, dass heißt ich bekomme nur Nullen ausgegeben. Hier die Routine, die aller 0,01ms bearbeitet wird:
Code:
t++; //Timer++ (0,01ms)
if(!(PINC & (1<<PC0))) //Kein Impuls==Pause
{
if(t<=80000) //Wenn kleiner gleich 800ms
{
dcf='0';
}
if(t>=90000) //Wenn größer gleich 900ms
{
dcf='1';
}
}
else //Impuls==timer zurücksetzen
{
if(dcf=='0' || dcf=='1') //Wenn Zeichen empfangen
r='2'; //Signal geben zum Senden über RS232
t=0; //Timer zurücksetzen
}
Wie sieht eine Pause eigentlich aus bei einem DCF-Empfänger. Hier im Code hab ich eine Pause jetzt so interpretiert, dass eben gar nichts gesendet wird, also 0V am Eingangspin anliegen. Bei einem Impuls jedoch, also größer als 0V wird das empfangene Zeichen an den PC übergeben und der Timer resetted. Mach ich da schon irgendwas falsch oder wieso erhalte ich nur Nullen?
Gruß
cesupa
Lesezeichen