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:
Grüße (sprachloser) WolfgangCode:' 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
P.S.: Und Strom hat doch ne Duftnote!!!







Zitieren

Lesezeichen