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


von TheMason (Gast)


Angehängte Dateien:

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

von TheMason (Gast)


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 ?

von TheMason (Gast)


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

von Bastian A. (bastian_a)


Lesenswert?

Hi.

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

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.