hi,
ich versuche gerade ein dcf77 empfänger mithilfe eines atmega8
auszulesen...
das problem fängt leider schon bei der hardware an...
das empfänger modul ist aus einem billigen wecker und ich bin mir nur zu
99% sicher das es richtig angeschlossen ist :/
gestern hatte ich glaube ich schonmal einen richtigen
empfang...jedenfalls hat er mir im sekunden takt einsen und nullen auf
einem lcd display ausgespuckt..
und beim min umsprung konnte man die verzögerung bedingt durch das
fehlende bit merken...
dummerweise lässt sich der erfolg nicht mehr reproduzieren :/
sei es weil ich den code etwas verändert habe oder weil das verfluchte
ding auf jede art von störung mit müll reagiert
das ist echt ne qual....
hier der code
ja, die delays werden irgendwann durch interrupts und counter
ersetzt...
die lcd_*** funktionen funktionieren
1 | #define down !(PINB & (1<<PB1))
|
2 | #define up (PINB & (1<<PB1))
|
3 |
|
4 | main()
|
5 | {
|
6 |
|
7 | char out;
|
8 | lcd_pwrup();
|
9 |
|
10 | DDRB = 0x00;
|
11 |
|
12 |
|
13 | for(int i=0;1;i++)
|
14 | {
|
15 | while(down);
|
16 |
|
17 | _delay_ms(150); //prüft ob 100ms oder 200ms signal
|
18 |
|
19 | if(up) {out='1';}
|
20 | if(down) {out='0';}
|
21 |
|
22 | lcd_senddata(out);
|
23 |
|
24 | if(i==16) {lcd_choporder(1); i=0;}
|
25 |
|
26 | _delay_ms(80); //überbrückt die immernoch 1 zeit damit die while(down) nicht direkt übersprungen wird
|
27 |
|
28 | }
|
29 |
|
30 | }
|
das problem äußert sich folgendermaßen...auf meinem schreibtisch fliegen
die nullen nur so übers display...
> erklärungsversuch: monitor und andere pc strahlung
auf der fensterbank tut sich garnix
> keine ahnung?
berühre ich die antenne ist das signal dauerhaft null und dadurch
bedingt bleibt das programm in der while(down) hängen...
>deutet für mich schonmal daraufhin das es nicht ganz falsch angeschlossen >ist
die platine hat 4 anschlüsse
G - definitiv ground..auf der pcb sichtbar
P - an aus schalter (nicht sicher)
T - ausgang (nicht sicher)
V - ziemlich sicher die versorgungsspannung
gruß