$regfile = "m32def.dat" $crystal = 1000000 $hwstack = 32 $swstack = 32 $framesize = 40 $prog &HFF , &HA1 , &H99 , &H00 ' Fusebits, BODEN=2,7V, sonst Standard Const Testmodus = 0 Dim Sprache As Byte ' Sprachauswahl Dim Speram As Eram Byte ' Sprachauswahl im EERAM Dim Sptext(19) As String * 16 ' Menuetext in der jeweiligen Sprache Dim Sutext(14) As String * 16 ' Untermenuetext in der jeweiligen Sprache Dim Sekunde As Word ' Zähler für Belichtungezeit Dim Updownwert As Long ' Wert bei Einstellungen Dim Updownmin As Long ' min. Wert bei Einstellungen Dim Updownmax As Long ' max. Wert bei Einstellungen Dim Helligkeit1 As Byte ' Helligkeit Display normal Dim Helligkeiteram1 As Eram Byte ' Helligkeit Display normal im EERAM Dim Helligkeit2 As Byte ' Helligkeit Display aufgeblendet Dim Helligkeiteram2 As Eram Byte ' Helligkeit Display aufgeblendet im EERAM Dim Kontrastwert As Byte ' Kontrastwert Display Dim Kontrasteram As Eram Byte ' Kontrastwert Display im EERAM Dim Svabit As Byte ' Spiegelvorauslösung aktiv Dim Svaeram As Eram Byte ' Spiegelvorauslösung aktiv im EERAM Dim Powerzeit As Word ' abgelaufene Zeit bis Powerdown Dim Powertime As Byte ' Zeit bis Powerdown Dim Powereram As Eram Byte ' Zeit bis Powerdown im EERAM Dim Geobreite As Byte ' geografische Breite zur Berechnung Kingrate Dim Breiteeram As Eram Byte ' geografische Breite im EERAM Dim Geolaenge As Word ' geografische Länge zur Berechnung Sternzeit Dim Laengeeram As Eram Word ' geografische Länge im EERAM Dim Zeitzone As Byte ' Zeitzone zur Berechnung Sternzeit Dim Zoneeram As Eram Byte ' Zeitzone im EERAM Dim Korrektur As Integer ' Korrekturwert für Kingrate Dim Korreram As Eram Integer ' Korrekturwert im EEPAM Dim Sequenzwert(29) As Word ' Zeiten für programmgesteuerte Auslösungen Dim Sequenztext1(3) As String * 10 ' Text für programmgesteuerte Aufnahmen Dim Sequenztext2(2) As String * 16 ' Text für programmgesteuerte Aufnahmen Dim Speicherwert(29) As Eram Word ' Zeiten für programmmgesteuerte Auslösungen im EERAM Dim Zeitpunkt(238) As Long ' Zeitpunkt bei zeitgesteuerten Auslösungen Dim Zeiteram(238) As Eram Long ' Zeitpunkt bei zeitgesteuerten Auslösungen im EERAM Dim Dimmzaehler As Byte ' Zähler für Aufblendfunktion Dim Poutenable As Bit ' Bit für Powertimeout Dim Powerout As Bit ' Bit für nächstmöglichen Powertimeout Dim Uhrausblenden As Bit ' Bit für Uhrzeiteinstellung Dim Beschleunigung As Byte ' Zähler für Beschleunigung der Einstellungen Dim Images As Word ' Zähler für Bilder Automatik Dim Bilder As Word ' gesamte Anzahl Bilder Dim Sternzeit As Single ' Sternzeit für Kingrate-Berechnung Dim Stundenwinkel As Single ' Stundenwinkel für Kingrate-Berechnung Dim Rektarszension As Integer ' Rektarszension für Kingrate-Berechnung Dim Deklination As Integer ' Deklination für Kingrate-Berechnung Dim Kingwert As Single ' akruelle Kingrate-Wert Dim T(15) As Single ' Trigonometrische Funktion zur Kingrate-Berechnung Dim R(2) As Single ' Berechnung des Stundenwinkels Dim F As Single ' allgemeine Variable für Zwischenwerte Dim H As Single ' allgemeine Variable für Zwischenwerte Dim I As Integer ' Variablenindex für programmgesteuerte Auslösung Dim J As Byte ' allgemeiner Zähler Dim K As Byte ' allgemeiner Zähler Dim M As Byte ' Zähler für Hauptmenue Dim N As Long ' Sekunden des aktuellen ganzen Tages Uhr für zeitgesteuerte Auslösung Dim P As Byte ' Programmindex für programmgesteuerte Auslösung Dim S As String * 6 ' allgemeine Textvariable Dim V As Word ' allgemeine Variable für Zwischenwerte Dim W As Long ' allgemeine Variable für Zwischenwerte Dim X As Word ' allgemeine Variable für Zwischenwerte nur in Sectic-Routine ! Dim Z As Byte ' Zähler für Untermenue Batterie Alias Portb.2 ' Spannungsteiler aktivieren für Batterieprüfung Dimmer Alias Portd.4 ' PWM für Beleuchtung Display Shoot Alias Portb.0 ' Auslösen, Signal an Kamera Fokus Alias Portb.1 ' Fokussignal an Kamera Lcdon Alias Porta.3 ' Display einschalten Tup Alias Pind.0 ' Taste UP Tmenuer Alias Pind.1 ' Taste MENUE rechts Tenter Alias Pind.2 ' Taste ENTER Tmenuel Alias Pind.3 ' Taste MENUE links Tdown Alias Pind.6 ' Taste DOWN #if Testmodus Svabit = 1 Powertime = 10 Geobreite = 138 Geolaenge = 190 Zeitzone = 14 Korrektur = 0 Sprache = 0 #else Svabit = Svaeram Powertime = Powereram Geobreite = Breiteeram Geolaenge = Laengeeram Zeitzone = Zoneeram Korrektur = Korreram Sprache = Speram #endif Config Porta = &B11111000 ' Port für Display + A/D-Wandler Config Portb = &B00001111 ' Fokus, Auslösung und Spannung für Spannungsteiler Config Portc = &B00000011 ' Port für Diplay Config Portd = &B10110000 ' Port für Tasten und Beleuchtung Portd = &B01001111 ' Pull-Up Widerstände aktivieren Config Debounce = 100 Config Clock = Soft , Gosub = Sectic Config Date = Dmy , Separator = . Config Adc = Single , Prescaler = Auto , Reference = Internal Config Lcdpin = Pin , Db4 = Porta.7 , Db5 = Porta.6 , Db6 = Porta.5 , Db7 = Porta.4 , E = Portc.1 , Rs = Portc.0 Config Lcd = 16 * 2 , Chipset = Dogm162v3 Config Timer1 = Pwm , Pwm = 10 , Prescale = 1 , Compare B Pwm = Clear Up Enable Interrupts On Int0 Int_wecken Config Int0 = Low Level Enable Int0 Date$ = "02.08.09" Time$ = "00:00:00" Gosub Aufwachen For J = 1 To 29 ' Programmzeiten Aus EEPROM Lesen #if Testmodus Sequenzwert(j) = 5 #else Sequenzwert(j) = Speicherwert(j) #endif Next J For J = 1 To 238 ' Zeitpunkte aus EEPROM lesen #if Testmodus Zeitpunkt(j) = -1 #else Zeitpunkt(j) = Zeiteram(j) #endif Next J Bereit: ' Spannung an Batterie messen Gosub Spracheinstellung Gosub Aufblenden Batterie = 1 Start Adc ' Spannungsteiler 10k 22k Select Case Getadc(0) Case Is < 800 ' Spannung kleiner 2,90V Locate 1 , 1 : Lcd Sptext(1) ' Batterie leer, sofort wieder ausschalten Locate 2 , 1 : Lcd Sptext(2) #if Testmodus Waitms 500 #else Wait 4 #endif Goto Ausschalten Case Is < 900 ' Spannung kleiner 3,27V, Batterie schwach Locate 1 , 1 : Lcd Sptext(3) Locate 2 , 1 : Lcd Sptext(2) Case Else Locate 1 , 1 : Lcd Sptext(4) Locate 2 , 1 : Lcd Sptext(5) End Select Stop Adc Batterie = 0 #if Testmodus Waitms 500 #else Wait 2 #endif Startmenue: ' Startmenue M = 0 Z = 0 Sekunde = 0 Fokus = 0 Shoot = 0 Gosub Spracheinstellung Locate 1 , 1 : Lcd Sptext(6) Locate 2 , 1 : Lcd Sptext(7) Gosub Aufblenden Gosub Warte0 Do Debounce Tmenuer , 0 , Hauptmenuer , Sub Debounce Tmenuel , 0 , Hauptmenuel , Sub Select Case M Case 1 Debounce Tenter , 0 , Einstellungen Case 2 Debounce Tenter , 0 , Programme Case 3 Debounce Tenter , 0 , Zeitwerte Case 4 Debounce Tenter , 0 , Automatik Case 5 Debounce Tenter , 0 , Zeitgesteuert Case 6 Debounce Tenter , 0 , Manuell Case 7 Debounce Tenter , 0 , Kingrate Case 8 Debounce Tenter , 0 , Funktionen End Select If Powerout = 1 Then Goto Schlafmodus Loop Einstellungen: ' Menue Einstellungen Gosub Spracheinstellung Gosub Subsetupr Gosub Warte0 Do Debounce Tmenuer , 0 , Subsetupr , Sub Debounce Tmenuel , 0 , Subsetupl , Sub Debounce Tdown , 0 , Subdown , Sub Debounce Tup , 0 , Subup , Sub Debounce Tenter , 0 , Startmenue If Powerout = 1 Then Goto Schlafmodus #if Testmodus Waitms 100 #endif Loop Programme: ' Menue Programme Gosub Spracheinstellung Gosub Subsequenzr Gosub Warte0 Do Debounce Tmenuer , 0 , Subsequenzr , Sub Debounce Tmenuel , 0 , Subsequenzl , Sub Debounce Tdown , 0 , Subdown , Sub Debounce Tup , 0 , Subup , Sub Debounce Tenter , 0 , Startmenue If Powerout = 1 Then Goto Schlafmodus Loop Zeitwerte: ' Menue Werte Zeitpunkte Gosub Spracheinstellung Gosub Subzeitr Gosub Warte0 Do Debounce Tmenuer , 0 , Subzeitr , Sub Debounce Tmenuel , 0 , Subzeitl , Sub Debounce Tdown , 0 , Subdown , Sub Debounce Tup , 0 , Subup , Sub Debounce Tenter , 0 , Startmenue If Powerout = 1 Then Goto Schlafmodus Loop Manuell: ' Menue manuelle Auslösung Gosub Spracheinstellung Gosub Submanr Gosub Warte0 Do Debounce Tmenuer , 0 , Submanr , Sub Debounce Tmenuel , 0 , Submanl , Sub If Z = 3 Then Debounce Tenter , 0 , Startmenue Else Debounce Tenter , 0 , Durchtasten , Sub End If If Powerout = 1 Then Goto Schlafmodus Loop Kingrate: ' Menue Werte Kingrate Gosub Spracheinstellung H = Geobreite - 90 ' Berechnung nicht dynamischer Werte H = 0.0174532 * H T(1) = Sin(h) T(2) = Cos(h) T(3) = Tan(h) Cls Gosub Kinganzeige Gosub Aufblenden Gosub Warte0 Sekunde = 0 Do Debounce Tmenuer , 0 , Kingr , Sub Debounce Tmenuel , 0 , Kingl , Sub Debounce Tdown , 0 , Kingd , Sub Debounce Tup , 0 , Kingu , Sub Debounce Tenter , 0 , Startmenue If Sekunde > 59 Then Sekunde = 0 Gosub Kinganzeige End If If Powerout = 1 Then Goto Schlafmodus #if Testmodus Waitms 100 #endif Loop Funktionen: ' Menue Funktionen Gosub Spracheinstellung Gosub Subfunktr Gosub Warte0 Do Debounce Tmenuer , 0 , Subfunktr , Sub Debounce Tmenuel , 0 , Subfunktl , Sub Select Case Z Case 1 Debounce Tenter , 0 , Ausschalten Case 2 Debounce Tenter , 0 , Startimeanzeige Case 3 Debounce Tenter , 0 , Progloeschen Case 4 Debounce Tenter , 0 , Zeitloeschen Case 5 Debounce Tenter , 0 , Safewerte Case 6 Debounce Tenter , 0 , Information Case 7 Debounce Tenter , 0 , Startmenue End Select If Powerout = 1 Then Goto Schlafmodus Loop Startimeanzeige: ' Sternzeitanzeige Locate 2 , 1 : Lcd " " Gosub Aufblenden Do Gosub Startimeberechnen F = Sternzeit * 360 W = Int(f) S = Time(w) Locate 2 , 5 : Lcd S Debounce Tenter , 0 , Startmenue If Powerout = 1 Then Goto Schlafmodus #if Testmodus Waitms 100 #endif Loop Automatik: ' automatische Auslösung Gosub Spracheinstellung Gosub Loslassen Poutenable = 0 Bilder = 0 For J = 5 To 29 Step 3 Bilder = Bilder + Sequenzwert(j) Next J Sekunde = Sequenzwert(1) ' Wartezeit While Sekunde > 0 Locate 1 , 1 : Lcd Sequenztext2(1) Locate 2 , 3 : Lcd Sekunde ; Sutext(1) Debounce Tenter , 0 , Startmenue Wend For P = 1 To 9 I = P * 3 ' Array Var Basis für Programm Images = Sequenzwert(i + 2) Locate 2 , 1 : Lcd " " While Images > 0 If Sequenzwert(i) > 0 Then If Svabit = 1 Then If Sequenzwert(2) > 0 Then Gosub Ausloesen2 Sekunde = Sequenzwert(2) ' Spiegelvorauslösung Locate 1 , 1 : Lcd Sequenztext2(2) Gosub Countdown If P = 10 Then Exit For End If End If Gosub Ausloesen1 Sekunde = Sequenzwert(i) ' Belichtung Locate 1 , 1 : Lcd Sutext(2) ; P ; Sutext(3) Gosub Countdown If P = 10 Then Exit For Sekunde = Sequenzwert(i + 1) ' Pause If Sekunde > 0 Then Locate 1 , 1 : Lcd Sutext(2) ; P ; Sutext(4) Gosub Countdown If P = 10 Then Exit For End If End If Decr Images Decr Bilder Wend Next P Locate 1 , 1 : Lcd Sptext(13) Locate 2 , 1 : Lcd Sutext(5) Gosub Aufblenden #if Testmodus Waitms 500 #else Wait 4 #endif Goto Bereit Zeitgesteuert: ' zeitgesteuerte Auslösung Gosub Spracheinstellung Gosub Loslassen Poutenable = 0 Z = 1 N = Sysday() N = N * 86400 While Zeitpunkt(z) > -1 And Z < 239 W = N + Zeitpunkt(z) If Svabit = 1 Then ' Spiegelvorauslösung aktiv ? If Sequenzwert(2) > 0 Then W = W - Sequenzwert(2) End If Locate 2 , 1 : Lcd Sutext(1) ; Time(zeitpunkt(z)) ' warte bis Zeitpunkt erreicht Do Locate 1 , 1 : Lcd Sutext(2) ; Time$ Debounce Tenter , 0 , Bereit Loop Until W = Syssec() If Svabit = 1 Then ' Spiegelvorauslösung If Sequenzwert(2) > 0 Then Gosub Ausloesen2 W = W + Sequenzwert(2) Do Locate 1 , 1 : Lcd Sutext(3) ; Time$ Debounce Tenter , 0 , Bereit Loop Until W = Syssec() End If End If Locate 1 , 1 : Lcd Sutext(4) ; Time$ Gosub Ausloesen2 ' Kamera auslösen Incr Z #if Testmodus Waitms 100 #endif Wend Locate 1 , 1 : Lcd Sptext(14) Locate 2 , 1 : Lcd Sutext(5) Gosub Aufblenden #if Testmodus Waitms 500 #else Wait 4 #endif Goto Bereit Ausschalten: ' Display aus Gosub Loslassen Display Off Lcdon = 0 Config Lcdon = Input Schlafmodus: ' Stromsparmodus If Lcdon = 1 Then Cls Locate 1 , 1 : Lcd Sptext(8) Locate 2 , 5 : Lcd Time$ End If Config Dimmer = Input ' Beleuchtung ausschalten Enable Int0 Powerout = 1 Do Pulseout Portd , 7 , 500 ' LED Standby aufblitzen Powersave Loop Until Powerout = 0 Gosub Aufwachen W = Secofday() + 1 ' irgendwo geht beim Einschalten eine Sekunde verloren Time$ = Time(w) Goto Bereit Safewerte: ' speichere alle Werte ins EEPROM Locate 2 , 1 : Lcd " 0%" ; Sutext(10) Gosub Aufblenden For J = 1 To 29 Speicherwert(j) = Sequenzwert(j) Next J Locate 2 , 1 : Lcd " 10%" ; Sutext(10) K = 0 For J = 1 To 238 Zeiteram(j) = Zeitpunkt(j) P = J Mod 24 If P = 0 Then K = K + 10 Locate 2 , 2 : Lcd K ; "%" ; Sutext(10) End If Next J Gosub Aufblenden Helligkeiteram1 = Helligkeit1 Helligkeiteram2 = Helligkeit2 Kontrasteram = Kontrastwert Svaeram = Svabit Powereram = Powertime Breiteeram = Geobreite Laengeeram = Geolaenge Zoneeram = Zeitzone Korreram = Korrektur Speram = Sprache Locate 2 , 1 : Lcd "100%" ; Sutext(10) #if Testmodus Waitms 100 #else Waitms 500 #endif Goto Startmenue Progloeschen: ' alle Werte für programmgesteuerte Auslösungen löschen Locate 2 , 1 : Lcd Sutext(8) Gosub Aufblenden For J = 1 To 29 Sequenzwert(j) = 0 Next J #if Testmodus Waitms 500 #else Wait 2 #endif Goto Startmenue Zeitloeschen: ' alle Werte für zeitgesteuerte Auslösungen löschen Locate 2 , 1 : Lcd Sutext(9) Gosub Aufblenden For J = 1 To 238 Zeitpunkt(j) = -1 Next J #if Testmodus Waitms 500 #else Wait 2 #endif Goto Startmenue Information: Locate 1 , 1 : Lcd " Version 2.1.4 " Locate 2 , 1 : Lcd "02.08.2009 #7FCA" Gosub Warte0 Gosub Warte1 Goto Startmenue Kingr: ' Menue Kingrate rechte Taste While Tmenuer = 0 Incr Rektarszension If Rektarszension > 239 Then Rektarszension = 0 Gosub Kinganzeige Gosub Aufblenden Waitms 50 Wend Return Kingl: ' Menue Kingrate linke Taste While Tmenuel = 0 Decr Rektarszension If Rektarszension < 0 Then Rektarszension = 239 Gosub Kinganzeige Gosub Aufblenden Waitms 50 Wend Return Kingu: ' Menue Kingrate Taste Up While Tup = 0 And Deklination < 90 Incr Deklination Gosub Kinganzeige Gosub Aufblenden Waitms 50 Wend Return Kingd: ' Menue Kingrate Taste Down While Tdown = 0 And Deklination > -90 Decr Deklination Gosub Kinganzeige Gosub Aufblenden Waitms 50 Wend Return Kinganzeige: ' Kingrate berechnen und anzeigen H = 0.0174532 * Deklination T(5) = Sin(h) T(6) = Cos(h) T(7) = Tan(h) T(8) = T(2) * T(6) T(10) = T(1) * T(5) Gosub Startimeberechnen Stundenwinkel = Sternzeit - Rektarszension Select Case Stundenwinkel Case Is < -120 Stundenwinkel = Stundenwinkel + 240 Case Is > 120 Stundenwinkel = Stundenwinkel - 240 End Select H = 0.02617993 * Stundenwinkel T(4) = Cos(h) T(9) = T(8) * T(4) T(11) = T(10) * T(4) T(12) = T(10) + T(9) T(13) = T(8) + T(11) T(13) = T(13) / T(12) T(13) = T(13) / T(12) T(14) = T(2) * T(13) T(14) = T(14) / T(6) T(15) = T(7) / T(3) T(15) = T(15) * T(4) H = T(14) - T(15) H = 40 * H Kingwert = H + Korrektur H = Abs(kingwert) I = Int(kingwert) S = Str(i) If T(12) > 0.1 And H < 2500 Then ' Prüfung ob über Horizont und ob King-Wert nich zu groß Locate 1 , 9 : Lcd Format(s , " +0.00") Else Locate 1 , 9 : Lcd Sutext(1) End If I = Int(stundenwinkel) S = Str(i) Locate 1 , 1 : Lcd Format(s , " +0.0") ; "h" S = Str(rektarszension) Locate 2 , 3 : Lcd Format(s , " 0.0") ; "h" S = Str(deklination) Locate 2 , 11 : Lcd Format(s , " +") ; "ß" Return Durchtasten: ' manuelles Auslösen Locate 1 , 1 : Lcd Sutext(4) Locate 2 , 1 : Lcd Sutext(5) Gosub Aufblenden Gosub Warte0 Gosub Warte1 Fokus = 1 If Svabit = 1 Then ' Spiegelvorauslösung aktiv ? Locate 1 , 1 : Lcd Sutext(6) Gosub Aufblenden Gosub Warte0 Gosub Warte1 Gosub Ausloesen2 End If Select Case Z Case 1 ' mit Feststelltaste Locate 1 , 1 : Lcd Sutext(7) Gosub Aufblenden Gosub Warte0 Gosub Warte1 Gosub Loslassen Locate 1 , 1 : Lcd Sutext(8) Locate 2 , 1 : Lcd Sutext(9) Gosub Aufblenden Poutenable = 0 Gosub Ausloesen1 Sekunde = 0 While Tenter = 1 Locate 1 , 11 : Lcd Sekunde ; "s" Waitms 100 Wend Locate 1 , 1 : Lcd Sutext(1) Gosub Aufblenden Case 2 ' ohne Feststelltaste Locate 1 , 1 : Lcd Sptext(15) Locate 2 , 1 : Lcd Sutext(10) Gosub Aufblenden Gosub Warte0 Gosub Warte1 Cls Locate 1 , 1 : Lcd Sutext(11) Locate 2 , 1 : Lcd Sutext(8) Gosub Aufblenden Gosub Ausloesen1 Sekunde = 0 While Tenter = 0 Locate 2 , 11 : Lcd Sekunde ; "s" Gosub Aufblenden Waitms 100 Wend Locate 1 , 1 : Lcd Sutext(2) End Select Shoot = 0 Fokus = 0 Locate 2 , 1 : Lcd Sptext(9) Gosub Aufblenden Gosub Warte0 Return Hauptmenuer: ' Hauptmenue rechte Taste Incr M If M > 8 Or M < 1 Then M = 1 Gosub Menueanzeige Return Hauptmenuel: ' Hauptmenue linke Taste Decr M If M < 1 Or M > 8 Then M = 8 Gosub Menueanzeige Return Menueanzeige: ' Hauptmenue Anzeige Select Case M Case 1 Locate 1 , 1 : Lcd Sptext(10) Case 2 Locate 1 , 1 : Lcd Sptext(11) Case 3 Locate 1 , 1 : Lcd Sptext(12) Case 4 Locate 1 , 1 : Lcd Sptext(13) Case 5 Locate 1 , 1 : Lcd Sptext(14) Case 6 Locate 1 , 1 : Lcd Sptext(15) Case 7 Locate 1 , 1 : Lcd Sptext(16) Case 8 Locate 1 , 1 : Lcd Sptext(17) End Select Locate 2 , 1 : Lcd Sptext(9) Gosub Aufblenden Return Subsetupr: ' Menue Einstellungen rechte Taste Incr Z If Z > 12 Or Z < 1 Then Z = 1 Gosub Setupanzeige Return Subsetupl: ' Menue Einstellungen linke Taste Decr Z If Z < 1 Or Z > 12 Then Z = 12 Gosub Setupanzeige Return Setupanzeige: ' Menue Einstellungen Anzeige Cls Select Case Z Case 1 Locate 1 , 1 : Lcd Sutext(1) Locate 2 , 8 : Lcd Kontrastwert Gosub Aufblenden Case 2 Dimmzaehler = 255 Locate 1 , 1 : Lcd Sutext(2) Locate 2 , 8 : Lcd Helligkeit1 V = 2 ^ Helligkeit1 Compare1b = V - 1 Case 3 Dimmzaehler = 255 Locate 1 , 1 : Lcd Sutext(3) Locate 2 , 8 : Lcd Helligkeit2 V = 2 ^ Helligkeit2 Compare1b = V - 1 Case 4 Locate 1 , 1 : Lcd Sutext(4) Locate 2 , 5 : Lcd Time$ Gosub Aufblenden Case 5 Locate 1 , 1 : Lcd Sutext(5) Locate 2 , 5 : Lcd Date$ Gosub Aufblenden Case 6 Locate 1 , 1 : Lcd Sutext(6) Select Case Svabit Case 0 Locate 2 , 1 : Lcd Sutext(7) Case 1 Locate 2 , 1 : Lcd Sutext(8) End Select Gosub Aufblenden Case 7 S = Str(powertime) Locate 1 , 1 : Lcd Sutext(9) Locate 2 , 4 : Lcd Format(s , " 0") ; Sutext(10) Gosub Aufblenden Case 8 I = Geobreite - 90 S = Str(i) Locate 1 , 1 : Lcd Sutext(11) Locate 2 , 7 : Lcd Format(s , " +") ; "ß" Gosub Aufblenden Case 9 I = Geolaenge - 180 S = Str(i) Locate 1 , 1 : Lcd Sutext(12) Locate 2 , 7 : Lcd Format(s , " +") ; "ß" Gosub Aufblenden Case 10 I = Zeitzone - 12 S = Str(i) Locate 1 , 1 : Lcd Sutext(13) Locate 2 , 7 : Lcd Format(s , " +") ; "h" Gosub Aufblenden Case 11 S = Str(korrektur) Locate 1 , 1 : Lcd Sutext(14) Locate 2 , 5 : Lcd Format(s , "+0.00" ) ; "ô/d" Gosub Aufblenden Case 12 Select Case Sprache Case 0 Locate 1 , 1 : Lcd " Sprache " Locate 2 , 1 : Lcd " deutsch " Case 1 Locate 1 , 1 : Lcd " language " Locate 2 , 1 : Lcd " english " Case 2 Locate 1 , 1 : Lcd " langue " Locate 2 , 1 : Lcd " le fran‡ais " Case 3 Locate 1 , 1 : Lcd " taal " Locate 2 , 1 : Lcd " nederlands " Case 4 Locate 1 , 1 : Lcd " lingua " Locate 2 , 1 : Lcd " italiano " End Select Gosub Aufblenden End Select Return Subsequenzr: ' Menue Programmme rechte Taste Incr Z If Z > 29 Or Z < 1 Then Z = 1 Gosub Sequenzanzeige Return Subsequenzl: ' Menue Programmme linke Taste Decr Z If Z < 1 Or Z > 29 Then Z = 29 Gosub Sequenzanzeige Return Sequenzanzeige: ' Menue Programme Anzeige Cls If Z < 3 Then Locate 1 , 1 : Lcd Sequenztext2(z) Else P = Z / 3 Locate 1 , 1 : Lcd Sutext(1) ; P P = Z Mod 3 Incr P Locate 1 , 7 : Lcd Sequenztext1(p) End If P = Z Mod 3 If P = 2 And Z > 2 Then Locate 2 , 8 : Lcd Sequenzwert(z) Else Locate 2 , 3 : Lcd Sequenzwert(z) ; Sutext(2) End If Gosub Aufblenden Return Submanr: ' Menue manuelles Auslösen rechte Taste Incr Z If Z > 3 Or Z < 1 Then Z = 1 Gosub Mananzeige Return Submanl: ' Menue manuelles Auslösen linke Taste Decr Z If Z < 1 Or Z > 3 Then Z = 3 Gosub Mananzeige Return Mananzeige: ' Menue manuelles Auslösen Anzeige Select Case Z Case 1 Locate 1 , 1 : Lcd Sutext(1) Case 2 Locate 1 , 1 : Lcd Sutext(2) Case 3 Locate 1 , 1 : Lcd Sutext(3) End Select Locate 2 , 1 : Lcd Sptext(9) Gosub Aufblenden Return Subzeitr: ' Menue zeitgesteuerte Auslösung rechte Taste Incr Z If Z > 238 Or Z < 1 Then Z = 1 Gosub Zeitanzeige Return Subzeitl: ' Menue zeitgesteuerte Auslösung linke Taste Decr Z If Z < 1 Or Z > 238 Then Z = 238 Gosub Zeitanzeige Return Zeitanzeige: ' Menue zeitgesteuerte Auslösung Anzeige Cls Locate 1 , 1 : Lcd Sutext(1) ; Z Select Case Zeitpunkt(z) Case Is < 0 Locate 2 , 1 : Lcd Sutext(2) Case Is < 86400 Locate 2 , 5 : Lcd Time(zeitpunkt(z)) Case Else Locate 2 , 3 : Lcd Time(zeitpunkt(z)) ; " +" ; Dayofyear(zeitpunkt(z)) End Select Gosub Aufblenden Return Subfunktr: ' Menue Funktionen rechte Taste Incr Z If Z > 7 Or Z < 1 Then Z = 1 Gosub Funktanzeige Return Subfunktl: ' Menue Funtkionen linke Taste Decr Z If Z < 1 Or Z > 7 Then Z = 7 Gosub Funktanzeige Return Funktanzeige: ' Menue Funktionen Anzeige Select Case Z Case 1 Locate 1 , 1 : Lcd Sutext(1) Case 2 Locate 1 , 1 : Lcd Sutext(2) Case 3 Locate 1 , 1 : Lcd Sutext(3) Case 4 Locate 1 , 1 : Lcd Sutext(4) Case 5 Locate 1 , 1 : Lcd Sutext(5) Case 6 Locate 1 , 1 : Lcd Sutext(6) Case 7 Locate 1 , 1 : Lcd Sutext(7) End Select Locate 2 , 1 : Lcd Sptext(9) Gosub Aufblenden Return Startimeberechnen: ' Sternzeit berechnen W = Secofday() R(1) = W / 3600 R(1) = R(1) - Zeitzone R(1) = R(1) + 12 R(1) = R(1) * 1.00273790926 W = Sysday() R(2) = W * 0.0657098244 R(1) = R(1) + R(2) R(1) = R(1) + 6.664520 R(2) = R(1) / 24 ' Modulo funktioniert bei Fließkomma nicht, also von Hand machen W = Int(r(2)) R(1) = R(2) - W R(1) = R(1) * 240 R(2) = Geolaenge - 180 R(2) = R(2) / 1.5 Sternzeit = R(1) + R(2) Select Case Sternzeit Case Is < 0 Sternzeit = Sternzeit + 240 Case Is >= 240 Sternzeit = Sternzeit - 240 End Select Return Subup: ' Taste UP gedrückt Beschleunigung = 0 Uhrausblenden = 1 Select Case M ' aktuelle Werte lesen und Maximum-Werte ermitteln Case 1 Select Case Z Case 1 Updownwert = Kontrastwert Updownmax = 15 Case 2 Updownwert = Helligkeit1 Updownmax = Helligkeit2 Case 3 Updownwert = Helligkeit2 Updownmax = 10 Case 4 Updownwert = Secofday() J = 0 Uhrausblenden = 1 Updownmax = 86400 Case 5 Updownwert = Sysday() Updownmax = 36524 Case 6 Updownwert = Svabit Updownmax = 1 Case 7 Updownwert = Powertime Updownmax = 99 Case 8 Updownwert = Geobreite - 90 Updownmax = 90 Case 9 Updownwert = Geolaenge - 180 Updownmax = 180 Case 10 Updownwert = Zeitzone - 12 Updownmax = 12 Case 11 Updownwert = Korrektur Updownmax = 999 Case 12 Updownwert = Sprache Updownmax = 4 End Select Case 2 Updownwert = Sequenzwert(z) If Z = 2 Then Updownmax = 29 Else Updownmax = 9999 End If Case 3 Updownwert = Zeitpunkt(z) If Z = 1 Then Updownmin = Secofday() Else Updownmin = Zeitpunkt(z - 1) + 9 End If If Updownwert < Updownmin Then Updownwert = Updownmin If Z = 99 Or Zeitpunkt(z + 1) = -1 Then Updownmax = 31535999 Else Updownmax = Zeitpunkt(z + 1) - 10 End If End Select While Tup = 0 And Updownwert < Updownmax Gosub Beschleunigen Updownwert = Updownwert + W If Updownwert > Updownmax Then Updownwert = Updownmax ' nicht höher als Maximalwert gehen If M = 1 Then If Z = 4 Then If Updownwert = Updownmax Then Updownwert = 0 ' Uhr durchrollen End If End If Gosub Updown Wend Uhrausblenden = 0 Return Subdown: ' Taste DOWN gedrückt Beschleunigung = 0 Uhrausblenden = 1 Select Case M Case 1 ' aktuelle Werte lesen und Minimum-Werte ermitteln Select Case Z Case 1 Updownwert = Kontrastwert Updownmin = 0 Case 2 Updownwert = Helligkeit1 Updownmin = 0 Case 3 Updownwert = Helligkeit2 Updownmin = Helligkeit1 Case 4 Updownwert = Secofday() J = 0 Uhrausblenden = 1 Updownmin = -1 Case 5 Updownwert = Sysday() Updownmin = 0 Case 6 Updownwert = Svabit Updownmin = 0 Case 7 Updownwert = Powertime Updownmin = 1 Case 8 Updownwert = Geobreite - 90 Updownmin = -90 Case 9 Updownwert = Geolaenge - 180 Updownmin = -179 Case 10 Updownwert = Zeitzone - 12 Updownmin = -12 Case 11 Updownwert = Korrektur Updownmin = -999 Case 12 Updownwert = Sprache Updownmin = 0 End Select Case 2 Updownwert = Sequenzwert(z) Updownmin = 0 Case 3 Updownwert = Zeitpunkt(z) If Z = 1 Or Zeitpunkt(z - 1) = -1 Then Updownmin = Secofday() Else Updownmin = Zeitpunkt(z - 1) + 9 If Updownwert < Updownmin Then Updownwert = Updownmin End If End Select While Tdown = 0 And Updownwert > Updownmin Gosub Beschleunigen Updownwert = Updownwert - W If M = 3 Then ' nicht kleiner als Minimumwert gehen If Updownwert <= Updownmin Then Updownwert = -1 Else If Updownwert < Updownmin Then Updownwert = Updownmin End If If M = 1 Then If Z = 4 Then If Updownwert = Updownmin Then Updownwert = 86399 ' Uhr durchrollen End If End If Gosub Updown Wend Uhrausblenden = 0 Return Updown: ' gemeinsamer Teil von Subup und Supdown Locate 2 , 1 : Lcd " " Select Case M Case 1 Select Case Z ' Anzeige der Werte im Display Case 1 Kontrastwert = Updownwert Gosub Contrastset Locate 2 , 8 : Lcd Updownwert Gosub Aufblenden Case 2 Dimmzaehler = 255 Helligkeit1 = Updownwert V = 2 ^ Helligkeit1 Compare1b = V - 1 Locate 2 , 8 : Lcd Updownwert Case 3 Dimmzaehler = 255 Helligkeit2 = Updownwert V = 2 ^ Helligkeit2 Compare1b = V - 1 Locate 2 , 8 : Lcd Updownwert Case 4 Updownwert = Updownwert + J J = 0 Time$ = Time(updownwert) Locate 2 , 5 : Lcd Time$ Gosub Aufblenden Case 5 W = Updownwert * 86400 Date$ = Date(w) Locate 2 , 5 : Lcd Date$ Gosub Aufblenden Case 6 Svabit = Updownwert Select Case Updownwert Case 0 Locate 2 , 1 : Lcd Sutext(7) Case 1 Locate 2 , 1 : Lcd Sutext(8) End Select Gosub Aufblenden Case 7 Powertime = Updownwert S = Str(updownwert) Locate 2 , 4 : Lcd Format(s , " 0") ; Sutext(10) Gosub Aufblenden Case 8 Geobreite = Updownwert + 90 S = Str(updownwert) Locate 2 , 7 : Lcd Format(s , " +") ; "ß" Gosub Aufblenden Case 9 Geolaenge = Updownwert + 180 S = Str(updownwert) Locate 2 , 7 : Lcd Format(s , " +") ; "ß" Gosub Aufblenden Case 10 Zeitzone = Updownwert + 12 S = Str(updownwert) Locate 2 , 7 : Lcd Format(s , " +") ; "h" Gosub Aufblenden Case 11 Korrektur = Updownwert S = Str(updownwert) Locate 2 , 5 : Lcd Format(s , "+0.00" ) ; "ô/d" Gosub Aufblenden Case 12 Sprache = Updownwert Select Case Updownwert Case 0 Locate 1 , 1 : Lcd " Sprache " Locate 2 , 1 : Lcd " deutsch " Case 1 Locate 1 , 1 : Lcd " language " Locate 2 , 1 : Lcd " english " Case 2 Locate 1 , 1 : Lcd " langue " Locate 2 , 1 : Lcd " le fran‡ais " Case 3 Locate 1 , 1 : Lcd " taal " Locate 2 , 1 : Lcd " nederlands " Case 4 Locate 1 , 1 : Lcd " lingua " Locate 2 , 1 : Lcd " italiano " End Select Gosub Aufblenden End Select Case 2 Sequenzwert(z) = Updownwert P = Z Mod 3 If P = 2 And Z > 2 Then Locate 2 , 8 : Lcd Updownwert Else Locate 2 , 3 : Lcd Updownwert ; Sutext(2) End If Gosub Aufblenden Case 3 Zeitpunkt(z) = Updownwert Select Case Updownwert Case Is < 0 Locate 2 , 1 : Lcd Sutext(2) Case Is < 86400 Locate 2 , 5 : Lcd Time(updownwert) Case Else Locate 2 , 3 : Lcd Time(updownwert) ; " +" ; Dayofyear(updownwert) End Select Gosub Aufblenden End Select Waitms 100 Return Sectic: ' Sekundenzähler If Powerout = 1 Then Locate 2 , 5 : Lcd Time$ Else Select Case Dimmzaehler ' automatisches Abdimmen Case 255 !nop Case Is < 5 Incr Dimmzaehler X = 2 ^ Helligkeit2 Compare1b = X - 1 Case Else X = 2 ^ Helligkeit1 Compare1b = X - 1 End Select If Poutenable = 1 Then ' automatischer Schlafmodus X = Powerzeit / 60 If X >= Powertime Then Powerout = 1 Else Incr Powerzeit End If End If If Beschleunigung < 50 Then Incr Beschleunigung Select Case M Case 1 If Z = 4 Then ' zur Uhrzeiteinstellung Incr J If Uhrausblenden = 0 Then Locate 2 , 5 : Lcd Time$ End If End If Case 4 If Sekunde > 0 Then Decr Sekunde ' für automatische Auslösung abwärts zählen Case 6 Incr Sekunde ' für manuelle Auslösung aufwärts zählen Case 7 Incr Sekunde ' für Kingrate aufwärts zählen End Select End If Return Warte1: ' Warte, solange ENTER nicht gedrückt While Tenter = 1 If Powerout = 1 Then Goto Schlafmodus Waitms 100 Wend Return Warte0: ' Warte solange ENTER gedrückt While Tenter = 0 Gosub Aufblenden Waitms 100 Wend Return Aufblenden: ' Helligkeit erhöhen bei gedrückter Taste Powerzeit = 0 Poutenable = 1 Dimmzaehler = 0 V = 2 ^ Helligkeit2 Compare1b = V - 1 Return Ausloesen1: ' Kamera auslösen (Bulb) Fokus = 1 Waitms 200 Shoot = 1 Return Ausloesen2: ' Kamera auslösen (Impuls) Fokus = 1 Waitms 200 Pulseout Portb , 0 , 75000 Fokus = 0 Return Countdown: ' Countdown für automatische Auslösung While Sekunde > 0 Locate 2 , 1 : Lcd Sekunde ; "s " Locate 2 , 7 : Lcd Images ; "n " Locate 2 , 12 : Lcd Chr(26) ; Bilder ; " " Debounce Tenter , 0 , Abbruch , Sub #if Testmodus Waitms 100 #endif Wend Shoot = 0 Fokus = 0 Return Abbruch: ' Abbruch programmgesteuerte Auslösung Sekunde = 0 P = 10 Return Loslassen: ' Laß die ENTER-Taste endlich los ! Gosub Aufblenden Waitms 250 While Tenter = 0 Locate 1 , 1 : Lcd Sptext(18) Locate 2 , 1 : Lcd Sptext(19) Gosub Aufblenden Waitms 100 Wend Cls Return Beschleunigen: Select Case Beschleunigung ' Beschleunigung nach jeweils 5 Sekunden Case Is < 5 W = 1 Case Is < 10 W = 5 Case Is < 15 W = 10 Case Is < 20 W = 30 Case Is < 25 W = 60 Case Is < 30 W = 300 Case Is < 35 W = 600 Case Is < 40 W = 3600 Case Is < 45 W = 18000 Case Is < 50 W = 36000 Case Else W = 86400 End Select Return Aufwachen: ' Aus Powerdown aufwachen Disable Int0 If Lcdon = 0 Then ' Display einschalten und neu initialisieren Config Lcdon = Output Lcdon = 1 Initlcd Waitms 100 Cursor Off Noblink Cls Display On End If Config Dimmer = Output ' Beleuchtung Display einschalten #if Testmodus Helligkeit1 = 7 Helligkeit2 = 10 Kontrastwert = 5 #else Helligkeit1 = Helligkeiteram1 Helligkeit2 = Helligkeiteram2 Kontrastwert = Kontrasteram #endif V = 2 ^ Helligkeit2 Compare1b = V - 1 Gosub Contrastset Locate 1 , 1 : Lcd "Universal Timer " Locate 2 , 1 : Lcd "by Pit & TT 2007" Gosub Aufblenden #if Testmodus Waitms 500 #else Wait 2 #endif If Tenter = 0 Then ' beim Einschalten max. Helligkeit bei gedrückter ENTER-Taste Compare1b = 1023 Helligkeit1 = 7 Helligkeit2 = 10 Kontrastwert = 10 Gosub Aufblenden End If Return Spracheinstellung: ' Menuetext in verschiedenen Sprachen Select Case Sprache Case 0 ' deutsch Select Case M Case 0 ' Config Date = Dmy , Separator = . Sptext(1) = " Batterie leer !" Sptext(2) = " Bitte wechseln " Sptext(3) = "Batterie schwach" Sptext(4) = " Batterie OK " Sptext(5) = " starte Timer " Sptext(6) = " Timer bereit " Sptext(7) = "Menue ausw„hlen " Sptext(8) = " Standby Modus " Sptext(9) = "Menue oder Enter" Sptext(10) = " Einstellungen " Sptext(11) = " Programmzeiten " Sptext(12) = " Zeitpunkte " Sptext(13) = "autom. Ausl”sen " Sptext(14) = "zeitg. Ausl”sen " Sptext(15) = " man. Ausl”sen " Sptext(16) = " Kingrate " Sptext(17) = " Funktionen " Sptext(18) = " Bitte Taste " Sptext(19) = " loslassen ! " Sequenztext2(1) = "Warte bis Start " Sequenztext2(2) = "Spiegelvorausl. " Sequenztext1(1) = "Belichtung" Sequenztext1(2) = "Pause " Sequenztext1(3) = "Bilder " Case 1 Sutext(1) = " LCD Kontrast " Sutext(2) = " LCD Helligkeit " Sutext(3) = "max. Helligkeit " Sutext(4) = " Uhr einstellen " Sutext(5) = "Datum einstellen" Sutext(6) = " SVA aktiv ? " Sutext(7) = " nein " Sutext(8) = " ja " Sutext(9) = " Power Timeout " Sutext(10) = " Minuten" Sutext(11) = " geogr. Breite " Sutext(12) = " geogr. L„nge " Sutext(13) = " Zeitzone " Sutext(14) = " Korrekturwert " Case 2 Sutext(1) = "Prog" Sutext(2) = " Sekunden" Case 3 Sutext(1) = " Ausl”sezeit " Sutext(2) = " N/A " Case 4 Sutext(1) = " Sekunden " Sutext(2) = "Prog" Sutext(3) = " Belichtung" Sutext(4) = " Pause " Sutext(5) = "Programm beendet" Case 5 Sutext(1) = " Warte " Sutext(2) = " Jetzt " Sutext(3) = " SVA " Sutext(4) = " Foto " Sutext(5) = "Programm beendet" Case 6 Sutext(1) = " mit Feststell " Sutext(2) = " ohne Feststell " Sutext(3) = " ins Hauptmenue " Sutext(4) = " Fokussieren " Sutext(5) = " Enter " Sutext(6) = "Spiegelvorausl. " Sutext(7) = " Ausl”sen Start " Sutext(8) = " Belichte" Sutext(9) = " Stop mit Enter " Sutext(10) = "Enter und halten" Sutext(11) = " Aufnahme l„uft " Case 7 Sutext(1) = " N/A " Case 8 Sutext(1) = " Ausschalten " Sutext(2) = " Sternzeit " Sutext(3) = "Progr. l”schen ?" Sutext(4) = "Zeitp. l”schen ?" Sutext(5) = "Werte speichern " Sutext(6) = " Information " Sutext(7) = " ins Hauptmenue " Sutext(8) = "Progr. gel”scht " Sutext(9) = "Zeitp. gel”scht " Sutext(10) = " gespeichert " End Select Case 1 ' englisch Select Case M Case 0 ' Config Date = Dmy , Separator = / Sptext(1) = " batterie dead !" Sptext(2) = " please replace " Sptext(3) = " batterie weak " Sptext(4) = " batterie well " Sptext(5) = " initiate timer " Sptext(6) = " timer ready " Sptext(7) = " select menu " Sptext(8) = " standby mode " Sptext(9) = " menue or enter " Sptext(10) = " adjustments " Sptext(11) = " program times " Sptext(12) = " time points " Sptext(13) = " autom. release " Sptext(14) = " time release " Sptext(15) = " man. release " Sptext(16) = " kingrate " Sptext(17) = " functions " Sptext(18) = " please release " Sptext(19) = " button ! " Sequenztext2(1) = "waiting to start" Sequenztext2(2) = " mirror lockup " Sequenztext1(1) = "exposure " Sequenztext1(2) = "pause " Sequenztext1(3) = "images " Case 1 Sutext(1) = " LCD contrast " Sutext(2) = " LCD brightness " Sutext(3) = "max. brightness " Sutext(4) = " set time " Sutext(5) = " set date " Sutext(6) = " MLU active ? " Sutext(7) = " no " Sutext(8) = " yes " Sutext(9) = " power timeout " Sutext(10) = " minutes" Sutext(11) = "geogr. latitude " Sutext(12) = "geogr. longitude" Sutext(13) = " time zone " Sutext(14) = " correction " Case 2 Sutext(1) = "prog" Sutext(2) = " seconds " Case 3 Sutext(1) = "trigger time " Sutext(2) = " N/A " Case 4 Sutext(1) = " seconds " Sutext(2) = "prog" Sutext(3) = " exposure " Sutext(4) = " pause " Sutext(5) = "program finished" Case 5 Sutext(1) = " wait " Sutext(2) = " now " Sutext(3) = " MLU " Sutext(4) = " shot " Sutext(5) = "program finished" Case 6 Sutext(1) = " locked " Sutext(2) = " unlocked " Sutext(3) = " to main menu " Sutext(4) = " focussing " Sutext(5) = " enter " Sutext(6) = " mirror lockup " Sutext(7) = " start release " Sutext(8) = " exposing" Sutext(9) = " enter to stop " Sutext(10) = " enter and hold " Sutext(11) = " running " Case 7 Sutext(1) = " N/A " Case 8 Sutext(1) = " power off " Sutext(2) = " startime " Sutext(3) = "delete program ?" Sutext(4) = " delete times ? " Sutext(5) = "save parameters " Sutext(6) = " information " Sutext(7) = " to main menu " Sutext(8) = "programs deleted" Sutext(9) = " times deleted " Sutext(10) = " saved " End Select Case 2 ' französisch Select Case M Case 0 ' Config Date = Dmy , Separator = / Sptext(1) = " pile … plat " Sptext(2) = " changer svp " Sptext(3) = " pile faible " Sptext(4) = " pile OK " Sptext(5) = " d‚marrer timer " Sptext(6) = " timer prˆt " Sptext(7) = " choisir menu " Sptext(8) = " mode attente " Sptext(9) = " menue ou enter " Sptext(10) = " r‚glages " Sptext(11) = "programme temps " Sptext(12) = " pts temporels " Sptext(13) = "d‚clench. autom." Sptext(14) = "hor d‚clenchem. " Sptext(15) = "d‚clenchem. manu" Sptext(16) = " r‚fraction " Sptext(17) = " fonctions " Sptext(18) = "relacher bouton " Sptext(19) = " S.V.P ! " Sequenztext2(1) = " attente d‚but " Sequenztext2(2) = "verr. du miroir " Sequenztext1(1) = "exposition" Sequenztext1(2) = "pause " Sequenztext1(3) = "images " Case 1 Sutext(1) = " contraste LCD " Sutext(2) = " ‚clairage LCD " Sutext(3) = " ‚clairage max. " Sutext(4) = " r‚gler heure " Sutext(5) = " r‚gler date " Sutext(6) = " VDM aktif ? " Sutext(7) = " non " Sutext(8) = " oui " Sutext(9) = " coupure alim. " Sutext(10) = " minutes" Sutext(11) = " latitude " Sutext(12) = " longitude " Sutext(13) = " fuseau horaire " Sutext(14) = " correction " Case 2 Sutext(1) = "prog" Sutext(2) = " secondes" Case 3 Sutext(1) = " d‚clencer " Sutext(2) = " N/A " Case 4 Sutext(1) = " secondes " Sutext(2) = "prog" Sutext(3) = " exposition" Sutext(4) = " pause " Sutext(5) = "fin du programme" Case 5 Sutext(1) = "attente" Sutext(2) = "maint. " Sutext(3) = " VDM " Sutext(4) = " plan " Sutext(5) = "fin du programme" Case 6 Sutext(1) = " v‚rrouill‚ " Sutext(2) = " dev‚errouill‚ " Sutext(3) = " menu g‚n‚ral " Sutext(4) = " focaliser " Sutext(5) = " enter " Sutext(6) = "verr. du miroir " Sutext(7) = " d‚clenchement " Sutext(8) = " pose" Sutext(9) = "enter pour arrˆt" Sutext(10) = "maintenir enter" Sutext(11) = "photo en cours " Case 7 Sutext(1) = " N/A " Case 8 Sutext(1) = " ‚teindre " Sutext(2) = " temps sid‚ral " Sutext(3) = " effacer prog. ?" Sutext(4) = " effacer dates ?" Sutext(5) = "enreg. valeurs ?" Sutext(6) = " informations " Sutext(7) = " menu g‚n‚ral " Sutext(8) = " progs. effac‚s " Sutext(9) = " dates effac‚s " Sutext(10) = " enregistr‚ " End Select Case 3 ' niederländisch Select Case M Case 0 ' Config Date = Dmy , Separator = - Sptext(1) = " batterij leeg !" Sptext(2) = " AUB wisselen " Sptext(3) = " batterij zwak " Sptext(4) = " batterij OK " Sptext(5) = " start timer " Sptext(6) = " timer klaar " Sptext(7) = " menu kiezen " Sptext(8) = " standby mode " Sptext(9) = " menu of enter " Sptext(10) = " instellingen " Sptext(11) = "programma tijden" Sptext(12) = " tijdstippen " Sptext(13) = "auto ontspanning" Sptext(14) = "tijd ontspanning" Sptext(15) = "man. ontspanning" Sptext(16) = " kingrate " Sptext(17) = " functies " Sptext(18) = " gelieve toets " Sptext(19) = " loslaten ! " Sequenztext2(1) = "wacht tot start " Sequenztext2(2) = "spiegelopklappen" Sequenztext1(1) = "belichting" Sequenztext1(2) = "pauze " Sequenztext1(3) = "beelden " Case 1 Sutext(1) = " LCD contrast " Sutext(2) = " LCD helderheid " Sutext(3) = "max. helderheid " Sutext(4) = " tijd instellen " Sutext(5) = "datum instellen " Sutext(6) = "spiegel opklap ?" Sutext(7) = " nee " Sutext(8) = " ja " Sutext(9) = " power timeout " Sutext(10) = " minuten" Sutext(11) = " geogr. breedte " Sutext(12) = " geogr. lengte " Sutext(13) = " tijdzone " Sutext(14) = "correctie waarde" Case 2 Sutext(1) = "prog" Sutext(2) = " seconden" Case 3 Sutext(1) = " ontspanning " Sutext(2) = " N/A " Case 4 Sutext(1) = " seconden " Sutext(2) = "prog" Sutext(3) = " belichting" Sutext(4) = " pauze " Sutext(5) = "programma einde " Case 5 Sutext(1) = " wacht " Sutext(2) = " nu " Sutext(3) = " SOK " Sutext(4) = " foto " Sutext(5) = "programma einde " Case 6 Sutext(1) = "niet vergrendeld" Sutext(2) = " vergrendeld " Sutext(3) = " naar hoofdmenu " Sutext(4) = " scherpstellen " Sutext(5) = " enter " Sutext(6) = "spiegelopklappen" Sutext(7) = " start ontspan. " Sutext(8) = " belicht." Sutext(9) = " stop met enter " Sutext(10) = "enter vasthouden" Sutext(11) = " opname loopt " Case 7 Sutext(1) = " N/A " Case 8 Sutext(1) = " uitschakelen " Sutext(2) = " sterrentijd " Sutext(3) = "progr. wissen ?" Sutext(4) = "tijdstip wissen?" Sutext(5) = "waarde opslaan ?" Sutext(6) = " informatie " Sutext(7) = " naar hoofdmenu " Sutext(8) = " progr. gewist " Sutext(9) = "tijdstip gewist " Sutext(10) = " opgeslagen " End Select Case 4 ' italienisch Select Case M Case 0 ' Config Date = Dmy , Separator = - Sptext(1) = "batteria scarica" Sptext(2) = " sostivire " Sptext(3) = "batteria debole " Sptext(4) = "batteria carica " Sptext(5) = "inizializ. timer" Sptext(6) = " timer disposto " Sptext(7) = " scegliere menu " Sptext(8) = " standby stato " Sptext(9) = " menu o enter " Sptext(10) = " setup " Sptext(11) = "programma tempo " Sptext(12) = " orari scatto " Sptext(13) = " scatto program." Sptext(14) = "scatto di tempi " Sptext(15) = " scatto manuale " Sptext(16) = " kingrate " Sptext(17) = " funzioni " Sptext(18) = " lasc. pulsante " Sptext(19) = " per favore ! " Sequenztext2(1) = "aspettare inizio" Sequenztext2(2) = "blocco specchio " Sequenztext1(1) = "esposiz. " Sequenztext1(2) = "pausa " Sequenztext1(3) = "immagini " Case 1 Sutext(1) = " contrasto LCD " Sutext(2) = " luminosit… LCD " Sutext(3) = "max. luminosit… " Sutext(4) = " aggiustare ora " Sutext(5) = "aggiustare data " Sutext(6) = " BS attivo ? " Sutext(7) = " no " Sutext(8) = " s " Sutext(9) = " power timeout " Sutext(10) = " minuti " Sutext(11) = "geog. latitudine" Sutext(12) = "geo. longitudine" Sutext(13) = " fuso orario " Sutext(14) = " correzione " Case 2 Sutext(1) = "prog" Sutext(2) = " secondi " Case 3 Sutext(1) = "orari scatto " Sutext(2) = " N/A " Case 4 Sutext(1) = " secondi " Sutext(2) = "prog" Sutext(3) = " esposiz. " Sutext(4) = " pausa " Sutext(5) = "programma finito" Case 5 Sutext(1) = "attesa " Sutext(2) = "adesso " Sutext(3) = " BS " Sutext(4) = " foto " Sutext(5) = "programma finito" Case 6 Sutext(1) = " bloccarsi " Sutext(2) = " non bloccarsi " Sutext(3) = "menu principiale" Sutext(4) = " messa a fuoco " Sutext(5) = " enter " Sutext(6) = "blocco specchio " Sutext(7) = "premi per scatt." Sutext(8) = "esposiz. " Sutext(9) = " premi per stop " Sutext(10) = " premi enter " Sutext(11) = " foto in cosso " Case 7 Sutext(1) = " N/A " Case 8 Sutext(1) = " speguere " Sutext(2) = " tempo stellare " Sutext(3) = "concella param.?" Sutext(4) = "concella orari ?" Sutext(5) = "salva i param. ?" Sutext(6) = " informatione " Sutext(7) = "menu principiale" Sutext(8) = "par. cancellati " Sutext(9) = "oriri canvellati" Sutext(10) = " salvato " End Select End Select Return Int_wecken: Powerout = 0 Return Contrastset: ' Kontrasteinstellung Display V = Kontrastwert + 15 V = V And &B00001111 V = V + &B01110000 W = Kontrastwert + 15 Shift W , Right , 4 W = W + &B01010100 _temp1 = &B00101001 !rCall _Lcd_control _temp1 = V !rCall _Lcd_control _temp1 = W !rCall _Lcd_control _temp1 = &B00101000 !rCall _Lcd_control Return End