Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > Hallo Johannes, > > zum ATmega8-Modul kann ich Dir leider nichts sagen, aber > beim C2-Code ist mir aufgefallen das Du auf Adresse 81 schreibst. > Bei den "normalen" PCF Bausteinen ist es so , das man auf die > gerade Adresse schreibt und von der ungeraden Adresse liest. > Vieleicht ist hier ein Ansatzpunkt. > > Ausserdem könntest Du mal den Rückgabewert von i2c.start auswerten, > da die Funktion das ACK Bit auswertet und den Erfolg der Adressierung > zurückgibt. So kannst Du schon mal rausfinden, ob überhaupt eine Verbindung > aufgebaut wird. > > mfg Tom > > > > > Moin, > > ich habe ein Problem mit der Vernetzung von der CC2 mit einem ATmega8-Modul per I2C. Leider habe > > ich noch niemanden gefunden, der mit dabei helfen konnte. > > > > Ich habe an ein ATmega8-Modul zwei LEDs angeschlossen, die ich von der CC2 per I2C ein und > > ausschalten will. > > > > Der Quellcode für die CC2: > > > > <code> > > 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); > > } > > } > > </code> > > > > Und für das ATmega8-Modul: > > > > <code> > > '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} > > > > > > Implementation > > > > {$IDATA} > > > > {--------------------------------------------------------------} > > { Type Declarations } > > > > type > > > > > > {--------------------------------------------------------------} > > { Const Declarations } > > > > > > {--------------------------------------------------------------} > > { Var Declarations } > > {$IDATA} > > var > > LED1[@PortD, 4] : bit; > > LED2[@PortD, 5] : bit; > > > > {--------------------------------------------------------------} > > { functions } > > > > procedure InitPorts; > > begin > > DDRD:= %00110000; > > LED1:= 1; > > LED2:= 0; > > end InitPorts; > > > > > > {--------------------------------------------------------------} > > { Main Program } > > {$IDATA} > > > > begin > > InitPorts; > > > > TWIsetGC (false); > > TWIsetslaveAddr ($40); > > EnableInts; > > loop > > LED1 := TWIRXBUFFER[0]; > > TWIRXBUFFER[0] := 0; > > endloop; > > end Test1. > > </code> > > > > Leider funktioniert der Code nicht. Die LED bleibt an. > > Vielleicht findet sich ja hier jemand, der mir helfen kann. > > > > Gruß > > Johannes