Librarie für das TWI des atmega8

Gast #79716
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
Gast #79718
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
Gast #79719
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 ?
Gast #79720
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.
Gast #79723
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
Gast #79724
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
Gast #79725
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
Gast #79728
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren