Si la forma de onda elegida fuera la cuadrada (bit 6 = 1 en el registro VCREG1/2/3), entonces habría que fijar el ancho de pulso (pulse width). El ancho de pulso es el porcentaje del período que la señal tiene nivel alto:
En el caso del SID, no se programa directamente el % del ancho del pulso, sino que se programa un valor N que guarda la siguiente relación con el ancho de pulso:
N = 40,95 x ancho de pulso
Por tanto, si se quisiera un ancho de pulso del 100% se grabaría el valor 4.095 ($0fff), si se quisiera un 50% el valor 2.048 ($0800), y si se quisiera un 10% el valor 41 ($0029).
Por supuesto, estos valores se grabarían separando las partes más y menos significativas, que irían a parar a los registros PWHI1/2/3 y PWLO1/2/3 respectivamente.
Programa de ejemplo: Prog49