Máquinas de estado en sistemas embebidos

Laboratorio de Computadoras Electrónicas, Microcontroladores
Qué es una máquina de estado Una máquina de estados finita (FSM "Finite State Machine") es un conjunto de estados y transiciones entre ellos que describen el comportamiento de un sistema. Todos los estados son conocidos y definidos (Por eso, máquina de estado "finita") Cada estado describe la situación en que se encuentra el sistema en un momento determinado. Las máquinas de estado se evaluan constantemente cada cierto tiempo (Ej. clock) y cada vez que esto sucede, se elige un nuevo estado -que puede ser el mismo en el que ya se encuentra- y si corresponde, se actualizan sus salidas. Para funcionar correctamente, por lo tanto, las máquinas de estado deben "conocer" su estado acual para lo que cuentan con alguna forma de memoria que recuerde el estado actual: variable…
Leer más

SCI – ejemplos de clase

Electrónica, Laboratorio de Computadoras Electrónicas, Microcontroladores, Programación C/C++, Técnicas Digitales
Este ejemplo envía T18.7C (+ un salto de línea) cada 1s La configuración de UART es 9600 8N1 [code language="cpp" collapse="true"] /* Envía T18.7C por SCI (UART) 9600 8N1 cada 1s */ #include <hidef.h> /* for EnableInterrupts macro */ #include "derivative.h" /* include peripheral declarations */ unsigned int conteo = 0; unsigned int mandar = 0; // vector donde se coloca lo que se va a enviar unsigned char resp[] = "T00.0C\n"; unsigned char i = 0; void main(void) { SOPT1 &= 0x3F; // deshabilito COP // este bloque "calibra" el oscilador interno a +/- 2% de error aprox. // es necesario para usar SCI asm { LDA $FFAF;-- inicializa osc. interno STA ICSTRM } while (!ICSSC_IREFST); /* espera ck interno estable */ // se habilitan interrupciones EnableInterrupts; // se…
Leer más

Placa de prueba SH8

Laboratorio de Computadoras Electrónicas, Microcontroladores, Técnicas Digitales
Esquemático de la placa de prueba: programa de prueba para la placa (.c) ¿Cómo funciona el programa de prueba? Si NO se presiona el pulsador, el preset controla el encendido de los LEDs: - Girando el preset hacia un extremo enciende un LED, y hacia el otro extremo enciende el otro LED En cambio, mientras se mantenga presionado el pulsador, el preset deja de tener control sobre los LEDs, que van a titilar alternativamente. diagrama de flujo del programa de prueba * Para poder grabar el µC el jumper SV6 debe estar en posición 2-3 * Para utilizar LEDs, pulsadores y preset se deben colocar jumpers en 1-2 de SV7, SV8, SV9, SV10
Leer más