- Labornetzteil AliExpress    Werbung      
Ergebnis 1 bis 10 von 10

Thema: C Programmierung Sensoren

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Max Web
    Gast
    Hallo,

    wobei aber auch bedeutsam sein kann, wie die Operatorpreference bei Matlab ist, im Vergleich zu anderen Programmiersprachen:
    hat && eine höhere Priorität als || ?
    Oder wird einfach von li nach rechts abgearbeitet?
    Völlig berechtigter Hinweis, da es wirklich Sprachen geben soll, die das anders handhaben.

    Zur Reihenfolge der Operatoren in Matlab: https://www.mathworks.com/help/matla...recedence.html , insbesondere:
    MATLAB always gives the & operator precedence over the | operator. Although MATLAB typically evaluates expressions from left to right, the expression a|b&c is evaluated as a|(b&c). It is a good idea to use parentheses to explicitly specify the intended precedence of statements containing combinations of & and |.
    Reihenfolge der Operatoren in C: https://en.cppreference.com/w/c/lang...tor_precedence
    -> Es verhält sich in diesem Fall wie C

    daher meine Bitte, bei mehr als 2 booleschen Verknüpfungen doch besser die Klammern um jeweils ein Paar zu setzen, um es eindeutig zu machen.
    Kann ich zu 100% unterschreiben. Das ist guter Stil und diesen sollte man sich so früh wie möglich aneignen.

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.690
    Ich weiß auch nicht, zu welcher Sprache die Syntax genau gehört, aber intuitiv habe ich das mal beispielhaft umgeschrieben. In der Hoffnung, dass das der gültigen Syntax entsprechen wird. Hoffe, dass Blockbildung mit '{' + '}' funktioniert.

    Aufgabe: ich müsste etwas einbauen das wenn right = 1; ist für eine gewisse zeit left nicht ausgeführt werden kann. (und umgekehrt - für geradeaus, soll das auch gelten)


    Code:
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    % S1 = Sensor mitte vorne
    % S2 = Sensor links vorne
    % S3 = Sensor links hinten
    % S4 = Sensor rechts hinten
    % S5 = Sensor rechts vorne
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    
    function [forward, right, left, backward] = Shieldbot(S1, S2, S3, S4, S5)
    
        %% init
        forward = 0;
        right = 0;
        left = 0;
        backward = 0;
        c1 = 0;
        c2 = 100;
        
        %% "intelligence"
        
               if (c1==0 && (S2 || S1 && S2))
                    {right = 1; c1 = c2;}
               elseif (c1==0 && (S5 || S1 && S5))
                    {left = 1; c1 = c2;}
               elseif(c1==0) 
                    forward = 1;
               end
    
               if (c1>0) c1 = c1-1;
    
    end

  3. #3
    HaWe
    Gast
    (S2 || S1 && S2)
    macht keinen Sinn, denn es ist aussagenlogisch nichts anderes als S2 alleine, egal wie S1 ist.
    Das gleiche gilt für
    (S5 || S1 && S5),
    denn das ist nichts anderes als S5 alleine.

    Ich vermute daher, dass der gesamte MATLAB code auf noch zu wackeligen Beinen steht und erst einmal neu geschrieben werden müsste.

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.690
    Ja, da hast Du recht. Wenn man das kürzt kann man jeweils den gesamten Ausdruck weglassen bzw. muss man th. nur auf S1 bis S4 prüfen und verzweigen.
    Aber keine Ahnung, was sich der Urheber dabei gedacht hat. Bild  

    Ansonsten korrespondiert ja offenbar S1 mit forward, S2 mit right, S3 mit left und S4 mit backward. Also: if(s1)forward=1;if(s2)right=1;if(s3)left=1;

    Mal davon abgesehen müsste man die Variablen forward, right, left wieder löschen, wenn jeweils eine andere gesetzt wird. Es sei denn die werden woanders auf 0 gesetzt.
    Geändert von Moppi (12.08.2018 um 11:05 Uhr)

Ähnliche Themen

  1. SDI-12 für Sensoren
    Von senmeis im Forum Sensoren / Sensorik
    Antworten: 0
    Letzter Beitrag: 29.02.2012, 10:02
  2. was für sensoren?????
    Von gorgo921 im Forum Sensoren / Sensorik
    Antworten: 9
    Letzter Beitrag: 06.07.2009, 22:54
  3. US Sensoren
    Von Nr. 5 im Forum Sensoren / Sensorik
    Antworten: 1
    Letzter Beitrag: 23.02.2007, 13:03
  4. Problemchen mit der programmierung mehrerer sht 11 sensoren
    Von Tom K im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 22
    Letzter Beitrag: 19.01.2006, 02:31
  5. Programmierung von Sensoren in MPLAB
    Von MastaM im Forum PIC Controller
    Antworten: 3
    Letzter Beitrag: 29.05.2005, 18:19

Berechtigungen

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

    Werbung      12V Akku bauen