Hi,
ich baue grad eine Servo-Steuerung über I2C! Also die Komunikation zwischen 2 IC´s gehtbei mir! hier mal der Code!
Slave:
Master:Code:$regfile = "m8def.dat" ' specify the used micro $crystal = 12000000 ' used crystal frequency $baud = 19200 ' use baud rate $hwstack = 32 ' default use 32 for the hardware stack $swstack = 32 ' default use 32for the SW stack $framesize = 40 ' default use 40 for the frame space 'SCL is PORTD.4 (T0) 'SDA is PORTD.2 (INT0) 'Use 10K pull up resistors for both SCL and SDA Config I2cslave = &B01000000 ' same as &H40 Dim Bfake As Byte Do Loop I2c_master_needs_data: Bfake = 60 _a1 = Bfake Return 'When the master writes a byte, the following label is always called 'It is your task to retrieve variable _A1 and do something with it '_A1 is register R16 that could be destroyed/altered by BASIC statements 'For that reason it is important that you first save this variable I2c_master_has_data: Bfake = _a1 Print "Data: " ; Bfake Return _slave_address = &H40 + Switches ' set the proper address
Code:$regfile = "m16def.dat" $framesize = 32 $swstack = 32 $hwstack = 32 $crystal = 4000000 'or use the TWI ! Config Scl = Porta.1 Config Sda = Porta.2 Do I2cstart I2cwbyte &H40 I2cwbyte &H91 I2cstop Wait 3 I2cstart I2cwbyte &H40 I2cwbyte &H3C I2cstop Wait 3 Loop







Zitieren

Lesezeichen