Nochmal Nachtrag:

Problem mit dem SPI-Slave habe ich zuerst nochmal mit dem BASCOM-eigenen Config SPI=Hard und Config SPI=Soft programmiert. Dabei hat es wunderbar funktioniert.

Dann eben noch den Code der Version mit Config SPI=Hard wieder Befehl für Befehl auf Registerzugriffe zurückreduziert. Es gieng auch in jedem Stadium. Zum Schluß blieb im Grunde mein AVR-Slave-Code übrig der seltsamerweise läuft! Der Code ist nun soweit identisch und ich steh echt auf dem Schlauch was da anders sein soll. Die Warteschleife auf SPSR.7 = 0 ist irrelevant, ohne giengs ja auch nicht, das hatte ich nur aus letzten Versuchen noch drin.

Code jetzt:

Code:
' SPI-Slave-Routine für SPI-Hub
' =============================

  $RegFile = "m8def.dat"
  $Crystal = 7372000
  $Baud    = 115200

  On SPI SPI_Interrupt

  LEDError        Alias PortD.7

  Dim TempSpi     As Byte
  Dim SpiDataRec  As Byte
  Dim Richtung    As Byte

  DDRD.7 = 1                 ' LED auf Out

Init:
  GoSub SPI_Init
  Enable Interrupts

Main:
  Do
    LEDError = SpiDataRec.0
  Loop

SPI_Init:
  DDRB.3 = 0                ' MOSI input
  DDRB.4 = 1                ' MISO output
  DDRB.5 = 0                ' SCK input
  SPCR = &B11000000         ' SPI-Slave einstellen
  ReSet SPSR.SPI2X          ' Double Speed aus
  SPIDataRec = 0
  Return

SPI_Interrupt:
  SpiDataRec = SPDR
  SPDR = 0
  Return
Grüße (sprachloser) Wolfgang

P.S.: Und Strom hat doch ne Duftnote!!!