Paso 11: Firmware - principal-v2.0
La segunda versión del firmware es casi idéntica a la primera; sin embargo, he quitado toda la funcionalidad de impresión de pantalla LCD. Allí no hay más funciones de LCD_write() , ni USART0 en uso. La otra diferencia importante es la adición de la función updateLevel() . Esta rutina simple paquetes el peso visualizado por la escala en dos bytes de datos. Estos bytes se transmiten sobre el bus de TWI a otro chip, pero eso es parte de otro proyecto, por lo que no he incluido ese código aquí. También debe notar que al inicio de la cañería, el código obliga a la escala en modo del peso en gramos. Esto se hace para que los datos que se transmiten de esta escala a internet siempre están constantes.
El bucle principal lee la pantalla y crea los dos bytes de datos de nivel antes de retrasar durante 1 segundo., nada más, nada menos. Todo el trabajo duro es manejado por las rutinas de servicio de interrupción para el comparador analógico y el temporizador 0.