Re: CC2 und ATmega8 per I2C verbinden Kategorie: I²C-Bus (von André H. - 30.12.2003 20:48) | |
Als Antwort auf CC2 und ATmega8 per I2C verbinden von Johannes - 30.12.2003 14:52
| |
Hallo Johannes, Du hast das I²C-Bus-Protokoll verletzt. Das Adress-Byte mu� immer folgenderma�en aufgebaut sein: aaaaaaar a=Adressbit r= Read/Write 0=write, 1=read Slaveadressen haben immer gerade Zahlen: aaaaaaa0 Diese werden lediglich mit 1 oder-verknüpft, wenn man von dem Baustein lesen will. Und als zweites sollte die eingestellte Slave-Adresse Seines ATmegas mit der �bereinstimmen, an die Du senden willst. Kurz: Wenn Du "TWIaddr" mit 0x40 definierst, so solltest Du mit der CC2 auch diese ansprechen. Also i2c.start(0x40) oder i2c.start(64). �brigens solltest Du, wenn Du den I²C-Bus aus mehreren Threads ansprechen willst, mit i2c.cstart arbeiten. (= I2C.Captured-Start) Mehr dazu siehe in der Hilfe zu i2c.c2. (Bei Installiertem SP2 in der IDE F1 drücken > "Modul-Hilfe">"i2c.c2", ansonsten die Datei i2c.html aufrufen.) MfG André H. > Der Quellcode für die CC2: > > > thread main > { > i2c.init(); > loop { > i2c.start(81); > i2c.write(1); > i2c.write(0); > i2c.stop(); > sleep (1000); > i2c.start(81); > i2c.write(1); > i2c.write(1); > i2c.stop(); > sleep (1000); > } > } > > > Und für das ATmega8-Modul: > > > 'program Test1; > > { $BOOTRST $00C00} {Reset Jump to $00C00} > { $NOSHADOW } > { $W+ Warnings} {Warnings off} > > Device = mega8, VCC = 5; > > Import SysTick, TWIslave; > > From System Import; > > Define > ProcClock = 16000000; {Hertz} > SysTick = 10; {msec} > StackSize = $0064, iData; > FrameSize = $0064, iData; > TWImode = Transparent; {HandShake or Transparen} > TWIbuffer = 10, iData; {buffer/packet size} > TWIaddr = $40; {slave address} > ... > ... > TWIsetslaveAddr ($40); > EnableInts; > loop > LED1 := TWIRXBUFFER[0]; > TWIRXBUFFER[0] := 0; > endloop; > end Test1. > Antworten bitte nur ins Forum! Fragen per EMail auf Forum-Postings werden nicht beantwortet! Das macht meine Heizung gerade | |
Antwort schreiben Antworten: Re: CC2 und ATmega8 per I2C verbinden (von Johannes - 30.12.2003 22:49) Re: CC2 und ATmega8 per I2C verbinden (von André H. - 31.12.2003 8:31) |