-         

Ergebnis 1 bis 2 von 2

Thema: Problem mit SRF04 und 90S2313

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    27.12.2003
    Beiträge
    24

    Problem mit SRF04 und 90S2313

    Anzeige

    Hallo
    Ich habe eine problem mit einenSRF04 und einen 90S2313.
    Denn nächste code habe ich gesammelt und sol eine L293d steuern.

    Hoffe ihr könnt mir helfen.

    M.f.g.
    Jack
    Angehängte Dateien Angehängte Dateien

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.06.2004
    Beiträge
    1.941
    habe in fastavr-basic eine einfache routine ohne timer und ohne pulse für den srf04 zum testen geschrieben, ich wollte einmal nach dem datenblatt gehen mit den zeiten und es geht, jetzt weiss ich auch wie ein sfr04 funktioniert.
    geht bis auf 3mm genau. musst diese in einer sub packen und am anfang interrupt disable und am ende wieder interrupt enable.
    Code:
    $Device= m16      
    $Stack = 32      
    $Clock = 8  
    $Baud  = 19200
    $Source= On   
    
    Dim entfernung As Integer     
    
    DDRD.7=0 ' eingang
    DDRD.6=1 ' ausgang
    
    Enable Interrupts
    
    Do
    
    PORTD.6=1
    WaitUs 2
    PORTD.6=0
    WaitUs 38
    entfernung=0
    While PIND.7=1
     Incr entfernung
    Wend
    Print entfernung
    WaitMs 150
    
    Loop
    oder von Bascom :
    Code:
    $regfile = "m16def.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 100
    
    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


    noch mal eine in fastavr-basic , wurde 1 zu 1 von winavr-c umgesetzt mit timer1 und TCCR1B :
    Code:
    $Clock = 8  
    $Baud  = 19200
    $Timer1 = Timer,Prescale=1
    $Source= On   
     
    Dim entfernung As Word 
    Dim starttimer1 As Byte 
    
    Const Prescale_1 = 9
    
    DDRD.7=0 ' eingang
    DDRD.6=1 ' ausgang
    
    Enable Interrupts
    
    StartTimer1=Prescale_1
    
    Do
    
    PORTD.6=1
    WaitUs 2
    PORTD.6=0
    WaitUs 24
    Timer1=0
    TCCR1B=StartTimer1	
    While PIND.7=1
    Wend
    entfernung=Timer1
    Print entfernung
    WaitMs 150
    
    Loop
    mfg pebisoft

Berechtigungen

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