Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > Hallo krassos, > > > > Ich bin wegen OSOPT V3.1 momentan dabei, das OS gründlich zu durchforsten. > > > Ich werde einmal sehen, ob es irgendeine Möglichkeit für eine Anpassung gibt. > > > Also, daß man wirklich zwischen zwei Funktionen umschalten kann. > > > Ich muß dem aber die niedrigste Priorität geben. > > > > Also unterste Priorität wäre schon ok. > > Unterste Prio heißt hier, daß ich versuche dies nur anzugehen, wenn ich noch Zeit übirg habe. > > > > Mach ich auch grad, komm aber nicht so recht voran. > > Ichhabe gestern Abend noch schnell etwas geschrieben und getestet. > Die Routine ist absichtlich sehr einfach und primitiv gestaltet und ist sicher nicht optimal. ;-) > Du brauchst als Hilfsmittel das Hyperterminal mit 57.600 Baud. > Ich Werte das Signal an P1H.7 aus. Daher brauchst Du noch einen Pull-Up-Widerstand (10k). > > Hier die Routine: > <code>const bcd[]=1,2,4,8,10,20,40,80; > const DOW_NAMES[] = "So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"; > > thread main > {long timer;int bit,nr; > byte minute, stunde, tag, dow, monat, jahr; > string s1,s2; > hwcom.setspeed(8); > hwcom.clr(); > loop > { > wait ports.get(15); > timer=system.timer(); > wait not ports.get(15); > timer=system.timer()-timer; > if timer>1950 bit='F'; > else > if timer>1780 {bit='S';nr=-1;} > else > if timer>930 bit='F'; > else > if timer>880 bit='0'; > else > if timer>830 bit='F'; > else > if timer>780 bit='1'; > else bit='F'; > > hwcom.num(nr+1); > hwcom.tab(); > hwcom.num(timer); > hwcom.tab(); > hwcom.put(bit); > if bit=='F' > { > hwcom.tab(); > hwcom.print("Bitfehler"); > } > else > if nr==-1 > { > hwcom.tab(); > hwcom.print(DOW_NAMES[dow%7]); > s1= ' ' + (tag/10+0x30) + (tag%10+0x30) + '.' > + (monat/10+0x30)+ (monat%10+0x30) + '.' > + (jahr/10+0x30) + (jahr%10+0x30); > hwcom.print2(s1); > s2= 9 + (stunde/10+0x30) + (stunde%10+0x30) + ':' > + (minute/10+0x30) + (minute%10+0x30) + ":00"; > hwcom.print2(s2); > } > else > if nr==15 > { > hwcom.tab(); > if bit=='0' hwcom.print("Betriebsantenne"); > else if bit=='1' hwcom.print("Reserveantenne"); > } > else if nr==16 > { > hwcom.tab(); > if bit=='1' hwcom.print("Ankündigung Zeitumstellung"); > } > else if nr==17 > { > hwcom.tab(); > if bit=='0' hwcom.print("Normalzeit"); > else if bit=='1' hwcom.print("Sommerzeit"); > } > else if nr==18 > { > hwcom.tab(); > if bit=='0' hwcom.print("Sommerzeit"); > else if bit=='1' hwcom.print("Normalzeit"); > } > else if nr==19 > { > hwcom.tab(); > if bit=='1' hwcom.print("Ankündigung Schaltsekunde"); > } > else if nr==20 > { > hwcom.tab(); > if bit=='1' hwcom.print("Startbit Zeit OK"); > else hwcom.print("Startbit Zeit Fehler"); > } > else if nr>20 and nr<28 > { > if nr==21 minute=bit and 1; > else if bit=='1' minute=minute+bcd[nr-21]; > } > else if nr>28 and nr<35 > { > if nr==29 stunde=bit and 1; > else if bit=='1' stunde=stunde+bcd[nr-29]; > } > else if nr>35 and nr<42 > { > if nr==36 tag=bit and 1; > else if bit=='1' tag=tag+bcd[nr-36]; > } > else if nr>41 and nr<45 > { > if nr==42 dow=bit and 1; > else if bit=='1' dow=dow+bcd[nr-42]; > } > else if nr>44 and nr<50 > { > if nr==45 monat=bit and 1; > else if bit=='1' monat=monat+bcd[nr-45]; > } > else if nr>49 and nr<58 > { > if nr==50 jahr=bit and 1; > else if bit=='1' jahr=jahr+bcd[nr-50]; > } > > hwcom.ret(); > nr=nr+1; > } > }</code> > > MfG André H.