-         

Ergebnis 1 bis 9 von 9

Thema: Mega32 und SRF04

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    23.01.2004
    Ort
    Kiel
    Alter
    68
    Beiträge
    19

    Mega32 und SRF04

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    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

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    43
    Beiträge
    2.240
    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
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    23.01.2004
    Ort
    Kiel
    Alter
    68
    Beiträge
    19
    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

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    11.11.2005
    Beiträge
    321
    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

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    23.01.2004
    Ort
    Kiel
    Alter
    68
    Beiträge
    19
    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

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    23.01.2004
    Ort
    Kiel
    Alter
    68
    Beiträge
    19
    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

  7. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    11.11.2005
    Beiträge
    321
    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

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    23.01.2004
    Ort
    Kiel
    Alter
    68
    Beiträge
    19
    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

  9. #9
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    11.11.2005
    Beiträge
    321
    "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

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •