Okay,
ich habe das Progi mal fertig gemacht. Hoffe das läuft bei deiner HW
cu
Martin
Also TWI und I2C sind dasselbe. I2C stammt von Grundig, und der Name ist geschützt. Atmel hat das deswegen TWI=TwoWireInterface genannt. Die beiden sind weitgehend kompatibel(glaube der I2C unterstützt noch 10bit-Adressen (eine Erweiterung des normalen I2C), soweit ich das weiss kann der TWI das nicht). Das ganze funzt aber zusammen auf jeden Fall, es sei den es werden eben 10 bit Adressen anstatt 7 bit Adressen verwendet.
roboternetz hat da ein hevorragendes wiki! unbedingt mal lesen.
Zu dem Basic-Programm:
Das Teil schreibt anscheinend unendlich Zahlen von 1 bis 15 auf den Bus. Wo das Hallo ausgegeben wird weiss ich net, weil ich die HW net kenne.
(Genau das hatte ich übersehen.... Data wird immer mit 2 multipliziert... also 1 2 4 8 usw...also 1Led an 2Led an usw)
Prinzipiell ist es egal, was Du auf den Bus schreibst(zum testen) du kannst ja die Funktionen 2x aufrufen, das ist dann das selbe.
Ich habe den Code von Atmel verwendet, da ich das ganze über die ISR handeln möchte. Dadurch das das ganze über Interrupts (Wiki) gehandelt wird ist es möglich, wärend einer TWI-Sendung oder TWI-Empfang den AVR relativ normal zu benutzen(Berechnungen, Eingaben usw.) Bei Fleury ist der AVR mit der Sendung bzw dem Empfang beschäftigt und kann wärenddessen nix anderes machen.
Ich habe Dir diesen Code hochgeladen, weil ich den Code von Fleury nicht kenne, und mich da auch gar nicht erst einarbeiten will.
define (ebenfalls Wiki) behandelt einen String wie eine Variable, verschwendet aber keine Variable, weil beim Kompilieren diese "Variable" als Konstante eingebunden wird.
Generell solltest Du Dir mal das Wiki durchlesen und vielleicht erstmal andere Codes lesen bzw schreiben um mit C etwas vertrauter zu werden. TWI und C zu lernen ist etwas happig!!! Bei roboternetz ist das C und AVR-Tutorial (2 unterschiedliche Artikel) bei RN-Wissen versteckt.
Besorge Dir erstmal nen Compiler (meinetwegen auch ohne makefile) wie z.B AVR-Studio oder KAMAVR!
Schreibe mal ein Progi in C (und TWI-IF) und schau ob Du das durch den Compiler durchbekommst, wenn es dann net funzt, dann poste mir die Fehler und deinen Code.
cu
Martin
Okay,
ich habe das Progi mal fertig gemacht. Hoffe das läuft bei deiner HW
cu
Martin
Ups,
hatte im Bascom-Progi was übersehen, hier die korrigierte version.
Cu
Martin
Hi, vielen Danke für die Hilfe.
Nur compilieren tut das leider nicht:
Zeile 44 ist diese hier:Code:avr-gcc.exe -I"E:\mathias\projects\avr.projects\rnbfra_led\." -mmcu=atmega32 -Wall -gdwarf-2 -O0 -fsigned-char -MD -MP -MT rnbfra_led.o -MF dep/rnbfra_led.o.d -c ../rnbfra_led.c ../rnbfra_led.c: In function 'main': ../rnbfra_led.c:44: error: expected expression before '=' token ../rnbfra_led.c:44: error: 'H72' undeclared (first use in this function) ../rnbfra_led.c:44: error: (Each undeclared identifier is reported only once ../rnbfra_led.c:44: error: for each function it appears in.) make: *** [rnbfra_led.o] Error 1 Build failed with 4 errors and 0 warnings...
kA was da falsch sein soll.Code:TWI_buf[0] = Writepowerport_adr;
besser das bitte zu
#define Writepowerport_adr 0x72;
aus
cu martin
klappt thx
jetzt muss ich den code nur noch verstehen![]()
Lesezeichen