Ein paar (Standard)Fragen zu Variabeln

Hi,
ich gehe gerade meinen Code durch, leider stürzt die Software ja manchmal noch ab.
Daher will ich noch mal ein paar Dinge sicherstellen

  1. byte => Habe gesehen, dass der nur positive Werte von 0 bis 255 speichert. Ist das so? Dann war das u.a. eine/DIE Absturzursache, da ich für zwei Variablen byte die Werte 1, 0 oder -1 vergeben habe
    Ist es sinnvoll immer int zu nehmen? Oder spare ich speicher, wenn ich mich wenn möglich auf byte-Variablen begrenze?

  2. unsigned long => Was passiert, wenn hier mal ein Wert mit Nachkommastellen entsteht (wenn zB eine Kalkulation für den Wert durchgeführt werden muss?) Werden die Nachkommastellen gestrichen bzw gerundet oder endet das in einem Error?
    Diese Variable nutze ich immer, wenn ich millis() nutze (Also delays errechne). Ist das ok oder gibts ne bessere Variable?

Ich hoffe, den Hauptfehler gefunden zu haben. Bin gespannt
Gruß

  1. wenn Du -1 in einByte speicherst müßtest Du 255 rausbekommen.
    INT belegt 2 Byte während BYTE 1 Byte im RAM belegt.
  2. Nachkommastellen werden abgschnitten. Ist auch so bei INT und BYTE.
    Für milli() brauchst Du immer eine UNSIGNED LONG da die Funktion den wert in diesem Format zurückgibt.

Grüße Uwe