Michael B. schrieb:
Bislang hatte "nnn" noch keine Speicherzelle.
Nach Deiner Anleitung muss ich zuerst eine Speicherzelle für "nnn"
belegen.
ok, da habe ich etwas missverstanden. Die 1. define-Zeile wird gar nicht mehr benötigt, denn Du liest ja den Wert jetzt über schalter ein.
Wenn ich später "uNote" nach "nnn" speichere, funktioniert dann die
Berechnung
[#define hnn nnn+anztone-d'1'] immer noch, denn?
In der Vergangenheit war "nnn" eine Konstante, die ich durch "#define"
festgelegt hatte. Mit Deiner Lösung wäre "nnn" der Inhalt der
Speicherzelle "nnn" (und hoffentlich nicht die Adresse von "nnn").
Da hast Du was missverstanden
[# define ...] bedeutet, dass der Compiler immer dann, wenn hnn im Source steht, statt dessen nnn+anztone-d'1' genommen wird. Das kann man als Konstante benutzen oder dazu einem Speicherplatz oder einem Bit einen aussagekräftigen Namen zuzuweisen, z.B. #define porta,7 LED wenn am Bit 7 des Port A eine LED hängt.
Ich kann das z.Zt. leider nicht selbst ausprobieren, da ich mit dem Laptop unterwegs bin. Schau doch mit dem Debugger (früher hiess der MPLAB SIM) im Einzelschritt, was die Register und die Speicherplätze machen.