Skript file: /~heha/Mikrocontroller/LED-PWM.zip/exp.awk

# Exponentialfunktion für optisch gleichmäßiges Licht
# y=(exp(x*B)-1)*A
# mit den Randbedingungen
# y(0) = 0
# y(1) = 1	für sinnvolle Steuerung kleiner Lichtstärken
# y(255) = 65536
# Ausgabe-Wert -1 (ATmega-PWM-Wert 0 = kurzer Puls, 65535=Dauerplus)

function Ausgabe(E,A,B) {
 for(i=0;i<=E;i++) {
  printf("%d,",(exp(i*B)-1)*A-0.5);	# "%d" rundet ab
 }
 print "";
}

BEGIN{
#Probier-Kode
 A=33.0925;
 B=0.0297708;
 E=255;
 print "A(x=1) = " 1/(exp(B)-1);
 print "A(x=E) = " 255/(exp(E*B)-1);
 for(i=0;i<=E;i++) {
  if (i<5 || i>=E-1) print i " " (exp(i*B)-1)*A;
 }
#Ausgabe-Kode
 Ausgabe(E,A,B);
}
Detected encoding: UTF-80