-         

Ergebnis 1 bis 2 von 2

Thema: Problem mit myTWI.lib

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    29.08.2007
    Beiträge
    11

    Problem mit myTWI.lib

    Anzeige

    Hallo,

    ich versuche den TWI-Code myTWI.lib von PicNick einzusetzten - leider nach einigen Stunden erfolglos.

    Im ertsten Schritt soll einfach eine Multimasterumgebung eine Temperatursensor an Adresse 144 (&h90) auslesen.

    In der klassischen Bascom-Variante sieht das so aus und funktioniert gut:
    Code:
       I2cstart                                                 'repeated start
       I2cwbyte Commandbyte                                     'slave address (read)
       I2crbyte Hbyte , Ack                                     'read byte
       I2crbyte Lbyte , Ack
       I2cstop
    bei PicNick's routine geht es bei mir aber nicht
    Code:
    $regfile = "m8def.dat"
    $crystal = 8000000
    
    $include "MyTWI.bas"
    
    $baud = 38400
    
    $hwstack = 64
    $swstack = 64
    $framesize = 64
    
    
    
    Const Tmr_c_prescale = 64
    Const Tmr_c_preload = 131
    Const Tmr_c_divis = 250
    
    Declare Sub Twi_show_state(byref State As Byte)
    
    
    '-------------------------------------------------
    '  fremde I2C Adresse   (als Master)
    '-------------------------------------------------
    Const Mn2_adr = &H90                                        '144
    
    
    Dim Slv_byte As Byte                                        'sende Byte (irgendwas)
    
    Dim Twi_mst_buff(24) As Byte                                'Buffer für Masterfunktionen
    Dim Twi_slv_buff(24) As Byte                                'Buffer für Slavefunktionen
    
    
    Waitms 500
    
    Print : Print
    Print "Multimaster 1.0a"
    Print Version()
    
    Dim Temp As Byte
    
    
          Twi_st_data = Varptr(twi_slv_buff(1))                 'datenbuffer senden
    
    
       Twi_mst_addr = Mn2_adr + 1                               'I2C adresse ZIEL (+R)
       Twi_mr_cntr = 2                                          ' wieviele Byte
       Twi_mr_data = Varptr(twi_mst_buff(1))                    ' empfangsbuffer
          Gosub Run_wait_master                                 ' auf gehts
       Wait 1
       Loop
    End
    
    
    
    '----------------------------------------
    $include "Twi_show_state.bas"
    '----------------------------------------
    
    Run_wait_master:
          Gosub Mst_start                                       'aufruf
          Select Case Twi_mst_flag                              'ergebnis ?
          Case Twi_m_sent:                                      'gesendet
                   Print "<<<<<<MASTER sent:" ;
                   Print Hex(twi_mst_addr) ; " ";
                   For Temp = 1 To Twi_mt_cntr
                         Print Hex(twi_mst_buff(temp));
                   Next
                   Print
                   Twi_mst_flag = 0
          Case Twi_m_recv:                                      'geholt
                    Print ">>>>>>MASTER read:" ;
                   Print Hex(twi_mst_addr) ; " ";
                   For Temp = 1 To Twi_mr_cntr
                         Print Hex(twi_mst_buff(temp));
                   Next
                   Print
                   Twi_mst_flag = 0
          Case Else:                                            'irgendein Problem
                    'Print Chr(7) ;
                    Print Hex(twi_mst_addr) ; " ";
                    Call Twi_show_state(twi_mst_flag)
          End Select
       Return
    Am Terminal bekomme ich nur die Meldung

    91 03 M Timeout

    Ich denke dass ich einen kleinen aber entscheidenden Fehler mache - aber welchen??


    Danke und Gruß
    TiRe

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    25.03.2006
    Ort
    Hinsdorf
    Alter
    43
    Beiträge
    379
    Hi!

    Suche mal hier im Netz nach meinen Fragen, hatte auch Probleme mit der Mutimasterumgebung. Darin sind alle Schlüssel zum Erfolg.

Berechtigungen

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