- LiFePO4 Speicher Test         
Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 29

Thema: Timer, IR-Sensor !?!?!?!

  1. #11
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.12.2005
    Ort
    Nähe Mainz
    Alter
    32
    Beiträge
    3.467
    Anzeige

    Praxistest und DIY Projekte
    Was für fehlermeldungen?

    Ich habe den Code nochmal an zwei Stellen bearbeitet:
    Code:
    $regfile = "m8def.dat"
    $crystal = 16000000
    
    Dim Result As Word
    Dim Channel As Byte
    
    Config Pinb.1 = Output
    Config Pinb.2 = Output
    Config Pinc.0 = Output
    Config Pinc.1 = Output
    Config Pinc.2 = Output
    Config Pinc.3 = Output
    Config Pinc.4 = Input
    
    Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 1
    
    
    Config Adc = Single , Prescaler = Auto , Reference = Avcc
    
    Compare1a = 1
    Compare1b = 1
    Portc.0 = 1
    Portc.1 = 0
    Portc.2 = 1
    Portc.3 = 0
    
    Start Adc
    
    Do
    Result = Getadc(4) ; Result
    
    If
    Result > 1000 Then
    Portc.0 = 0
    Portc.1 = 1
    Portc.2 = 0
    Portc.3 = 1
    
    Wait 1
    Loop
    
    End
    In der Zeile "Result > 1000" ist es nicht sinnvoll = zu verwenden, da er nur bei diesem Wert hinter fährt. Von daher ist es sinnvoll " > "einzusetzten. Dann fährt er bei ganz nahen Gegenständen zurück.

    jon
    Nice to be back after two years
    www.roboterfreak.de

  2. #12
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    05.09.2006
    Beiträge
    644
    Hi,
    habe die Fehlermeldungen jetzt dazu geschrieben, in meinem vorigen Post.
    Und bei dem Prog. jetzt hat sich die letzte Fehlermeldung geändert:

    Error: 1 Line: 33 Unknown statement [Result > 1000 Then]

    Viele Grüße und vielen Dank
    mfg Jonas

  3. #13
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.12.2005
    Ort
    Nähe Mainz
    Alter
    32
    Beiträge
    3.467
    Code:
    $regfile = "m8def.dat"
    $crystal = 16000000
    
    Dim Result As Word
    
    Config Pinb.1 = Output
    Config Pinb.2 = Output
    Config Pinc.0 = Output
    Config Pinc.1 = Output
    Config Pinc.2 = Output
    Config Pinc.3 = Output
    Config Pinc.4 = Input
    
    Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 1
    
    
    Config Adc = Single , Prescaler = Auto , Reference = Avcc
    
    Compare1a = 1
    Compare1b = 1
    Portc.0 = 1
    Portc.1 = 0
    Portc.2 = 1
    Portc.3 = 0
    
    Start Adc
    
    Do
    Result = Getadc(4) ; Result
    
    If
    Result > 1000 Then
    Portc.0 = 0
    Portc.1 = 1
    Portc.2 = 0
    Portc.3 = 1
    End if
    
    Wait 1
    Loop
    
    End
    Habe den Code nochmal bearbeiten müssen.

    Könntest du die Zeilen, die in der Fehlermeldung angegeben sind, mal markieren?
    Ich krieg das mit dem Durchzählen nicht so ganz hin.

    jon
    Nice to be back after two years
    www.roboterfreak.de

  4. #14
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    05.09.2006
    Beiträge
    644
    Hi, vielen Dank,
    also hier die reihen:

    F.:Error: 31 Line: 30 Infalid datatyp [0]
    Result = Getadc(4) ; Result

    F.:Error: 93 Line: 30 Variable not dimensioned [0-> 0]
    Result = Getadc(4) ; Result

    F.:Error: 1 Line: 32 Unknow Statement [IF]
    If

    F.:Error: 1 Line: 33 Unknown statement [Result > 1000 Then]
    Result > 1000 Then


    Viele Grüße und vielen Dank
    mfg Jonas

  5. #15
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.12.2005
    Ort
    Nähe Mainz
    Alter
    32
    Beiträge
    3.467
    Code:
    $regfile = "m8def.dat"
    $crystal = 16000000
    
    Dim Result As Word
    
    Config Pinb.1 = Output
    Config Pinb.2 = Output
    Config Pinc.0 = Output
    Config Pinc.1 = Output
    Config Pinc.2 = Output
    Config Pinc.3 = Output
    Config Pinc.4 = Input
    
    Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 1
    
    
    Config Adc = Single , Prescaler = Auto , Reference = Avcc
    
    Compare1a = 1
    Compare1b = 1
    Portc.0 = 1
    Portc.1 = 0
    Portc.2 = 1
    Portc.3 = 0
    
    Start Adc
    
    Do
    Result = Getadc(4)
    
    If
    Result > 1000 Then
    Portc.0 = 0
    Portc.1 = 1
    Portc.2 = 0
    Portc.3 = 1
    End if
    
    Wait 1
    Loop
    
    End
    Probier es mal so aus.

    jon
    Nice to be back after two years
    www.roboterfreak.de

  6. #16
    Erfahrener Benutzer Roboter Genie Avatar von Michael
    Registriert seit
    17.01.2004
    Ort
    Karlstadt
    Alter
    55
    Beiträge
    1.258
    Hallo minium, Hallo Jon,
    Result = Getadc(4) ; Result
    das Semikolon und der Text dahinter gehören nicht dahin. Kommentare werden immer mit ' eingeleitet.
    If
    Result > 1000 Then
    gehört in eine Zeile:
    If Result > 1000 Then

    Weiterhin ist zu erwarten, daß ein Wert von > 1000 nie erreicht wird.
    Die Sharp-Sensoren haben ca. eine maximale Ausgangsspannung von 2,6V. Das entspricht etwa einem AD-Wert von 530.
    Ich würde für die IF Abfrage einen Wert von ca 350 vorschlagen, das entspricht bei einem Sensor GP2D12 etwa 15cm.
    Gruß, Michael

  7. #17
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.12.2005
    Ort
    Nähe Mainz
    Alter
    32
    Beiträge
    3.467
    Zitat Zitat von Michael
    Result = Getadc(4) ; Result
    das Semikolon und der Text dahinter gehören nicht dahin. Kommentare werden immer mit ' eingeleitet.
    In meiner letzten Programmversion habe ich das auch verbessert.

    Zitat Zitat von Michael
    If
    Result > 1000 Then
    gehört in eine Zeile:
    If Result > 1000 Then
    Hab ich irgendwie immer übersehen

    Zitat Zitat von Michael
    Weiterhin ist zu erwarten, daß ein Wert von > 1000 nie erreicht wird.
    Die Sharp-Sensoren haben ca. eine maximale Ausgangsspannung von 2,6V. Das entspricht etwa einem AD-Wert von 530.
    Ich würde für die IF Abfrage einen Wert von ca 350 vorschlagen, das entspricht bei einem Sensor GP2D12 etwa 15cm.
    Stimmt.
    Ich habe bei mir die Interne Reverenzspannung, weshalb bei mir das höchst bei einem ganz nahen Gegenstand 1024 ist.

    jon
    Nice to be back after two years
    www.roboterfreak.de

  8. #18
    Erfahrener Benutzer Roboter Genie Avatar von Michael
    Registriert seit
    17.01.2004
    Ort
    Karlstadt
    Alter
    55
    Beiträge
    1.258
    Hallo Jon,
    In meiner letzten Programmversion habe ich das auch verbessert.
    ich war etwas länger am Schreiben, da hast du schon den nächsten Post geschickt.
    weshalb bei mir das höchst bei einem ganz nahen Gegenstand 1024 ist.
    der Wertebereich des AD-Wandlers geht über 1024 Schritte, von 0 bis 1023 !!

    Gruß, Michael

  9. #19
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    05.09.2006
    Beiträge
    644
    Hi, vielen Dank,
    jetzt habe ich ein funktionierendes Programm. Also vielen Dank für eure Hilfe.


    Viele Grüße
    mfg Jonas

  10. #20
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    05.09.2006
    Beiträge
    644
    Hallo,
    funktioniert das Prog. auch bei einem Liniensensor oder muss das dann ein ganz anderes sein (nicht Motor,.. nur der Teil mit dem Sensor) ?
    Wie müsste es ca. heisen ?

    Viele Grüße und vielen Dank
    mfg Jonas

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Berechtigungen

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

Labornetzteil AliExpress