PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : TWI/I²C: Wie legt man die slave-id eines AVRs fest?



i-mon
03.10.2006, 16:25
Hallo,
ich möchte über I²C Werte an einen Mega8 übertragen, der diese dann über ein LCD-Display ausgibt. Wie lege ich denn die Slave-ID des Mega8 fest? Will später das LCD-Display ähnlich wie RN-KeyLCD ansteuern. Also einfach i2cstart, i2csend und i2cstop.

Gruß

Werner

bertl100
03.10.2006, 17:14
dafür gibts bei Bascom eine lib zum Runterladen.
i2c.lib oder so, kostet aber auch was!!

Mit dieser lib kannst du dann ein Register beschreiben, welches die Slaveadresse beinhaltet .

CONFIG I2CSLAVE = address , INT = interrupt , TIMER = tmr

PicNick
03.10.2006, 17:55
Schau dich da mal um, das kostet nix.
https://www.roboternetz.de/wissen/index.php/TWI_Praxis

i-mon
03.10.2006, 18:49
Den Artikel habe ich mir vorher auch schon angeschaut. Wäre es möglich, nur den Slave so umständlich zu programmieren und dann beim Master die einfache Ansteuerung verwenden.

PicNick
03.10.2006, 18:56
umständlich ? naja.
Im Masterprogramm kannst du jedenfalls die normalen I2Cxyc funktionen verwenden.

i-mon
06.10.2006, 22:51
Hallo,

mittlerweile klappt so gut wie alles. Im Masterprogramm habe ich jetzt I2Cxyc mit dem Code von dem Artikel vermischt. Einzige Hürde ist, dass man twcr auf null setzen muss, ansonsten klappts mit I2Cxyc nicht.

Twcr = &B00000100 ' erstmal nur TWI aktivieren
Twsr = 0 ' Status und Prescaler Register
Twbr = 18

Einfach wenn man die tw-Befejle braucht, Twcr = &B00000100 und anschließend wieder Twcr = 0 \:D/

Das einzige was ich nicht verstehe ist, dass mein i2csend-Befehl exakt jedes zweite Byte verliert... Muss momentan jeden Wert zweimal senden. Dann klappts wunderbar. ](*,)

Gruß

Werner

Dani-Bruchflieger
07.10.2006, 02:03
dafür gibts bei Bascom eine lib zum Runterladen.
i2c.lib oder so, kostet aber auch was!!

Wieso kostet die was? - Ist doch mit dabei! (Jedenfalls bei meiner Vollversion war das alles dabei...)
Ich mußte mich da auch nicht mit irgendwelchen Registern rumschlagen, sondern einfach mit Config TWI = 100000 ist der Takt auf 100khz gesetzt - ohne große rumrechnereien....

linux_80
07.10.2006, 09:37
@Dani-Bruchflieger
Die Lib die bis jetzt was extra gekostet hat, war die für den TWI- bzw. I2C-Slave.
Das was an I2C dabei ist, ist nur als Master tauglich, ausser man macht es per Hand, so wie auf der Seite im Wiki.
Das besondere an der zu zahlenden Lib ist, das man damit auch I2C machen kann, wenn der AVR kein TWI eingebaut hat, oder man andere Pins als die dafür vorgesehenn verwenden muss/will.

raptor_79
17.10.2006, 16:07
ich hab die lib gekauft. kostet 15€ oder so. bei mcs kann man per paypal bezahlen. tut man das, kann man die datei sofort runterladen.

ich mein, 15€... sollns es doch haben. dafür ist es bequemer, und überhaupt.

AVRboy
17.10.2006, 16:30
das steht doch in der bascom hilfe oder nich.