- 12V Akku mit 280 Ah bauen         
Seite 3 von 3 ErsteErste 123
Ergebnis 21 bis 23 von 23

Thema: Projekt: Taschenrechner

  1. #21
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.12.2005
    Beiträge
    535
    Anzeige

    LiFePo4 Akku selber bauen - Video
    @Fo-ro,

    das mit den Overlays hast Du wirklich raffiniert und elegant ausgedacht . Auf sowas kommt man nicht so leicht!

    Als Anregung zur Verbesserung:

    Die Tastenauswertung ist vllt. besser in einer separaten Subroutine untergebracht; falls jemand mal eine Tastatur mit gemultiplexter Abfrage anschliessen will. Kann natürlich sein, dass das Programm dann nicht mehr in die 4kB passt.

    Durch die Schachtelung von "If Port_masken.taste_index = 1 Then..." und der "Select Case Taste_index"-Anweisung, entsteht eine implizite Verknüpfung zwischen den Werten von "Taste_index" und den Stellen von "Port_masken", die auf 1 gesetzt sind. Wenn jemand die Einsen in "Port_masken" verschiebt (z.B. weil er eine andere Portbelegung braucht), darf er nicht vergessen, die Wertebereiche von "Taste_index" für die einzelnen cases zu ändern. Wenn man das übersieht, speziell wenn man länger nicht mehr an dem Programm gearbeitet hat, ist das ein schwer zu findender Fehler.

    Es kann vorkommen, dass der erste Operand eine ganze Zahl ist, der zweite eine reelle. Bei Deiner jetzigen Kommabehandlung findet das Programm, wenn das Komma des Operand2 eingegeben wird, die Variable "Found.comma_op1" auf NO und nimmt dann an, das Komma gehöre zu Operand1.

    Das ist nicht als Herummäkeln gemeint, dafür ist Deine Idee mit den Overlays viel zu gut!

    @David,

    gut Ding will Weile haben . Meld' Dich einfach, wenn's weitergehen soll.

    Ciao,

    mare_crisium

  2. #22
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.113
    Zitat Zitat von mare_crisium
    Durch die Schachtelung von "If Port_masken.taste_index = 1 Then..." und der "Select Case Taste_index"-Anweisung, entsteht eine implizite Verknüpfung zwischen den Werten von "Taste_index" und den Stellen von "Port_masken", die auf 1 gesetzt sind. Wenn jemand die Einsen in "Port_masken" verschiebt (z.B. weil er eine andere Portbelegung braucht), darf er nicht vergessen, die Wertebereiche von "Taste_index" für die einzelnen cases zu ändern. Wenn man das übersieht, speziell wenn man länger nicht mehr an dem Programm gearbeitet hat, ist das ein schwer zu findender Fehler.
    Ich hatte schon mal ausprobiert, anstelle von Taste_index in taste_string die Position z.B. des "+"-Zeichens zu finden. Aber selbst mit Bytes-Werten suchen habe ich es nicht geschafft, dies noch in den 4KB unterzubringen.

    Zitat Zitat von mare_crisium
    Es kann vorkommen, dass der erste Operand eine ganze Zahl ist, der zweite eine reelle. Bei Deiner jetzigen Kommabehandlung findet das Programm, wenn das Komma des Operand2 eingegeben wird, die Variable "Found.comma_op1" auf NO und nimmt dann an, das Komma gehöre zu Operand1.
    Hast du das mal ausprobiert oder nur durch Code Analyse gefunden? Ich dachte nämlich, dass ich dies durch die Abfrage nach dem gefundenen Operator ausgeschlossen habe. Wenn der noch nicht da ist, handelt es sich um Operator 1, ansonsten Operator 2. Bin mir aber nicht sicher, ob ich mal probiert habe, im zweiten mehrere Kommas einzugeben, wenn im ersten Operator keines drin vorkommt.

  3. #23
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.12.2005
    Beiträge
    535
    for-ro,

    bei der Auswertung der Komma-Taste hatte ich die vorausgehende Abfrage von "Found.operation" übersehen . Du hast recht: Das Komma wird richtig zugeordnet.

    Ciao,

    mare_crisium

Seite 3 von 3 ErsteErste 123

Berechtigungen

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

Solar Speicher und Akkus Tests