Archiv verlassen und diese Seite im Standarddesign anzeigen : Mega32 und SRF04
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
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
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, 07: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
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
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, 12: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
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, 18: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
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.