Nein, daran liegt es leider nicht da diese Befehle schon außerhalb der "while" Hauptprogrammschleife zu finden sind.
Ich werde mal versuchen ob nicht vielleicht doch das Schreiben an sich bereits derart lange dauert und somit Werte sammeln bevor ich sie schreibe, nur fürchte ich fast, dass dadurch die Formatierung in Mitleidenschaft gezogen wird.

Mir ist gerade eingefallen, dass es wohl auch unsinig sein dürfte erst einmal die Daten zu sammeln und sie dann erst zu schreiben, schließlich muß er ja so oder so dann die gleiche Anzahl an Werten schreiben. Versuchen werde ich es wohl dennoch mal, das allerdings nur weil mir gerade nichts besseres einfällt.

Wonach das nun gar nicht gehen wollte, habe ich mal die Ausgabe an das TFT Display herausgeschmissen. Was jedoch noch nicht recht funktionieren wollte. Anschließend wurde ein waitms 10 eingefügt und damit geht es immerhin mit ca 72Hz. wird das waitms weggelassen will die Speicherung nicht mehr recht funktionieren. Nun stehe ich also vor der Problem, dass ich am Ende jedoch nicht nur diese 3 Spannungen abspeichern möchte, sondern insgesamt 9, notfalls könnte man die Zeitausgaben auch weglassen, schöner wäre es natürlich wenn sie da bleiben könnten und auf den Marker kann auch nicht verzichtet werden. Desweiteren brauche ich am Ende eine sample speed von 100 Hz. es sei also nun jeder herzlich eingeladen Ideen zu leifern wie ich das noch erreichen könnte, der code ist sicher hier und da noch recht uneffizient. Allerdings bin ich eigentlich auch der Meinung, dass es auch so wesentlich schneller gehen müßte, ich habe immerhin einen Atmega128 verbaut, so langsam ist dieser ja nicht gerade.

Hier mal mein Code, jedoch noch mit den Ausgaben an das TFT Display:

Code:
$regfile = "m128def.dat"                                    'ATMega 8, anpassen bei anderen
$crystal = 16000000                                         '8 MHz Takt, bei höherem Takt muss evtl. die Ausgabegeschwindigkeit der Daten an das
                                                            'Display gedrosselt werden. Also erst mit 8 MHz testen um zu sehen, dass alles klappt,

$include "Config_MMC.BAS"
$include "CONFIG_AVR-DOS.BAS"


Dim Temp1 As Byte , Temp2 As Byte , Temp3 As Byte , Temp4 As Byte
Dim Drehung As Byte
Dim Fontbreite As Byte , Fonthoehe As Byte , Xpixel As Byte , Ypixel As Byte
Dim R As Integer , X1 As Byte , X2 As Byte , Y1 As Byte , Y2 As Byte , E As Byte , F As Integer , G As Long , Zeichen As String * 1
Dim A As Byte , B As Byte , C As Integer , D As Integer , T1 As Byte , T2 As Byte
Dim Befehl As Byte , Ausgabe As Byte
Dim Pix As Byte , Gapx As Double , Gapy As Double , S As Byte
Dim X As Byte , Y As Byte , H As Integer , M As Integer , Pixel As Integer , Schleife As Integer , Hx As Integer , Hy As Integer , Xinc As Integer , Yinc As Integer
Dim Temp As Byte
Dim Lcd_command As Byte , Lcd_data As Byte , Lcd_string As String * 22 , Fontsize As Byte , Lcd_fcolor As Byte , Lcd_bcolor As Byte
Dim Lx1 As Byte , Ly1 As Byte , Lx2 As Byte , Ly2 As Byte , Color As Byte , Zeichenarray(6) As Byte




'---------------------------------------------------------------------------------------------------------------------------------------------------
'Übernahme der aktuellen Portbelegung in Variablen bzw. Konstanten. Durch Änderung der folgenden Zeilen kann dass Programm auf jede andere Anschlussbelegung geändert werden,
'wenn man das Display in einer anderen Konfiguration (z.B. einem eigenen Board) nutzt.

Lcd_port Alias Portb                                        'Port B wird also hier im Programm mittels "LCD_Port" angesprochen.

Ddrb = &B01100110                                           'Port B: alles display lines: output (1)

