Ich hab den Code auch nochmal ein wenig geändert, außerdem hab ich noch vergessen zu sagen, dass ich den invertierten DCF-Ausgang benutze.
Mit dem Code erhalte ich nach ca. 3-4 Minuten recht anschauliche Werte. Zumindest, wurden einige Teile, wie zum Beispiel die Minuten korrekt interpretiert.Code:#include <avr/io.h> #define BAUD 9600UL #include "../classes/rs232/UART/UART.h" #include "../classes/time/time.h" int main(void) { uint8_t i=0; uint8_t c=0; char dcf[60]; char buf[256]; buf[0]='\0'; dcf[0]='\0'; DDRC&=~(1<<PC0); //EINGANG PC0 DDRD|=(1<<PD5) | (1<<PD6); PORTC|=(1<<PC0); //PULLUP aktivieren uart_init(); i=0; c=0; while(1) { if(i<=59) { while((PINC & (1<<PC0))) { PORTD|=(1<<PD5); PORTD&=~(1<<PD6); _delay_ms(10); c++; } PORTD&=~(1<<PD5); PORTD|=(1<<PD6); if(c>=8 && c<=23) { if(c<=10) //100msec == 0 { dcf[i]='0'; } if(c>10) //200msec == 1 { dcf[i]='1'; } c=0; i++; } } else { dcf[i]='\0'; send(dcf); send("\r\n"); i=0; } } return 0; }
Gruß
cesupa







Zitieren

Lesezeichen