PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mega32 und SRF04



juka
18.01.2006, 18:20
Hallo Leute,
hat jemand einen einfachen Bascom-Code damit ich meinen SRF04 testen kann ? ich habe einen Mega32 mit 16MHz Quartz. Die Listings die ich gefunden habe sind meistens für Mega16 mit 8Mhz . Grundsätzlich funktioniert das bei mr auch, nur die Werte sin ungenau und sehr sprunghaft.
Danke

Juka

Vitis
18.01.2006, 22:02
ob er mit 8 oder 16 mhz getaktet wird ist sekundär.

ich würd eher auf Fehler in der Platzierung oder äussere Einflüsse
setzen

juka
19.01.2006, 06:15
Hallo Vitis,

wird denn der Takt von 16 auf 8 intern geändert wenn der externe Quartz bei 16 Mhz bleibt ? ich hab das Gefühl die Anzeige spielt nochmehr "verückt" wenn ich das ändere. Ich habe den SRF04 zb. 20cm vor einer Wand aufgestellt, und die Werte dann geändert, die Anzeige ändert sich zwar, aber ziemlich wirr ohne erkennbare Logig. Mit einem anderen Prozessor (Basicx01) läuft er einwandfrei.
Danke fallst du noch einen Tipp hast

Juka

super_castle
19.01.2006, 06:53
probier das mal aus:

$regfile = "m32def.dat"
$crystal = 8000000
$baud = 19200

Declare Function Ultrasonic_re() As Integer
Declare Sub Initialize_ultrasonic_re


Dim Ultra_daten_re As Integer
Enable Interrupts

Call Initialize_ultrasonic_re

Do

Ultra_daten_re = Ultrasonic_re()

Print Ultra_daten_re

Waitms 255

Loop

Sub Initialize_ultrasonic_re
Config Pind.6 = Output
Config Pind.7 = Input
End Sub

Function Ultrasonic_re() As Integer
Portd.6 = 0
Pulseout Portd , 6 , 10
Pulsein Ultrasonic_re , Pind , 7 , 1
End Function

ps: mit der 10 hinter pulseout spiel mal ein bisschen nach oben oder unten.
Castle

juka
19.01.2006, 08:05
Hallo super_castle

werde ich probieren, mit dem Wert hinter Puleout habe ich schon experimentiert, aber noch nicht mit Waitms 255. Vielleicht klappt es jetzt ja endlich.

Danke Juka

juka
20.01.2006, 17:43
Hallo,

mit dieser Eistellung habe ich wenigstens eine "ruhige" Anzeige, aber : bei 10cm Abstand von der Wand Anzeige 67 bei 20 cm Anzeige 123 und bei 30 cm Anzeige 42 ?????
Ist die Länge der Anschlußleitung zum SRF04 wichtig ? (bei mir ca. 15 cm)
Liegt das Problem bei Bascom ?
wie ist das wenn ich gleich auf C umsteige ?
habt Ihr denn keine Probleme mit dem Sensor ??

Gruß Juka

super_castle
21.01.2006, 11:10
du musst mit den wert 10 bei pulsout ein bisschen rumexperimentieren.
ps: Anzeige 42 ????? , kann auch daher kommen das irgendein gegenstand den du nicht so davor kennst von dem ultra refektiert wird.

es liegt auch an bascom .
ich progge mit fastavr-basic und winavr-c

Castle

juka
21.01.2006, 15:55
Hallo super_castle,

Problem gelöst, habe was auf dem Forum von Jörg gefunden. Man muß diesen Wert noch umrechnen für cm.. (wegen ev Fehler bei der Floating-Point Berechnung) schlägt er diesen Weg vor : mit 10 zu multiplizieren und durch 62 zu teilen. Ich hab's gemacht und es läuft ENDLICH und supergenau.
PS. den Wert bei Pulseout habe ich auf 20 erhöht.

Danke an alle die geholfen haben

JuKa

super_castle
21.01.2006, 17:02
"ob er mit 8 oder 16 mhz getaktet wird ist sekundär.
ich würd eher auf Fehler in der Platzierung oder äussere Einflüsse"

stimmt nicht , du musst bei pulseout die zahl ändern, bei 16mhz 20 und bei 8mhz 10.

Castle