Const Rs = 6                                                'also Port b.6
Const Cs = 5                                                'also Port b.5
Const Sdata = 2                                             'also Port b.2
Const Sclk = 1                                              'also Port b.1
'---------------------------------------------------------------------------------------------------------------------------------------------------

Const Kommando = 0                                          'Durch eine "0" wird dem Display mitgeteilt, dass nun ein Kommando folgt
Const Parameter = 1                                         'Durch eine "1" wird dem Display mitgeteilt, dass nun ein Parameter folgt

Const Blau = &B00000011                                     'Vordefinierte Konstanten für die Farbwerte machen das Programmiererleben leichter:
Const Gelb = &B11111100
Const Rot = &B11100000
Const Gruen = &B00011100
Const Schwarz = &B00000000
Const Weiss = &B11111111
Const Hellgruen = &B00111110
Const Dunkelgruen = &B00010100
Const Dunkelrot = &B10100000
Const Dunkelblau = &B00000010
Const Hellblau = &B00011111
Const Orange = &B11111000


'----------------------------------------------------------------------------------------------------------------------------------------------------



'####---------------AD-Wandler--------------#####'

Config Adc = Single , Prescaler = Auto , Reference = Internal       '        Prescaler = Auto

Start Adc

Config Portf.0 = Input                                      'Portf.0-3 =Input
Config Portf.1 = Input
Config Portf.2 = Input




'####--------------MMC-Karte--------------#####'

Config Serialin = Buffered , Size = 20
Config Clock = Soft
Enable Interrupts
Config Date = Dmy , Separator = .
Dim Btemp1 As Byte
Dim Text As String * 10 , Placeholder As String * 5
Placeholder = ";"



'####----------------Eingangs Variablen--------------#####'


Dim Voutxw As Word
Dim Voutx As Single
Dim Voutxstr As String * 16
Dim Voutyw As Word
Dim Vouty As Single
Dim Voutystr As String * 16
Dim Voutzw As Word
Dim Voutz As Single
Dim Voutzstr As String * 16



'####---------------Switches Variablen----------------#####'

Dim Marker As Single
Dim Markerstr As String * 4
Config Pind.4 = Input                                       'Marker
Portd.4 = 1

Config Pind.5 = Input                                       'RUN
Portd.5 = 1

Config Pind.6 = Input                                       'Halt
Portd.6 = 1


'####---------------Time Variablen----------------#####'
Config Timer1 = Timer , Prescale = 256                      'Konfiguriere Timer1
On Timer1 Timer_irq                                         'schalte den Timer1 ein
Const Timervorgabe = 3036
Enable Timer1
Enable Interrupts                                           'Timer1 soll schon von 34285 wegzählen
Timer1 = Timervorgabe








Dim Unittime As Long
Unittime = 0
Dim Second As Single
Dim Secondstr As String * 8
Second = 0
Dim Minute As Single
Dim Minutestr As String * 8
Minute = 0
Dim Hour As Single
Dim Hourstr As String * 8
Hour = 0

Dim Milliseconds As Single
Dim Millisecondsstr As String * 8






Dim Referenzspannung As Word
Referenzspannung = 3.85





'---------------------------------------------------------------------------------------------------------------------------------------------------
'Hauptprogramm
'---------------------------------------------------------------------------------------------------------------------------------------------------
Gosub Lcd_init
Gosub Lcd_cls



'---------------------------SD Anfang---------------------------------------------

If Gbdriveerror <> 0 Then
   Lcd_string = "Drive error" : Lx1 = 5 : Ly1 = 50 : Fontsize = 1 : Lcd_fcolor = Rot : Lcd_bcolor = Weiss
   Gosub Lcd_print
End If

                                         ' scratch byte
Btemp1 = Initfilesystem(1)

If Btemp1 > 0 Then
   Lcd_string = "File System Error" : Lx1 = 4 : Ly1 = 51 : Fontsize = 1 : Lcd_fcolor = Rot : Lcd_bcolor = Weiss
   Gosub Lcd_print
   Lcd_string = Str(btemp1) : Lx1 = 5 : Ly1 = 52 : Fontsize = 1 : Lcd_fcolor = Rot : Lcd_bcolor = Weiss
   Gosub Lcd_print

