Jap so etwas hatte ich mir inziwschen fast gedacht, dass die Pins
nicht funktionieren wegen einem Fehler im Programm.
Hatte das ganze Ding schon zerlegt, Controller getauscht,
Verbindungskabel überprüft, Fehler auf Leiterplatte gesucht...
Danke, für den Tipp
Das mit dem Signal2 ist ein Fehler durchs Kopieren, wurde auch geändert.
Singel wurde auch auf Byte geändert!

Und siehe da es geht schon mehr:
- Alle 4 Signale funktionieren (auch wenn ich nur 3 brauche)
- Jetzt ist es so, dass mit den ersten 3 Bewegungen, jeweils ein weiteres
Signal kommt. Nach der dritten Servobewegung ändert sich an den Signalen
nichts mehr. Alle 3 Signal sind dann da.
- Die Signale kommen egal was für ein Analogwert vorhanden ist.

Bin mir nur nicht sicher wo der Fehler liegt, so wie ich es gerad sehe,
schreibt er immer die 10 in die Arrays, egal was für ein Analogwert
ansteht.
Seh aber auch keinen Fehler im Programm, bei den Vergleichen oder beim Array beschreiben?!?
Irgendwie sollt ich sehen was in die Arrays geschrieben wird, wenn ein bestimmter Analogwert ansteht.
Ich weiß nicht mehr weiter...

Grüße High Light

P.s.: Hier noch das neue Programm:


Code:
$regfile = "m48def.dat"
$crystal = 16000000



'Servoeinstellungen
Config Servos = 1 , Servo1 = Portd.6 , Reload = 10
Servo(1) = 90

Config Portd.6 = Output

Enable Interrupts

Dim Servostellung1 As Byte
Servostellung1 = 90
Dim Servostellung2 As Byte
Servostellung2 = 110
Dim Servostellung3 As Byte
Servostellung3 = 130

Dim Xpos1 As Byte

'StatusLED
Config Pind.7 = Output
Statusled Alias Pind.7

'Signalausgabe

Config Pind.0 = Output
Signal1 Alias Pind.0

Config Pind.1 = Output
Signal2 Alias Pind.1

Config Pind.2 = Output
Signal3 Alias Pind.2

Config Pind.3 = Output
Signal4 Alias Pind.3

Signal1 = 1
Signal2 = 1
Signal3 = 1
Signal4 = 1

'Analogeinstellungen
Const Adc_multi = 0.0048828125                              ' = 5.0 / 1024.0
Config Adc = Single , Prescaler = Auto , Reference = Avcc

Start Adc

Dim Messergebnis As Word
Dim Volt As Single

Messergebnis = Getadc(0)
Volt = Messergebnis * Adc_multi


'Arraykonfiguration
Dim Volt_list(3) As Byte

'Schrittvariablen
Dim T As Byte
Dim Z As Byte
Dim Z2 As Byte
Z = 0
T = 0

'Timer
Config Timer1 = Timer , Prescale = 256                      'Konfiguriere Timer1
Enable Timer1                                               'schalte den Timer1 ein
On Timer1 Isr_von_timer1                                    'verzweige bei Timer1 überlauf zu   Isr_von_Timer1
Timer1 = 3035                                               'Timer1 soll schon von 3035 wegzählen


Do
'Statusled
Statusled = 1

'Wenn Arrayinhalt = 10 dann SignalX = 0
If Volt_list(1) = 10 Then
Signal3 = 0
Elseif Volt_list(1) = 100 Then
Signal3 = 1
End If

If Volt_list(2) = 10 Then
Signal2 = 0
Elseif Volt_list(2) = 100 Then
Signal2 = 1
End If

If Volt_list(3) = 10 Then
Signal1 = 0
Elseif Volt_list(3) = 100 Then
Signal1 = 1
End If

'Servo stellen und Analogwert auslesen und Array schreiben
If T = 1 Then
   Select Case Z

   'Servostellung 1
   Case 2:

     Servo(1) = Servostellung1
   T = 0

         If Volt <= 4.2 Then
         Volt_list(1) = 100

         Elseif Volt > 4.2 Then
         Volt_list(1) = 10

         End If


   'Servostellung 2
   Case 4:

     Servo(1) = Servostellung2
    T = 0

        If Volt <= 4.2 Then
        Volt_list(2) = 100

        Elseif Volt > 4.2 Then
        Volt_list(2) = 10

        End If


   'Servostellung 3
   Case 6:

     Servo(1) = Servostellung3
    T = 0

       If Volt <= 4.2 Then
       Volt_list(3) = 100

       Elseif Volt > 4.2 Then
       Volt_list(3) = 10

       End If

   End Select
End If

Loop

End


Isr_von_timer1:                                             'ISR von Timer1
Timer1 = 3035

If Z >= 6 Then
Z = 0
End If

Z2 = Z
Z = Z2 + 1
T = 1

Return