Okay, der code funktioniert auf nem tiny45. Leider funktioniert aber der Code für den I²C Slave nicht... Dieser wurde mal für nen Mega8 geschrieben, auf nem Tiny45 bekomme ich eine Fehlermeldung beim kompilieren...:
Code:
$regfile = "attiny45.dat"
$framesize = 16
$swstack = 16
$hwstack = 32
$crystal = 8000000

'TWI
'====

Declare Sub Twi_init_slave
Dim Twi_control As Byte
Dim Twi_status As Byte
Dim Command As Byte
Dim Einwert As Byte
Dim Newbyte As Byte


Enable Interrupts


'Init
'=====
Command = 0

Call Twi_init_slave

'-------------------------------------------------------------------------------
'***| Hauptprogramm |***********************************************************
'-------------------------------------------------------------------------------
Do
     Newbyte = 0

     'schauen ob TWINT gesetzt ist
     Twi_control = Twcr And &H80        ' Bit7 von Controlregister
     If Twi_control = &H80 Then
        Twi_status = Twsr And &HF8      ' Status
        'wurde ein Byte geschickt?
        If Twi_status = &H80 Or Twi_status = &H88 Then
            Command = Twdr              ' neue Daten merken
            Newbyte = 1                 ' merken das ein neues Byte da ist
        End If
        'TWINT muss immer gelöscht werden, damit es auf dem Bus weiter geht
        Twcr = &B11000100               ' TWINT löschen, erzeugt ACK
     End If

     'wenn ein neues Byte gekommen ist verarbeiten
     If Newbyte <> 0 Then

       'Register zuordnen -> Befehl
      Einwert = Command
     End If
Loop
End

'-------------------------------------------------------------------------------
'***| TWI: Slavekonfiguration |*************************************************
'-------------------------------------------------------------------------------

Sub Twi_init_slave
    Twsr = 0                            ' status und Prescaler auf 0
    Twdr = &HFF                         ' default
    Twar = &H22                         ' Slaveadresse setzen  I2C-RX-Adr:Hex22
    Twcr = &B01000100                   ' TWI aktivieren, ACK einschalten
End Sub
bei dieser Zeile
Twi_control = Twcr And &H80
kommt die Beschwerde
Source variable does not match target variable [__BTMPA = TWCR]
und bei dieser
Twi_status = Twsr And &HF8
kommt
Source variable does not match target variable [__BTMPA = TWSR]
Was läuft hier falsch...? Funktioniert der I2C Code gar nicht mit nem tiny45...?