Else
                                                      'Else des Hauptprogramms
   Lcd_string = "Card setup OK " : Lx1 = 5 : Ly1 = 51 : Fontsize = 1 : Lcd_fcolor = Gruen : Lcd_bcolor = Weiss
   Gosub Lcd_print

Wait 5
Gosub Lcd_cls


'---------------------------Anfang des Auswahlmenüs---------------------------------------------

Anfang:

Lcd_string = "Run" : Lx1 = 2 : Ly1 = 56 : Fontsize = 1 : Lcd_fcolor = Schwarz : Lcd_bcolor = Weiss
Gosub Lcd_print
Lcd_string = "Stop" : Lx1 = 18 : Ly1 = 56 : Fontsize = 1 : Lcd_fcolor = Schwarz : Lcd_bcolor = Weiss
Gosub Lcd_print


If Pind.5 = 0 Then

Lcd_string = "Voutx " : Lx1 = 2 : Ly1 = 50 : Fontsize = 1 : Lcd_fcolor = Dunkelgruen : Lcd_bcolor = Weiss
Gosub Lcd_print
Lcd_string = "Vouty " : Lx1 = 2 : Ly1 = 51 : Fontsize = 1 : Lcd_fcolor = Dunkelgruen : Lcd_bcolor = Weiss
Gosub Lcd_print
Lcd_string = "Voutz " : Lx1 = 2 : Ly1 = 52 : Fontsize = 1 : Lcd_fcolor = Dunkelgruen : Lcd_bcolor = Weiss
Gosub Lcd_print

Open "DATA.txt" For Append As #10



'---------------------------Start / Stop Bedingung Aufnahme---------------------------------------------
Unittime = 0
Second = 0
Minute = 0
Hour = 0
While Pind.6 <> 0
Marker = 0
Incr Unittime

Voutxw = Getadc(0)
Voutyw = Getadc(1)
Voutzw = Getadc(2)


Voutx = Voutxw / 1024
Vouty = Voutyw / 1024
Voutz = Voutzw / 1024

Voutx = Voutx * Referenzspannung
Vouty = Vouty * Referenzspannung
Voutz = Voutz * Referenzspannung


Voutxstr = Fusing(voutx , "#.####")
Voutystr = Fusing(vouty , "#.####")
Voutzstr = Fusing(voutz , "#.####")



Lcd_string = Voutxstr : Lx1 = 8 : Ly1 = 50 : Fontsize = 1 : Lcd_fcolor = Rot : Lcd_bcolor = Weiss
Gosub Lcd_print

Lcd_string = Voutystr : Lx1 = 8 : Ly1 = 51 : Fontsize = 1 : Lcd_fcolor = Blau : Lcd_bcolor = Weiss
Gosub Lcd_print

Lcd_string = Voutzstr : Lx1 = 8 : Ly1 = 52 : Fontsize = 1 : Lcd_fcolor = Dunkelgruen : Lcd_bcolor = Weiss
Gosub Lcd_print



Millisecondsstr = Fusing(milliseconds , "#######.#")
Lcd_string = Millisecondsstr : Lx1 = 8 : Ly1 = 53 : Fontsize = 1 : Lcd_fcolor = Blau : Lcd_bcolor = Weiss
Gosub Lcd_print


Secondstr = Fusing(second , "#######.#")
Lcd_string = Secondstr : Lx1 = 8 : Ly1 = 54 : Fontsize = 1 : Lcd_fcolor = Blau : Lcd_bcolor = Weiss
Gosub Lcd_print




'####----Marker----#####'

If Pind.4 = 0 Then
   Marker = 1
End If
Markerstr = Fusing(marker , "#.#")


Print #10 , Voutxstr ; "  " ; Voutystr ; "  " ; Voutzstr ; "  ";

Print #10 , Hour ; ":" ; Minute ; ":" ; Second ; "  ";

Print #10 , Markerstr ;
Print #10 , "  " ;

Print #10 , Unittime ;
Print #10 , "  "

Wend



Close #10
Gosub Lcd_cls
Goto Anfang


Else
Goto Anfang
End If


End If                                                      '


End




 Timer_irq:
  Timer1 = Timervorgabe
  Incr Second
  If Second = 60 Then
      Incr Minute
      Second = 0
  End If
      If Minute = 60 Then
            Incr Hour
            Minute = 0
      End If


   Return