$regfile = "m8def.dat" ' specify the used micro $crystal = 4000000 ' used crystal frequency $baud = 9600 ' use baud rate $hwstack = 32 ' default use 32 for the hardware stack $swstack = 10 ' default use 10 for the SW stack $framesize = 40 ' default use 40 for the frame space '*************************Entscheidung Normal/Einrichtbetrieb Dim A As Byte 'Eingabe über Tastatur Dim N As Integer 'Schleifenzähler für die Wartezeit _Einstellen oder überspringen N = 0 Do A = Inkey() 'get ascii value from serial port If A = "S" Then 'wenn Eingabe = S Print "ASCII code " ; A ; " from serial" : Goto Einstellen 'Wenn ein S, dann _Einstellen End If N = N + 1 'Schleifenzähler aufaddieren Loop Until N = 1000 : Goto Normalbetrieb 'Wenn Warte-Zeit ohne S abgelaufen, dann _Normalbetrieb Einstellen: Print "War ein S" '*************************Poti einlesen unterer Wert Config Adc = Single , Prescaler = Auto Start Adc Dim Poti_niedrig As Word , Channel As Byte $eeprom 'In EEPROM schreiben Channel = 1 'Kanal1 für Poti auswählen Do Poti_niedrig = Getadc(channel) 'Einlesen, warten bis "N" gedrückt A = Inkey() Loop Until A = "N" Writeeeprom Poti_niedrig , 1 'niedrigen Wert abspeichern Readeeprom Poti_niedrig , 1 'Probehalber auslesen Print "Poti_Niedrig" ; Poti_niedrig 'und anzeigen '***********************Poti einlesen oberer Wert Dim Poti_hoch As Word $eeprom Channel = 1 'Kanal1 für Poti auswählen Do Poti_hoch = Getadc(channel) 'Einlesen, warten bis "N" gedrückt A = Inkey() Loop Until A = "N" Writeeeprom Poti_hoch , 2 'niedrigen Wert abspeichern Readeeprom Poti_hoch , 2 'Probehalber auslesen Print "Poti_hoch" ; Poti_hoch 'und anzeigen '*********************Strom messen und korrigieren Niedriger Wert Dim B As Integer 'Comparewert Dim Strom_niedrig As Integer Dim Strom_hoch As Integer $eeprom Config Pinb.1 = Output Config Timer1 = Pwm , Pwm = 8 , Compare B Pwm = Clear Up , Prescale = 1 'Timer 1 einrichten: 8bit Modus Do A = Inkey() Waitms 100 If A = "U" Then 'Aufwärts wird gedrückt Waitms 10 If A = "U" Then If B < 255 Then B = B + 1 'LED um 1 Stufe heller dimmen End If End If End If If A = "D" Then 'Abwärts wird gedrückt Waitms 10 If A = "D" Then If B > 0 Then B = B - 1 'LED um 1 Stufe dunkler dimmen End If End If End If Compare1a = B Strom_niedrig = B Loop Until A = "N" Writeeeprom Strom_niedrig , 3 'niedrigen Wert abspeichern Readeeprom Strom_niedrig , 3 'Probehalber auslesen Print "Strom_niedrig" ; Strom_niedrig 'und anzeigen '*********************Strom messen und korrigieren Hoher Wert Do A = Inkey() Waitms 100 If A = "U" Then 'Aufwärts wird gedrückt Waitms 10 If A = "U" Then If B < 255 Then B = B + 1 'LED um 1 Stufe heller dimmen End If End If End If If A = "D" Then 'Abwärts wird gedrückt Waitms 10 If A = "D" Then If B > 0 Then B = B - 1 'LED um 1 Stufe dunkler dimmen End If End If End If Compare1a = B Strom_hoch = B Loop Until A = "N" Writeeeprom Strom_hoch , 4 'niedrigen Wert abspeichern Readeeprom Strom_hoch , 4 'Probehalber auslesen Print "Strom_hoch" ; Strom_hoch 'und anzeigen '************************Test Linearität '*************************NORMALBETRIEB Normalbetrieb: 'Bis Wartezeit um ohne S Eigegeben zu haben Print "Zeit war um" : End 'end program '**************Bei Strommessen und korrigieren muß noch der Wert des Potistandes mit rein!!!!!