mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Hilfe bei I2C & SRF10 auf AVR


Autor: TheMason (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leuts,

ist mir ein bissl peinlich, aber ich habe gerade eine leichte Blockade 
bzgl. Software I2C Master auf einem AVR (ATmega16).
Ich habe mir ein SW I2C Master geschrieben um ein SRF10 Modul auszulesen 
bzw. anzusteuern. Aber das Modul reagiert leider nicht. Ich bekomme noch 
nichtmal ein Acknowledge des Moduls (per bI2CheckAddress).

Mein Hauptprogramm sieht so aus :

void main (void)
{
  vLCDInit();
  vI2CInit();

  while (1)
  {


    vLCDSetPos (13, 0);
     if (bI2CCheckAddress (0xe0, 0)) { vLCDWriteLine ("Ok"); } else { 
vLCDWriteLine ("NOk"); }


    for (ucC = 0; ucC < 64; ucC ++)
    {
      _delay_loop_2 (10000);
    }

    ucCount++;
    vLCDSetPos (13, 1);
    vLCDWriteHex (ucCount);


  }
}


Hat jemand ne idee was ich falsch mache ? Falsche Makros für die 
Port-Pinne  ? Timing kanns nicht sein da ich ein recht großzügiges delay 
habe.
Falsche Modul-Adresse kanns auch nicht sein da mir das Modul adresse E0 
anzeigt.
Mein SDA & SCL liegen auf PORTA.0 und PORTA.1.

Muß man den AD-Wandler separat abschalten (oder wegfusseln) um die Port 
Pins zu nutzen ?

Weiß leider nicht mehr so recht was ich falsch gemacht haben könnte und 
habe gerade auch kein Oszi zur Hand. Wär schön wenn mir jemand helfen 
kann.

Gruß
Rene

Autor: TheMason (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
einen fehler habe ich gefunden. pucData++ fehlte, das tut aua. das modul 
macht jetzt messungen. allerdings bekomme ich immer noch kein ack.
kann das an der implementierung des i2c-slaves des srf10 liegen ? kann 
mir da jemand erfahrungswerte mitteilen ?

Autor: TheMason (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
so !

hab das modul zum laufen bekommen und es spuckt auch einigermassen 
vernünftige werte aus (mit dem lineal und ner kippenschachtel gemessen).
allerdings habe ich das problem das das modul wenn ich es auf meinem 
schreibtisch liegen habe und den abstand zur decke messen will nur einen 
wert von 30-60 cm anzeigt. ich habe schon mit einigen verstärkungswerten 
experimentiert aber es kommen immer werte < 1m heraus. das kann ja nicht 
sein.
hat jemand eine idee woran das liegen kann ?
wäre schön wenn sich jemand meldet der erfahrung mit einem solchen modul 
hat.

gruß
rene

Autor: Bastian A. (bastian_a)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi.

Könntest du so nett sein und den Code nochmal komplett uppen.
Suche etwas an dem ich mich orientieren kann.
Vielen Dank

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.