Forum: Projekte & Code Librarie für das TWI des atmega8


von jochen (Gast)


Lesenswert?

Hallo Zusammen,

ich hab mir heute im laufe des Tages einen C-Library zum benutzen des
Hardware TWI des atmega8 zusammengebastelt.
TWI steht für Two Wire Interface und ist die Atmel Bezeichnung für I²C.

Es werden Funktionen zum starten, stoppen, re-starten, schreiben, lesen
mit ACK und lesen ohne ACK zur Verfügung gestellt.

Bei Interesse kann das File von http://www.rurlaender.net/ unter AVR
Libraries heruntergeladen werden.

Irgendwann demnächst, wenn ich mal wieder Zeit habe, wird es da auch
noch Libraries für die Ansteuerung eines LCDs im 4-Bit Modus und zum
ansteuern des UART geben.

Schönen Sonntag noch, der Jochen

von Dominic Thomé (Gast)


Lesenswert?

Hallo Jochen,

schön daß Du Dich so engagierst, aber warum erfindest Du das Rad neu.
Das alles gibt es doch schon von Peter.

Gruß
DD

von jochen (Gast)


Lesenswert?

Weil ich kapieren will wie es funktioniert! Wenn ich einfach was
fertiges nehme dann tut es zwar, meine Motivation zu verstehen was es
tut ist dagegen doch eher gering.
Wenn ich selber versuche das ganze zum laufen zu bekommen ist die
Motivation deutlich höher. Auch der Lerneffekt ist deutlich besser wie
wenn ich mir eine fertige Komponente ansehe.

Dachte mir halt wenn es jemand brauch kann er sich das runterladen,
wenn nicht dann ist es auch okay.

Schönen Tag noch, der Jochen

von Noname (Gast)


Lesenswert?

Also ich finde es gut, zumal die Hardwareseitige TWI Implementierung
noch sehr selten ist. Und von diesem Peter hab ich auch noch nichts
gehört.

Ich hab mir die Library runtergeladen. Mein C ist zwar sehr schlecht
aber ich versuche es dennoch zu verstehen.

@Jochen
Wäre es möglich das ganze auch in Assembler zu machen ?

von jochen (Gast)


Lesenswert?

Hallo Noname,

möglich ist das auf jeden Fall. Da ich im Moment aber alles in C mache
hab ich mich um Assembler nicht gekümmert.
Wenn man aber einigermaßen verstanden hat wie I2C funktioniert und das
Datenblatt vom atmega8 zu Hand nimmt sollte es kein Problem sein das in
Assembler zu implementieren.
Wenn Du das machen willst und Fragen hast kannst Du mich ja gerne
anmailen. Bin dann gerne Dir bereit im Rahmen meiner bescheidenen
Assembler Kenntnisse weiter zu helfen.

In diesem Sinn einen Schönen Tag noch, der Jochen

P.S. Wenn Du Problem mit dem C-Code hast kannst Du mir natürlich auch
mailen, dann kann ich versuchen es Dir zu erklären.

von Noname (Gast)


Lesenswert?

Vielen Dank für das Angebot. Werde darauf sicher noch einmal
zurückgreifen. Ansonsten ebenfalls noch einen schönen Tag :)

MfG
Noname (...weil man sich hier nicht registrieren kann)

von Peter Fleury (Gast)


Lesenswert?

Im WinAVR Package gibt es ein gut dokumentiertes Hardware-TWI Beispiel.

@Noname
Registrieren muss man hier nicht, einfach Feld Name* ausfüllen.

von jochen (Gast)


Lesenswert?

Hallo Peter,

Das Beispiel aus der WinAVR Package kenne ich, dort wird aber "nur"
beschrieben wie man ein EEPROM lesen/schreiben kann. Wenn ich jetzt
etwas anderes wie z.B. ein Temp-Fühler (DS1631) ansprechen will muss
ich den Code umschreiben. Deshalb hab ich die Library gemacht in der
halt alle Funktionen allgemein vorhanden sind und für jedes Problem /
Baustein verwendet werden können.

Schönen Tag noch, der Jochen

von Florian Hrubesch (Gast)


Lesenswert?

Hi Jochen,
ich will deinen "Erfolg" ja nicht schmälern aber ich finde es ganz
schön hart das Codebeispiel aus dem Atmega8 Datasheet praktisch
abzuschreiben. Du hast dir ja noch nicht mal die Mühe gemacht das ganze
mit Interrupts zu Programmieren.
cu Flo

von jochen (Gast)


Lesenswert?

Tach Flo,

es war ja auch hier nie die Rede davon das ich was erfunden habe oder
so. Ich hab einfach aus den Beispielen des Datenblatts eine Library
zusammengbastelt mit der man die Funktionen des TWI einfach nutzen
kann.
Da ich kein Geld und kein garnichts dafür will weiß ich nicht was Dein
Problem ist. Es ist ja jedem selbst überlassen ob er die Library
benutzt oder nicht.

Gruß, der Jochen

von Tobias Breckle (Gast)


Lesenswert?

weiss auch nicht was ihr für ein problem habt.
ich hab genau sowas gesucht, da ich mit dem datenblatt große probleme
hatte.
auf jedenfall funktioniert die library astrein mit meinem DS1621.
danke @ jochen!

von Jochen (Gast)


Lesenswert?

Das ist doch mal schön zu hören.

Grüße, der Jochen

von Hans (Gast)


Lesenswert?

UART lib für at90s und die meisten megas hab ich übrigens komplett mit
ints... falls einer braucht einfach mailto:wilhe_jo@bulme.at

ich habs mit den meisten 90s typen mega 16,32 und 128 am laufen (128
mit beiden uarts) immer die gleichen funktionsnamen halbwegs
dokumentiert...

ich muss mir das aber nochmal anschaun da man da sicher was
vereinfachen kann ... ich schalte jetzt nur über den präprozessor die
einzelnen funktionen hin und her und das sollte doch eigentlich auch
einfacher zu lösen sein... vor allem übersichtlicher wärs dann...

TWI lib mit ints könnte ich mal schreiben...aber nicht vor februar.. zu
viel arbeit bis dahin...

73 de oe6jwf

von Manuel (Gast)


Lesenswert?

Schade toter Link!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.