Forum: Mikrocontroller und Digitale Elektronik Ultraschallmodul SRF08 und Bascom


von Christian (Gast)


Lesenswert?

Hallo,
ich möchte ein Ultraschallmodul SRF08 mit einen ATMEGA32 per I2C-BUs 
verbinden. Ich Benutze Bascom.

Wenn ich den Sensor anschalte, leuchtet die rote LED lang auf.
Das zeigt mir die Standard I2C-Bus Adresse E0 an.

Wenn ich nun eine Messung starte, sollte die LED kurz aufblitzen.
Da tut sich aber nix. Habe meine Hardware jetzt schon überprüft und 
sollte alles stimmen. Die 2 Datenleitungen haben jeweils 10K Pullup.

Vielleicht liegt der Fehler in meinem Code, deshalb wollte ich euch mal 
bitten, da ein Auge drauf zu werfen.

In Bascom kenne ich mich mit dem I2C-Bus nicht rehct gut aus.
Habe folgenden Beispiel-Code Verwendet.
http://www.rn-wissen.de/index.php/Sensorarten#SRF08_Programmbeispiel

Die Zeile
1
 I2cwbyte Sf08_adr_0 + 1  ' Device I2C Adresse READ!
Versteh ich ned und die wird von Bascom als Fehler angezeigt.

Nachdem die Messung ausgelöst wird, muss die LED ja kurz aufblitzen.
Also nach diesem Code müsste die LED ja was tun. Tut sie aber ned.
1
 
2
Const Sim = 0
3
#if Sim = 1
4
  $sim
5
#endif
6
7
$regfile = "m32def.dat"
8
$crystal = 16000000
9
$hwstack = 80
10
$swstack = 60
11
$framesize = 60
12
13
14
'#if Sim = 0
15
  $lib "i2c_twi.lbx"
16
  Config Scl = Porta.4
17
  Config Sda = Porta.3
18
  I2cinit
19
  Config Twi = 100000
20
'#endif
21
22
23
Const Sf08_adr_0 = &HE0             ' I2C Adresse
24
Const Sf08_c_range = 100            ' Reichweite
25
Const Sf08_c_gain = 1               ' Empfindlichkeit
26
27
28
Test1:
29
30
     I2cstart
31
     I2cwbyte Sf08_adr_0   ' Device I2C Adresse
32
     I2cwbyte 0            ' register "Trigger"
33
     I2cwbyte 81           ' Meßwert in Zentimetern
34
35
     Waitms 70

von Christian (Gast)


Lesenswert?

So habe den Fehler gefunden.
Habe zwar geschriebeen:
1
Config Scl = Porta.4
2
  Config Sda = Porta.3
Aber die Leitungen sind bei PORTC.1 und PORTC.0 geblieben.
Kann man die I2C_Bus Leitungen etwa garnicht auf andere Pins 
konfigurieren?

Da gibts doch eine Hardware-Lösung und eine Software-Lösung in Bascom 
wenn ich mich nicht irre?

von weinbauer (Gast)


Lesenswert?

exakt ...

bascom arbeitet von Hause aus mit der Soft I2C, es sei denn man bindet 
die LBX ein. Ist die LBX eingebunden muss man zwangsläufig die 
Hardware-TWI-Pins benutzen sonst geht nichts.

von weinbauer (Gast)


Lesenswert?

Den I2C kann man nur bei SoftwareTWI auf beliebige Pins legen, bei 
HardwareTWI muss man auf die entsprechenden Pins.
SoftwareTWI gibts wenn man die LBX weg lässt.

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.