Hei

Erstmal: Danke für deine Hilfe

Also ich bin mir nicht sicher, aber ich glaube ich verwende den C32.
Ich glaube nicht, das die delay routine floating point zahlen verarbeiten kann, der Lautsprecher gibt aber trotzdem einen Ton aus - nur nicht den den ich will.
Und jap die letzte Zeile beschreibt die Abbruchbedinung
Ich habe nur deswegen goto verwendet weil das - glaube ich zumindest - weniger ASM Befehle benötigt
Das 0.0f beschreibt meines Wissens nach das es eine fp Zahl ist.
Ich hab das nur bei einem Freund gesehen und bin das auch so von C# gewöhnt - kann seine das kein "f" nötig ist
und zu der Zeile
freq=freq+(1/diff)
freq ist am Anfang 0.
Wenn ich jetzt die Zahl eins Drücke steht in freq folgendes:
freq=0+(1/1);
freq ist also 1.0f
diff=1*10
diff ist also 10
Drücke ich dann die 2:
freq=1+(2/10)
freq ist also 1.2f
diff ist 100.
Drücke ich dann auch noch die 3:
freq=1.2f+(3/100)
freq ist also 1.23f
usw..
Damit verhindere ich nur im gegensatz zu Integer das ich Zahlen über 254 habe (meiner Erfahrung nach schafft der PIC nicht mehr)
und mit
delay=freq*(diff/10)
schreibe ich die Richtige frequenz nach delay
in delay steht dann also
delay=123
ich weis, die Namen der Variablen sind verwirrend..
und mit freq=1/delay schreibe ich dann die Periodendauer nach freq
(wobei ich noch die halbe Frequnz am Lautsprecher ausgebe da ich nur die
halbe Periodendauer als delay verwenden darf um die richtige Frequenz zu erhalten - ist im Moment aber egal)
Aber ich glaube mit Werten bis max. 22 000 werde ich eine long int nicht zum Überlaufen bringen
Und ich weis nicht genau wie ich das mit dem Simulator machen soll
Weil ich ja nicht definieren kann wann ein Signal an einem Eingang anliegt oder?

MFG BigBearRN