Archiv verlassen und diese Seite im Standarddesign anzeigen : Srf02 an C-control Mega 128
Ich hab mir neulich den srf02 zugelegt und ordnungsgemäß am Applicationboard (I2C) angeschlossen. Ich hab´n ganz simples Programm in Compact C geschrieben, dass eigendlich nur mal den Bus zum laufen bringen soll. Der Compiler bemerkt keinen Fehler, aber die Softwear hängt sich dann immer auf...hat jemand ne Idee???
Gruß
Ich hab jez nochmal nachgemessen: zwischen den I2C-Ports fließt kein Strom, ich vermut mal, dass der SEnsor nen Bestimmten startbefehl oder sowas braucht...
Ich brauch dringend nen Tipp, hab fast alles ausprobiert...
Bei mir will der SRF nicht so richtig; ich schreibe ihm die Adresse, das Register, den Befehl aber ich bring ihn nicht mal zum messen... Hat überhaupt schon mal jemand gepack, einen Baustein der c-control pro serie mit einem SRF (über I2C, nicht die Sensoren die über PWM funktionieren) zum messen zu bringen?
Freu mich über JEDEN Tipp
Gruß
Tenorm
hätte es nicht ein thread auch getan?
Hubert.G
25.02.2008, 20:22
Wenn sich im I2C die Software aufhängt, dann wartet sie zumeist auf eine Antwort. Probier mal einen anderen I2C Baustein, RAM oder so etwas, ob du den zu laufen bringst.
Da haperts ja...die meisten Bausteine (zumindest die von Conrad) laufen, ohne übertreibung, perfekt und zwar ohne dass man sich tagelang hinsetzt und dem Modul eine Antwort zu entlocken versucht. Langsam glaub ich, dass das garnicht gehen kann. Vielleicht ist das Programmcode und der SRF einfach nicht füreinander bestimmt.
Freu mich auf weitere vorschläge :)
Tenorm
Robotniks
26.02.2008, 21:34
Hallo Tenorm,
hast du die I2C 2K2 Pullup Widerstände mit rein ?
Wie sieht dein Code aus?
Nein, aber ich habe die internen Pullups aktiviert, hier mein Code:
void main(void)
{
I2C_Init(I2C_100kHz); // I2C-Schnittstelle mit 100kHz initialisieren
Port_Write(24,1); // Pullup an Port D0 ein
Port_Write(25,1); // Pullup an Port D1 ein
while(true)
{
I2C_Start();
I2C_Write(0xE0); // Adresse
I2C_Write(0x00); // Register
I2C_Write(0x51); // Befehl
}
}
Danke schon mal im vorraus
Tenorm
Robotniks
02.03.2008, 00:20
Hi,
die internene Pullups haben einen Widerstand zwischen 20 und 50K das kann nicht gehen. Du benötigst 2k2 ! Also extern einbauen....
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.