ok ich habe jetzt also mal deinen Code genommen und die Printbefehle auf meinen Port angepasst soweit sogut alles kompiliert ohne Fehler.

Das Problem ist nun das er egal welche Taste ich auf dem IR FB drücke immer das selbe ausgegeben wird toggle:1 Adresse:10 Code:106.

Irgendwas stimmt da nicht gibt es irgendwas was ich kontrollieren kann wo es hängt ?



Hier ist der Code für den ATMEGA2560 von mir :
Code:
'Diese Anweisung setzt die Fusebits automatisch korrekt (Syntax $PROG LB, FB , FBH , FBX )
$prog , 255 , &B11011001 ,                                  'Quarz an / Teiler aus / Jtag aus

$regfile = "m2560def.dat"
$hwstack = 82                                               '80
$framesize = 68                                             ' 64
$swstack = 68                                               '44

$crystal = 16000000                                         'Quarzfrequenz


Config Pine.5 = Input
USB Alias Pine.5                                            'Ist 1 wenn USB angeschlossen

Config Com4 = 38400 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
Open "com4:" For Binary As #4






 $lib "mcsbyte.lbx"                                         'ACHTUNG:numeric<>string conversion routines only for bytes

  Config Portc.7 = 0
  Input_pin Alias Pinc.7                                    'Pin für TSOP1736

  Config Timer0 = Timer , Prescale = 8
  On Timer0 Timer_irq
  Const Timervorgabe = 78                                   'Timeraufruf alle 178µs (10 Samples = 1 Bit = 1,778ms)
  Enable Timer0                                             'Hier werden die Timer aktiviert
  Enable Interrupts

  'Timing für 10 Samples Per Bit = 1,778ms
  Const Samples_early = 8                                   'Flanke Frühestens Nach 8 Samples
  Const Samples_late = 12                                   'Flanke Spätestens Nach 12 Samples
  Const Samples_min = 3                                     'Flanke Vor 3 Samples - > Paket Verwerfen

  'Variablen der ISR
  Dim Sample As Byte                                        'eigentlich Bit, spart aber 46Byte ROM
  Dim Ir_lastsample As Byte                                 'zuletzt gelesenes Sample
  Dim Ir_bittimer As Byte                                   'zählt die Aufrufe von Timer_IRQ
  Dim Ir_data_tmp As Word                                   'Bitstream
  Dim Ir_bitcount As Byte                                   'Anzahl gelesener Bits


  'Rückgabewerte der ISR
  Dim Address_rc5 As Byte , Command_rc5 As Byte , Rc5_flag As Bit

  Do
 '    Print #4 , "test"

    If Rc5_flag = 1 Then
      Reset Rc5_flag
        Print #4 , "toggle:" ; Command_rc5.7;
        'clear the toggle bit
        Command_rc5 = Command_rc5 And &B01111111
        Print #4 , " Adresse:" ; Address_rc5 ; " Code:" ; Command_rc5
    End If
   ' Waitms 100
  Loop

End


Timer_irq:
  Timer0 = Timervorgabe
  Sample = Not Input_pin

  'bittimer erhöhen (bleibt bei 255 stehen)
  If Ir_bittimer < 255 Then Incr Ir_bittimer

  'flankenwechsel erkennen
  If Ir_lastsample <> Sample Then

     If Ir_bittimer <= Samples_min Then
       'flanke kommt zu früh: paket verwerfen
       Ir_bitcount = 0
     Else
       'nur Flankenwechsel in Bit-Mitte berücksichtigen
       If Ir_bittimer >= Samples_early Then
           If Ir_bittimer <= Samples_late Then
             'Bit speichern
              Shift Ir_data_tmp , Left , 1
              Ir_data_tmp = Ir_data_tmp + Sample
              Incr Ir_bitcount
           Else
              'Flankenwechsel zu spät: Neuanfang mit gemessener Flanke
              Ir_bitcount = 1
              Ir_data_tmp = Sample
           End If
           'bittimer zurücksetzen wenn Timer > Samples_early
           Ir_bittimer = 0
       End If
     End If

    'Kontrolle des Startbits auf 1
     If Ir_bitcount = 1 Then Ir_bitcount = Ir_data_tmp.0

     'Alle 14 Bits gelesen?
     If Ir_bitcount >= 14 Then
       Command_rc5 = Ir_data_tmp                            'Bit 6 und 7 siehe unten
       Shift Ir_data_tmp , Right , 6
       Address_rc5 = Ir_data_tmp And &B00011111
       'For extended RC5 code, the extended bit is bit 6 of the command.
       Command_rc5.6 = Not Ir_data_tmp.6
       'The toggle bit is stored in bit 7 of the command
       Command_rc5.7 = Ir_data_tmp.5
       'Paket erfolgreich gelesen
       Set Rc5_flag
       'paket zurücksetzen
       Ir_bitcount = 0
     End If

  End If
  'sample im samplepuffer ablegen
  Ir_lastsample = Sample

Return

Gruß
Steffen