Hallo zusammen,
Ich habe mir mal wieder das thema bascom vorgenommen aber beim i2c
scheiterts und egal wie lange ich schon in google und in foren gesucht
habe ich werde nicht schlau.
Ich möchte von einem mega8-16pu zu einem anderen mega8-16pu eine
dreistellige zahl schicken. die ich dann im 2. also im slave auswerte.
Jetzt scheiterts aber beim i2c
kennt jmd ein EINFACHES I2c Beispiel script das ich mir mal einverleiben
kann?
Danke schonmal für euere Hilfe
Christoph
Christoph schrieb:> kennt jmd ein EINFACHES I2c Beispiel script das ich mir mal einverleiben> kann?
Naja, wirklich einfach ist das nicht, außer hinterher, wenn man es
begriffen hat. Ich hatte auch einige Beispielprogramme angeschaut, bin
dann jedoch mit der Beschreibung im Datenblatt des ATmega am besten klar
und letztendlich zum Ziel gekommen.
Nachtrag:
Die Kommunikation zwischen zwei µCs ist als Einstieg in I2C nicht
empfehlenswert, da zuviel Fehlerpotential besteht. Nimm zuerst was
einfacheres, z.B. eine DS1307 auslesen.
hey
ich weiß dass das nicht einfach ist aber mit einem sample dass ich erst
einmal nur eine 1 oder eine 0 übertragen kann wäre mir schon sehr
geholfen!
Hat jmd bitte in sample code für mich?P
lg christoph
danke für die antwort
aber ich bleib dabei =)) bin sturr ich weiß
die zip's helfen mir leider nichts arbeite in bascom
hab selber versucht was zu basteln funzt aber nicht
Master
Hallo
Also hier habe ich ein I2C Beispiel in Bascom mit zwei Attiny45:
Der Master sendet den Wert 4 per I2C an den Slave. Der Slave addiert 20
dazu, und der Master liest den Wert wieder vom Slave. Der Wert wird nun
vom Master per RS232 ausgegeben und sollte nun 24 sein.
Der Master verwendet das Software I2C von Bascom. Der Slave verwendet
das Hardware USI interface.
ACHTUNG: In der ISR "I2c_read_write" vom Slave, wird das SREG nicht
gespeichert, wenn man nun das Beispiel mit eigenem Code erweitert,
können plötzlich komische Fehler auftreten.
Für ein anderes Projekt habe ich den Code weiterentwickelt, unter
anderem wird auch das SREG gespeichert. Wenn nun Interesse besteht, kann
ich das Beispiel auf die aktuelleste Version anpassen.
>fällt euch ein fehler auf?
Ja, zuviele potentielle Fehlerquellen in deinem Beispielcode und keine
Chance, die zu finden. So wird das nichts. Keine Ahnung, was deine lib
da macht, aber ich sehe nirgendwo Debug-Output, z.B. mal zwischendurch
das TWSR ausgeben, ganz zu schweigen von definiertem Verhalten im
Fehlerfall.
Warum beherzigst du nicht Icke's Tip von oben und nimmst erstmal einen
i2c-Slave, von dem du weißt das er funktioniert? Damit kannst du die
möglichen Fehlerquellen schon mal um 50% reduzieren.
Auch oben schon gesagt: TWI ist die Komponente im AVR, die die höchste
Komplexität mitbringt. Das ist nicht mal eben kurz hinprogrammiert wie
z.B. LED-Blinken oder UART-Echo. Du kommst um das Lesen und Verstehen
des AVR-Manuals und der Application Notes nicht drum rum, und sei es
nur, um festzustellen, dass du die PullUps vergessen hast.
Gruss, Heinz
Spess53 schrieb:> Hi>>>die zip's helfen mir leider nichts arbeite in bascom>> Schön, das du jetzt damit heraus rückst.>> MfG Spess
Steht schon im Eröffnungsbeitrag das er was mit Bascom macht.
Spess53 schrieb:>>die zip's helfen mir leider nichts arbeite in bascom>> Schön, das du jetzt damit heraus rückst.
daß die .zips nicht für bascom taugen, hat er schnell rausgefunden. Aber
daß du einen Link auf die I2C Spec in Mandarin gepostet hast, ist ihm
nicht aufgefallen. Das merkt man erst beim Lesen :-(
MfG Klaus
Hi
>Aber daß du einen Link auf die I2C Spec in Mandarin gepostet hast, ist ihm>nicht aufgefallen.
Eigentlich gibt es das Dokument nur noch in Nihongo. In Mandarin kenne
ich es nicht. Vielleicht deute ich aber als Handyverweigerer nur deinen
Smilie falsch. Bei mir erscheint der Link in gutem Englisch.
MfG Spess
Spess53 schrieb:> Vielleicht deute ich aber als Handyverweigerer nur deinen> Smilie falsch.
Ich hab mir den auch erst ergoogelt.
Was ist ein Handy? Ist das diese merkwürdige Leuchte, mit der sich vor
allem Radfahrerinnen nachts ihre Gesichter anstrahlen? </ironie>
diesmal klassisch
MfG Klaus