No se puede convertir implícitamente el tipo 'int' a 'ushort': ya se emitió explícitamente

Estoy tratando de convertir explícitamente un int en un ushort, pero estoy obteniendo la conversión implícita No se puede convertir el tipo 'int' en 'ushort'

ushort quotient = ((12 * (ushort)(channel)) / 16);

Estoy utilizando .Net Micro framework, por lo que BitConverter no está disponible. Por qué uso ushort en primer lugar tiene que ver con cómo se envían mis datos a través de SPI. Puedo entender que este error en particular se mencionó anteriormente en este sitio, pero no puedo ver por qué cuando declaro explícitamente que no me importa si falta información, simplemente corte los 32 bits en 16 bits y estaré contento.

            public void SetGreyscale(int channel, int percent)
    {
        // Calculate value in range of 0 through 4095 representing pwm greyscale data: refer to datasheet, 2^12 - 1
        ushort value = (ushort)System.Math.Ceiling((double)percent * 40.95);

        // determine the index position within GsData where our data starts
        ushort quotient = ((12 * (ushort)(channel)) / 16); // There is 12 peices of 16 bits

Preferiría no cambiar el canal int, a ushort channel. ¿Cómo puedo solucionar el error?

Respuestas a la pregunta(2)

Su respuesta a la pregunta