Software:DCF

aus JControlWiki, der freien Wissensdatenbank

Auch wenn es hier eigentlich nur um die reine Software Seite geht, hier ein paar kurze Hinweise zur Hardware.

Ich benutze DCF Antenne von Conrad (Art-Nr. 641138 - 10,21 EUR). Angeschlossen ist die ganze Sache über den Gipo Port, in unserm Fall an den 6. Strom könnt ihr euch auch von der JControl ziehen.

Nun die Software. Diese stellt das Funksignal als Diagramm auf dem Display dar und zeigt die Aktuelle Zeit an.


CODE:


import jcontrol.io.GPIO; 
import jcontrol.io.Display; 
import jcontrol.system.Time; 
import jcontrol.system.RTC; 
import jcontrol.io.Backlight; 

public class dcfgipo { 

    Display lcd = new Display(); 
    int okv = 0; 

    public void readbits() { 
        Backlight.setBrightness(100); 
        lcd.clearDisplay(); 

        int bit = 0; 
        int bito = 0; 
        int lastbit = 0; 
        int oldtime = 0; 
        int zahler = 0; 
        int wert = 0; 
        String lasterror; 

        int min = 0; 
        int stunde = 0; 
        int ktag = 0; 
        int monat = 0; 
        int jahr = 0; 

        for(;;) { 
            Time t = new Time(); 

            if(GPIO.getState(6) == true) { 
                zahler = 0; 
            } else {
                zahler = zahler + 1; 
            } 
        
            if(zahler > wert) { 
                wert = zahler; 
                lcd.drawString("0or1:        ",38,0); 
                lcd.drawString(("0or1: ".concat(String.valueOf(wert))),38,0); 
            } 

            if(zahler >= 50) { 
                RTC.setTime(new Time(0, 0, 0, 0,0, 0, 0)); 
                wert = 0; 
                lcd.drawString("0or1: 0      ",38,0); 
                lcd.drawString("                                                         ",0,10);    
                min = 0; 
                stunde = 0; 
                ktag = 0; 
                monat = 0; 
                jahr = 0; 
            } 

            if(GPIO.getState(6) == true) { 
                if(bit == 0) { 
                    lcd.drawString("|",lastbit,25);
                } else { 
                    lcd.drawString(".",lastbit,20);
                } 
                bit = 1; 
                bito = bito + 1; 
            } else { 
                if(bit == 1) { 
                    lcd.drawString("|",lastbit,25);
                } else { 
                    lcd.drawString(".",lastbit,30);
                } 
                bit = 0; 
            } 

            if(oldtime != t.second) { 

                lcd.drawString(String.valueOf(t.second),lastbit,40);    
                oldtime = t.second; 
                lcd.drawString("".concat(String.valueOf(ktag)),50,10); 
                lcd.drawString(".".concat(String.valueOf(monat)),65,10); 
                lcd.drawString(".".concat(String.valueOf(jahr)),80,10); 
                lcd.drawString(":".concat(String.valueOf(t.second)),30,10); 
                lcd.drawString(":".concat(String.valueOf(min)),15,10); 
                lcd.drawString("".concat(String.valueOf(stunde)),0,10); 

                if(bito > 4) { 
                    //Minute 
                    if(t.second-1 == 21) { 
                        min = min + 1; 
                    } 
                    if(t.second-1 == 22) { 
                        min = min + 2; 
                    } 
                    if(t.second-1 == 23) { 
                        min = min + 4; 
                    } 
                    if(t.second-1 == 24) { 
                        min = min + 8; 
                    } 
                    if(t.second-1 == 25) { 
                        min = min + 10; 
                    } 
                    if(t.second-1 == 26) { 
                        min = min + 20; 
                    } 
                    if(t.second-1 == 27) { 
                        min = min + 40; 
                    } 
               
                    //Stunde 
                    if(t.second-1 == 29) { 
                        stunde = stunde + 1; 
                    } 
                    if(t.second-1 == 30) { 
                        stunde = stunde + 2; 
                    } 
                    if(t.second-1 == 31) { 
                        stunde = stunde + 4; 
                    } 
                    if(t.second-1 == 32) { 
                        stunde = stunde + 8; 
                    } 
                    if(t.second-1 == 33) { 
                        stunde = stunde + 10; 
                    } 
                    if(t.second-1 == 34) { 
                        stunde = stunde + 20; 
                    } 
               
                    //Tag 
                    if(t.second-1 == 36) { 
                        ktag = ktag + 1; 
                    } 
                    if(t.second-1 == 37) { 
                        ktag = ktag + 2; 
                    } 
                    if(t.second-1 == 38) { 
                        ktag = ktag + 4; 
                    } 
                    if(t.second-1 == 39) { 
                        ktag = ktag + 8; 
                    } 
                    if(t.second-1 == 40) { 
                        ktag = ktag + 10; 
                    } 
                    if(t.second-1 == 41) { 
                        ktag = ktag + 20; 
                    } 
               
                    //Monat 
                    if(t.second-1 == 45) { 
                        monat = monat + 1; 
                    } 
                    if(t.second-1 == 46) { 
                        monat = monat + 2; 
                    } 
                    if(t.second-1 == 47) { 
                        monat = monat + 4; 
                    } 
                    if(t.second-1 == 48) { 
                        monat = monat + 8; 
                    } 
                    if(t.second-1 == 49) { 
                        monat = monat + 10; 
                    } 
               
                    //Jahre 
                    if(t.second-1 == 50) { 
                        jahr = jahr + 1; 
                    } 
                    if(t.second-1 == 51) { 
                        jahr = jahr + 2; 
                    } 
                    if(t.second-1 == 52) { 
                        jahr = jahr + 4; 
                    } 
                    if(t.second-1 == 53) { 
                        jahr = jahr + 8; 
                    } 
                    if(t.second-1 == 54) { 
                        jahr = jahr + 10; 
                    } 
                    if(t.second-1 == 55) { 
                        jahr = jahr + 20; 
                    } 
                    if(t.second-1 == 56) { 
                        jahr = jahr + 40; 
                    } 
                    if(t.second-1 == 57) { 
                        jahr = jahr + 80; 
                    } 

                } 
            
                bito = 0; 
            } 
            lcd.drawString("  ",lastbit+1,20); 
            lcd.drawString("  ",lastbit+1,25); 
            lcd.drawString("  ",lastbit+1,30); 
            lcd.drawString("  ",lastbit+12,40); 
               
            if(lastbit == 120) { 
                lastbit = 0; 
                lcd.drawString("      ",lastbit,40); 
            } else { 
                lastbit = lastbit + 1;
            } 
        } 
    } 
  
    public dcfgipo() { 
        readbits(); 
    } 

    public static void main(String[] args) { 
        new dcfgipo(); 
    } 
}
 
'Persönliche Werkzeuge