-         

Ergebnis 1 bis 4 von 4

Thema: Grenzwertauswertung

  1. #1
    Mike 22
    Gast

    Grenzwertauswertung

    Anzeige

    Hallo @ all,

    muss eine Grenzwertauswertung wie z.B. Spannungsüberwachung mit anschliessender Ausgabe durch LED Blinken realisieren.Spannung wird über RA0 eingelesen.


    z.B. Spannungsbereich

    >14V 8 x blinken
    13,5 - 14V 7 x blinken
    13 -13,5V 6 x blinken

    usw.

    Wie würdet Ihr sowas programmieren???? Bitte gebt mir mal einen Tip.

    Gruß

    Mike 22

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Pseudo code, wenn das hilft
    if (V < 13) goto tschüss
    6xBlinken
    if (V >= 13,5) 1xBlinken
    if (V > 14) 1xBlinken
    tschüss:
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #3
    Gast
    Hallo Robert,
    das ganze wird in Assembler programmiert ist aber letzendlich egal. Wie realisierst Du die Routine wenn z.B. die Spannung 6 V ist?? laut deiner Pseudo Routine ist Sie in der ersten Zeile erfüllt und geht zu Tschüss.
    Wäre aber nicht korrekt, da es im jeweilige Fenster sein muß also z.B. 6 - 7 V 4 Blinks............oder habe ich das falsch verstanden???????

    Gruß

    Mike 22

  4. #4
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Ah so, ich hab gedacht unter 13 V is nix. State-of-the-art wäre natürlich, aus einer Tabelle die Blinkanzahl zu holen und dann zu blinken.

    Wenn blinken und Spannung linear abhängig sind, also z.B. je 0.5 V einmal blinken
    Ich würd' aber eine simple Schleife machen, wo ich vom Spannungswert immer wieder 0.5 V abziehe. Bei negativ (Carry = 0 ! =PIC-Schweinerei) hör ich dann auf.
    (0.5 müßt du natürlich auf eine ADC-Zahl umwandeln (511 / max volt), das kann aber schon der Compiler machen

    Isses nicht linear, eigentlich die gleiche Schleife, aber nicht gleich blinken, sondern mitzählen. Mit diesem Wert dann in die berühmte PIC-RETLW-Tabelle
    Code:
                  movlw  nn       ; in w steht die anzahl 0.5 V Werte
                  call       TAB
                  w-mal blinken
                   ....
    
    TAB:
                    addwf	PCL, f	; add to PC
                    retlw	blinkzahl_00_0
                    retlw	blinkzahl_00_5
                    retlw	blinkzahl_01_0
                    retlw	blinkzahl_01_5
                  ...........
                    retlw	blinkzahl_14_0
    Hilft das ?

    EDIT: Beim PIC sind Schleifen zwar elegant, aber oft gar nicht effektiv.
    Es kann sein, daß du mit Spaghetti-Code sogar besser dran bist
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

Benutzer, die dieses Thema gelesen haben: 0

Derzeit gibt es keine Benutzer zum Anzeigen.

Berechtigungen

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