-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: trotz I2Cslave Library zeigt Bascom fehler an

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    24.04.2005
    Ort
    Bayern
    Alter
    31
    Beiträge
    336

    trotz I2Cslave Library zeigt Bascom fehler an

    Anzeige

    Hallo
    ich habe mir die I2Cslave Library in den Libraryordner kopiert. Doch wenn ich auf Compilieren drücke zeigt er mir den fehler 324 an. "Error : 324 Line : 5 Chip not supported by I2C slave library"
    Code:
    $regfile = "m32def.dat"                                     
    $crystal = 16000000                                   
    $baud = 9600
    
    Config i2cslave = &H40
    und bei diesem hier auch.
    Code:
    $regfile = "m32def.dat"                                     ' Benutzter Chip
    $crystal = 16000000                                         ' Quarz Frequenz
    $baud = 9600                                                ' Baud rate
    
    Cls
    Cursor Off
    Waitms 100
    '-------------------------------------------------------------------------------
    Config Twislave = &H40
    Config Adc = Single , Prescaler = Auto
    
    Dim Command As Byte
    Dim Byte_nr As Byte
    Dim Channel As Byte
    Dim Misc As Byte
    Dim Merker As Bit
    
    Dim Value As Word At &H110
    Dim Value_low As Byte At &H110 Overlay
    Dim Value_high As Byte At &H111 Overlay
    
    Reset Merker
    
    
    Enable Interrupts
    '-------------------------------------------------------------------------------
    'Hauptprogramm (in diesem Fall einfach eine leere Schleife).
    'Selbstverständlich können hier auch weitere Operationen ausgeführt werden,
    'man sollte aber beachten, daß bei häufigem Zugriff des Masters nicht viel
    'Zeit für die Abarbeitung der Hauptprogrammschleife bleibt.
    
    Do
    nop
    Loop
    
    End
    '-------------------------------------------------------------------------------
    '-------------------------------------------------------------------------------
    'Die folgenden Labels werden von der Library aufgerufen:
    
    Twi_stop_rstart_received:
      'Print "Master hat ein Stop oder repeatet Start gesendet"
    Return
    '-------------------------------------------------------------------------------
    
    Twi_addressed_goread:
      'Print "Wir wurden adressiert und der Master wird Daten senden"
    Return
    '-------------------------------------------------------------------------------
    
    'Dieses Label wird aufgerufen  wenn der Master Daten sendet und der Slave das
    'gesendete Byte in der Variable TWI vorhält.
    
    Twi_gotdata:
       If Merker = 0 Then                                       'Der "Merker" entscheidet darüber,
        Command = Twi                                           'ob das empfangene Byte als
        Set Merker                                              'Kommando oder "Universalbyte"
       Else                                                     'interpretiert wird.
        Misc = Twi
        Reset Merker
        Locate 2 , 1                                            'spasseshalber wird hier das
        Lcd Misc ; "  "                                         'empfangene Universalbyte auf
       End If                                                   'dem LCD ausgegeben.
       'Print "received : " ; Twi
    Return
    '-------------------------------------------------------------------------------
    'Dieses Label wird aufgerufen, wenn der Master Daten empfangen will und ein
    'Byte braucht. Twi ist die Variable, die gesendet wird.
    '
    'Die Variable twi_btr ist eine Byte Variable die den Index des benötigten Bytes
    'enthält. Im Falle des Sendens mehrerer Bytes eines Arrays kann kann twi_btr
    'entsprechend als Index genutzt werden.
    
    Twi_master_needs_byte:                                      'Der Master braucht ein Byte.
    
    Locate 1 , 1
    Lcd "Slave - Modus"                                         'Nur zur Verdeutlichung.
    
    Channel = Command And &H0F                                  'Hier wird entschieden, welcher ADC
    If Channel = 0 Then Value = Getadc(0)                       'Kanal gelesen werden soll. Das
    If Channel = 1 Then Value = Getadc(1)                       'niederwertige Nibble des Kommando-
    If Channel = 2 Then Value = Getadc(2)                       'byte enthält diese Information -
    If Channel = 3 Then Value = Getadc(3)                       'also von 0 bis 3.
    
    'Da wir zwei Byte brauchen, wird im höherwetigen Nibble des Kommandobyte
    'festgelegt, ob Low- oder Highbyte des Wandlungsergebnisses an den Master
    'übertragen werden.
    
    Byte_nr = Command And &HF0
    If Byte_nr = &H10 Then Twi = Value_low
    If Byte_nr = &H20 Then Twi = Value_high
    
    Return
    
    '-------------------------------------------------------------------------------
    'Wenn der Master alle Bytes empfangen hat, wird dieses Label aufgerufen.
    Twi_master_need_nomore_byte:
      'Print "Der Master braucht keine Bytes mehr"
    Return
    an was liegt das? muss ich in Bascom noch etwas einstellen?

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    24.04.2005
    Ort
    Bayern
    Alter
    31
    Beiträge
    336
    kann das sein, dass ich den atmega32 gar nicht als Slave programmieren kann? denn wenn ich §regfile = "m8def.dat" einstelle dann zeigt er mir diesen fehler nicht mehr an.

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    Halo,
    der M32 kann das auf jeden Fall, ist da ja Hardwaremässig vorgesehen, nur wissen wir nicht was die Lib alles macht,
    in der normalen Hilfe werden die Befehle auch nicht erklärt, also kann nur einer weiterhelfen der diese Lib auch hat.

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    24.04.2005
    Ort
    Bayern
    Alter
    31
    Beiträge
    336
    ich hab mir die lib mal durchgesehen aber ich kenn mich mit dieser überhaupt nicht aus. könnte mir jemand helfen der diese lib auch hat?
    Danke

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    24.04.2005
    Ort
    Bayern
    Alter
    31
    Beiträge
    336
    ich habe dein anderen Thread durchgelesen. wie ist das jetzt mit der slave lib brauch ich die jetzt oder brauch ich die jetzt doch nicht mehr? ich versteh jetzt gar nichts mehr.

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    theoretisch kann man auch alles selber programmieren, musst Dir halt das Datenblatt reinziehen,
    diese Lib von Bascom ist wohl etwas komfortabler mit Config und fertigen Subs und Funktionen, die man dann nur aufzurufen braucht, auch wird man damit software-I2C-slave machen können. Das wird dann etwas aufwendiger das selberzu machen, was dann die Lib evtl. rentabel macht.

  7. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    24.04.2005
    Ort
    Bayern
    Alter
    31
    Beiträge
    336
    wo liegt den der Unterschied ob ich jetzt Config i2cslave = &H40 schreibe oder Config Twislave = &H40 schreibe? beim ersten zeigt er mir den fehler an beim zweiten nicht mehr

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    31
    Beiträge
    4.255
    Wenn du ic2... nimmst, wird der Bus per Software emuliert. Bei twi... wird die Hardwareschnittstelle (von Atmel TWI genannt) verwendet. Dann liegt der Bus auf den mit SCL und SDA bezeichneten Pins. Das ist die bessere Lösung, aber weil nicht alle AVRs Hardware-TWI/i2c haben, besteht halt die Möglichkeit, das ganze softwaremäßig zu machen.

  9. #9
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    24.04.2005
    Ort
    Bayern
    Alter
    31
    Beiträge
    336
    hat den keiner ein beispielprogramm mit dem man vom master zum slave und umgekehrt etwas senden kann. Damit ich mir mal anschauen kann wie man das aufbaut. Die Beispielprogramme sind ja immer nur für Master. aber was schreib ich da in den slave rein.

  10. #10
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    31
    Beiträge
    4.255
    Sind keine Beispiele bei der Lib dabei?

    Normalerweise sendet bei I2C der Slave nichts von selbst. Alle Übertragungen werden vom Master ausgelöst, der Daten in den Slave schreibt oder dort Daten anfordert.

    Da ich nicht mit Bascom arbeite und auch die Lib noch nie gesehen habe, weiß ich nicht, wie die konkrete Umsetzung im Programm aussieht. In der Pascal-Umgebung, die ich nutze, werden jedenfalls zwei Buffer (quasi als nen Array) angelegt, auf die dann Master und Slave zugrefen können...

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •