- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 5 von 5

Thema: gößer / Kleiner Vergleich mit C515C-L

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    26.07.2006
    Ort
    nähe Rottweil
    Alter
    40
    Beiträge
    240

    gößer / Kleiner Vergleich mit C515C-L

    Anzeige

    Praxistest und DIY Projekte
    Hallo

    Habe da ein Problem, ich soll für die Schule einen analogen Wert einlesen und mit dem AD Wandler wandeln. Soweit so gut, das Funktioniert auch schon. Jetzt soll ich den Wert je nachdem ob er größer als 2,5V ist ein P0rt 5 oder kleiner als 2,5V an Port 4 augeben? wie bekomme ich das am besten hin? Also wie gesagt, die Wandlung funktioniert schon und ich kann den Wert auch an einem Port ausgeben.
    Nur das mit größer oder kleiner 2,5V fehlt mir noch und ich hab echt keine Idee...

    Wäre euch sehr dankbar für schnelle Hilfe!!

    Grüße!!!

    Bean

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    20.08.2004
    Ort
    Unterschleissheim
    Beiträge
    333
    Ich nehme an, dass du in Assembler programmierst. Ich kenne die Asemblersyntax des C515 nicht, aber grundsätzlich wird entweder verglichen oder subtrahiert. Bei der Subtraktion wird das zero- und das carry-Flag beeinflusst. Dann gibts einen bedingten sprung. So kann man das lösen.

    gerhard

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    08.10.2004
    Ort
    ferd. Waldmüllerg. 7/2
    Alter
    40
    Beiträge
    456
    Erlich gesagt, kenn ich nciht einmal den Chip selber . Doch wenn du in Assembler programmierst und der Chips selber über kein Befehl für einen Vergleich verfügt (ansonsten würdest du, denk ich mal, nicht fragen), ist es eigentlich programmiertechnisch nicht sehr schwierig, man muss nur, wie schon gunzelg gesagt hat, die Substraction und dessen Beeinflussung des Flag-Registers ausnutzten.

    Hier hab ich einen Link, wo mMn sehr gut erklärt wird, wie man so einen Vergleich anstellt, auch wenn der Code für die µC der PIC16-Reihe geschrieben ist.

    Den ganzen Vorgang könnte man so in Pseudocode stillisieren:
    -) lade den Wert für 2,5V in einen Register A
    -) subtrahiere diesen von dem Messergebniss, speichere das Ergebniss wieder in Register A (damit das Messergebniss nicht verfälscht wird)
    -) Schau den Carry-Flag an, ist der gesetzt, ist das Ergebnis < 2,5V.

    Anschließend musst du in deinem Programm nur noch einen bedingten Sprung einbauen, der bei einem gesetzten Carry-Bit aktiviert wird.

    MfG
    Mobius

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.12.2005
    Ort
    Euskirchen-Großbüllesheim
    Alter
    75
    Beiträge
    2.063
    Der 515 sollte einen CMP-Befehl haben, der nach einer Subtraktion das Z- und C-Flag verändert, die Register-Werte jedoch nicht.
    Wenn die 2,5V die Hälfte der zu messenden Spannung sind, also 5V, dann kann auch das höchstwertige Bit der AD-Wandlung zum Verzweigen genutzt werden; das ist ab 2,5V auf 1.
    Nach dem Verzweigen wird das gewünschte Port gesetzt und evtl. das andere Port gelöscht.
    MfG Karl-Heinz
    HobbyElektronik hier klicken ....

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    26.07.2006
    Ort
    nähe Rottweil
    Alter
    40
    Beiträge
    240
    Hallo

    Danke für die Antworten. Ich werde das mal ausprobieren, aber ich denke daß ich das jetzt hinbekomme. Also vielen Dank nochmal! Ist übrigens ein Prozessor von Infineon. Für alle die den nicht kennen...

    Schönes Wochenende noch!!

    Grüße!!
    Bean

Berechtigungen

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

Solar Speicher und Akkus Tests