Forum: Mikrocontroller und Digitale Elektronik Software I2C -> ATMEL


von Jan H. (janiiix3)


Angehängte Dateien:

Lesenswert?

Moin Moin,

kann sich jemand mal die beiliegende ( tolles Wort.. ) Bibliothek 
anschauen, ich werde das Gefühl nicht los, dass irgendwas vergessen 
wurde.

Leider kann ich aktuell nicht wirklich damit "I2C" sprechen. Mit meiner 
Hardware Variante hingegen ohne Probleme.

Habe vor mir ein Testboard mit einer LED die eigentlich leuchten sollte 
( wie gesagt, mit dem Hardware Interface klappt alles ).

SCL & SDA schalten auch hin und her ( bei der Software Variante.. )

Vill. sieht ja jemand direkt was?!

von Oliver S. (oliverso)


Lesenswert?

Irgendwelche unbekannten Fehler in irgendwelcher unbekannte Software 
eines anderen, ebenso unbekannten Autors zu suchen, ist schon sehr 
masochistisch. Dazu noch ohne das Programm, was bei dir nicht 
funktioniert.

Wer sollte sich das freiwillig antun?

Oliver

von Soft Leser (Gast)


Lesenswert?

Oliver S. schrieb:
> Wer sollte sich das freiwillig antun?

Finden sich immer ein paar die das mögen, auch wenn die
Software noch so schräg daherkommt.

Mir tut schon der Prozessor leid der dauernd bei jedem
Pippifax-Zugriff sich einen Pointer erst zusammenrechnen muss.

von Jan H. (janiiix3)


Lesenswert?

Soft Leser schrieb:
> Oliver S. schrieb:
>> Wer sollte sich das freiwillig antun?
>
> Finden sich immer ein paar die das mögen, auch wenn die
> Software noch so schräg daherkommt.
>
> Mir tut schon der Prozessor leid der dauernd bei jedem
> Pippifax-Zugriff sich einen Pointer erst zusammenrechnen muss.

Ich bin nicht perfekt die Software auch nicht. Ich bin dabei was zu 
lernen.
Ist der Zeiger zugriff, deutlich aufwendiger als alles andere?

von Jim M. (turboj)


Lesenswert?

Jan H. schrieb:
> kann sich jemand mal die beiliegende ( tolles Wort.. ) Bibliothek
> anschauen, ich werde das Gefühl nicht los, dass irgendwas vergessen
> wurde.

Kannste unbesehen wegwerfen.

Wenn ich den Code richtig verstehe konfiguriert die Lib als Erstes die 
Portpins auf Ausgang und High - was man bei I²C niemals tun darf, denn 
nur die Pullups dürfen den Bus nach "oben" ziehen.

Das dann auch niemand nachschaut ob die Pins überhaupt den erwarteten 
Pegel haben, fällt danach nicht mehr ins Gewicht. Stichwort: Clock 
Stretching.

Wenn man beim AVR Soft I²C machen will, setzt man die Port Bits auf 0 
und steuert den Ausgang mit dem DDR Register: Eine 1 setzt das I²C 
Signal auf 0 (null) und eine 0 via externem Pullup auf high.

von Jan H. (janiiix3)


Lesenswert?

Jim M. schrieb:

> Wenn man beim AVR Soft I²C machen will, setzt man die Port Bits auf 0
> und steuert den Ausgang mit dem DDR Register: Eine 1 setzt das I²C
> Signal auf 0 (null) und eine 0 via externem Pullup auf high.

Das heißt ich definiere die Ausgänge mit dem DDRx auf Eingang also 
lösche die jeweiligen Bits.

Dann steure ich die Pins komplett mit dem DDRx Bits, wie Du schon 
beschrieben hattest.

Das habe ich noch nicht gewusst. Wieder etwas neues gelernt ;)

von TK (Gast)


Lesenswert?

> Das habe ich noch nicht gewusst. Wieder etwas neues gelernt ;)

Spätestens JETZT solltest Du Dir mal die Dokumentation zum IIC 
durchlesen und verstehen - dabei lernt man nämlich am meisten!

Gruß
TK

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.