LPC1768 · ARM Cortex-M3 · Mini-DK2
Sistemas Electrónicos Digitales Avanzados (SEDA)
El LPC1768 por dentro: timers, PWM, captura, UART, ADC/DAC y máquinas de estados, con calculadoras y preguntas de examen.
J1 · El LPC1768
J2 · Temporizadores
J3 · Comunicación serie
- 5UARTTrama asíncrona, velocidad con DLM, DLL y el divisor fraccionario, e interrupciones de Tx y RxSin empezar
- 10SPI e I²CEn preparación
- 14Ethernet y TCP/IPEn preparación
J4 · Analógico
J5 · Diseño software
- 7Máquinas de estados y StateChartsDe la FSM con switch-case a los StateCharts de UML: entry, do, exit, jerarquía, historia y concurrenciaSin empezar
- 13Planificación de tareas y RTOSEn preparación
J6 · Examen
J7 · Periféricos
- 9Acceso directo a memoria (DMA)En preparación
- 11LCD y TFTEn preparación
J8 · Memorias
- 12Memorias: dual port, FIFO, serie y SDRAMEn preparación
Tu avance no se está guardando en este navegador.
Modo repaso
Preguntas de desarrollo en tarjetas, preguntas tipo test corregidas al momento y un simulacro con las dos cosas.
Tarjetas de repaso
Reloj, GPIO e interrupciones
Explica el camino del reloj desde el cristal hasta un periférico, con las frecuencias por defecto.
Cristal de 12 MHz → la PLL0 multiplica a FCCO=2⋅M⋅Fin/N=2⋅100⋅12/6=400 MHz → el divisor de CPU divide entre 4: CCLK = 100 MHz → cada periférico divide CCLK según sus bits de PCLKSEL (por defecto ÷4): FPCLK=25 MHz. (Respuesta redactada a partir de los apuntes.)
Reloj, GPIO e interrupciones
¿Qué pasos hay que dar para usar el Timer 2 con interrupción?
1. Alimentarlo: PCONP |= (1 << 22). 2. Elegir su reloj en PCLKSEL1 (o dejar CCLK/4). 3. Si saca señal por un pin, elegir esa función en PINSEL. 4. Configurar el timer (PR, MR, MCR) y arrancarlo. 5. NVIC_SetPriority(TIMER2_IRQn, …) y NVIC_EnableIRQ(TIMER2_IRQn). 6. En TIMER2_IRQHandler, borrar el flag en IR. (Respuesta redactada a partir de los apuntes.)
Reloj, GPIO e interrupciones
¿Por qué FIOSET y FIOCLR se escriben con «=» y no con «|=»?
Porque en esos registros un 0 no hace nada: solo actúan los bits que se escriben a 1. Con = se cambia únicamente el pin de la máscara, sin leer el registro antes y sin riesgo de tocar los demás pines. (Respuesta redactada a partir de los apuntes.)
Reloj, GPIO e interrupciones · ¿sabrías explicarlo?
El cristal de 12 MHz entra en la PLL0: F_CCO = 2·M·F_in/N = 400 MHz, y el divisor de CPU deja CCLK = 100 MHz. Lo configura SystemInit (system_LPC17xx.c) al arrancar
Explícalo en voz alta y compáralo con el tema.
Reloj, GPIO e interrupciones · ¿sabrías explicarlo?
Cada periférico recibe PCLK = CCLK/4, /1, /2 u /8 según sus dos bits de PCLKSEL0/1. Tras el reset es CCLK/4 = 25 MHz
Explícalo en voz alta y compáralo con el tema.
Reloj, GPIO e interrupciones · ¿sabrías explicarlo?
Antes de usar un periférico hay que alimentarlo en PCONP. Timer 0/1, UART 0/1 y PWM1 están encendidos tras el reset; Timer 2/3, UART 2/3 y el ADC, no
Explícalo en voz alta y compáralo con el tema.
Reloj, GPIO e interrupciones · ¿sabrías explicarlo?
Cada pin tiene hasta 4 funciones (PINSEL, 2 bits por pin) y un modo (PINMODE: 00 = pull-up, el de reset)
Explícalo en voz alta y compáralo con el tema.
Reloj, GPIO e interrupciones · ¿sabrías explicarlo?
GPIO: FIODIR (1 = salida), FIOSET y FIOCLR (escribir 1 pone o quita sin tocar el resto), FIOPIN (leer el nivel)
Explícalo en voz alta y compáralo con el tema.
Reloj, GPIO e interrupciones · ¿sabrías explicarlo?
Un pulsador con pull-up lee 1 en reposo y 0 al pulsarlo
Explícalo en voz alta y compáralo con el tema.
Reloj, GPIO e interrupciones · ¿sabrías explicarlo?
NVIC: prioridad de 0 a 31, y el número más bajo es el más prioritario. En la rutina de atención hay que borrar el flag, o la interrupción vuelve a entrar
Explícalo en voz alta y compáralo con el tema.
Reloj, GPIO e interrupciones · ¿sabrías explicarlo?
EINT0–3 (P2.10–P2.13): EXTMODE elige nivel o flanco, EXTPOLAR el sentido, y el flag se borra escribiendo un 1 en EXTINT
Explícalo en voz alta y compáralo con el tema.
Timers: Match e interrupciones periódicas
Calcula MR0 para generar con MAT0.0 una señal cuadrada de 1 kHz por hardware (F_PCLK = 25 MHz, PR = 0) y di cómo configurarías MCR y EMR.
Un semiperiodo son 0,5 ms: MR0=2⋅100025⋅106−1=12499. MCR: solo MR0R (bit 1), sin interrupción. EMR: EMC0 = 11 (bits 5:4, conmutar). Y el pin de MAT0.0 (P1.28 o P3.25) en esa función con PINSEL. (Respuesta redactada a partir de los apuntes.)
Timers: Match e interrupciones periódicas
¿Por qué en la interrupción periódica es MR0 = F_tick·T − 1, pero al sumar en la ISR es N = F_tick·T?
Con reset, el TC pasa por 0, 1, …, MR0: son MR0+1 cuentas por periodo, de ahí el −1. Sin reset, el siguiente Match está N cuentas después del anterior, así que el periodo es exactamente N tics. (Respuesta redactada a partir de los apuntes.)
Timers: Match e interrupciones periódicas
Quieres dos señales de 1 kHz y 3 kHz con el mismo timer. ¿Qué método usas y qué valores de N?
Toggle sin reset y suma en la ISR. Con Ftick=25 MHz: N0=2⋅100025⋅106=12500 y N1=2⋅300025⋅106≈4167 (redondeando, 2,9994 kHz). Con toggle y reset no se podría, porque MR0 marcaría el periodo de las dos. (Respuesta redactada a partir de los apuntes.)
Timers: Match e interrupciones periódicas · ¿sabrías explicarlo?
Cada Timer (0–3) tiene un contador de 32 bits, TC, que avanza a F_tick = F_PCLK/(PR+1). Con PR = 0, F_tick = 25 MHz
Explícalo en voz alta y compáralo con el tema.
Timers: Match e interrupciones periódicas · ¿sabrías explicarlo?
Hay 4 registros de Match (MR0–MR3): cuando TC = MRx puede interrumpir, reiniciar TC o pararlo, según los 3 bits de MRx en MCR (MRxI, MRxR, MRxS)
Explícalo en voz alta y compáralo con el tema.
Timers: Match e interrupciones periódicas · ¿sabrías explicarlo?
Interrupción periódica con reset en MR0: MR0 = F_tick·T − 1, porque TC cuenta de 0 a MR0 (MR0 + 1 cuentas)
Explícalo en voz alta y compáralo con el tema.
Timers: Match e interrupciones periódicas · ¿sabrías explicarlo?
Sin reset, el TC corre libre y en la ISR se suma MRx = MRx + N, con N = F_tick·T. Así cada Match lleva su propio periodo
Explícalo en voz alta y compáralo con el tema.
Timers: Match e interrupciones periódicas · ¿sabrías explicarlo?
En la ISR se borra el flag escribiendo un 1 en su bit de IR: LPC_TIM0->IR = (1 << 0) para MR0
Explícalo en voz alta y compáralo con el tema.
Timers: Match e interrupciones periódicas · ¿sabrías explicarlo?
EMR: los bits EMCx eligen qué hace el pin MATn.x en cada Match (01 lo pone a 0, 10 a 1, 11 lo conmuta). Los bits EMx dicen el nivel actual
Explícalo en voz alta y compáralo con el tema.
Timers: Match e interrupciones periódicas · ¿sabrías explicarlo?
Señal cuadrada por hardware (toggle con reset): MR0 = F_tick/(2·F_out) − 1. Solo vale una frecuencia por timer
Explícalo en voz alta y compáralo con el tema.
Timers: Match e interrupciones periódicas · ¿sabrías explicarlo?
Con interrupción se generan hasta 4 señales por timer (N = F_tick/(2·F_out)); la frecuencia máxima la limitan la latencia y el tiempo de la ISR
Explícalo en voz alta y compáralo con el tema.
PWM y servos
Genera con PWM1 una señal de 1 kHz con D = 30 % (F_PCLK = 25 MHz). Da MR0, MRx y los registros que tocas.
PWM1MR0=25⋅106/1000−1=24999. MRx=0,3⋅(MR0+1)=7500. MCR: MR0R (bit 1). PCR: PWMENAx. LER: bits 0 y x. TCR: bits 0 y 3. Y el pin en su función PWM1.x con PINSEL. (Respuesta redactada a partir de los apuntes.)
PWM y servos
¿Qué ventajas tiene PWM1 frente a generar la PWM con un Timer e interrupciones?
No gasta CPU (no hay ISR por flanco), no tiene el límite de latencia (D muy pequeños o muy grandes salen bien), da hasta 6 salidas con la misma frecuencia y, gracias a los registros sombra, cambiar el ciclo de trabajo no corta ningún periodo. La pega: todas sus salidas comparten frecuencia. (Respuesta redactada a partir de los apuntes.)
PWM y servos
Escribe set_servo(grados) para un servo de 0,4–2,4 ms y explica cada término.
MR5 = Ftick0.4e-3 + Ftick2e-3grados/180: el primer término son las cuentas del ancho mínimo (0,4 ms, 0°); el segundo añade la parte proporcional al ángulo, hasta 2 ms más a 180°. Luego LER = (1 << 5) para que se aplique en el siguiente periodo. (Respuesta redactada a partir de los apuntes.)*
PWM y servos · ¿sabrías explicarlo?
PWM: señal de periodo fijo T_PWM cuyo tiempo en alto T_H cambia. Ciclo de trabajo D = T_H/T_PWM, entre 0 y 1
Explícalo en voz alta y compáralo con el tema.
PWM y servos · ¿sabrías explicarlo?
Con un Timer y toggle: en la ISR se suma N_H o N_L según el nivel del pin (N_L = N_T − N_H). Falla si T_H o T_L son más cortos que lo que tarda la ISR
Explícalo en voz alta y compáralo con el tema.
PWM y servos · ¿sabrías explicarlo?
Con un Timer y dos Match: MR0 marca el periodo y pone el pin a 1 (reset y EMC0 = set); MR1 interrumpe y la ISR baja el pin. D ≈ MR1/MR0
Explícalo en voz alta y compáralo con el tema.
PWM y servos · ¿sabrías explicarlo?
El periférico PWM1 tiene 7 Match: MR0 marca el periodo de las 6 salidas y MR1–MR6 el ancho de cada una. PWM1MR0 = F_tick/F_PWM − 1
Explícalo en voz alta y compáralo con el tema.
PWM y servos · ¿sabrías explicarlo?
Flanco único: la salida sube al empezar el periodo y baja en MRx, así que D = MRx/(MR0+1). PCR habilita cada salida (PWMENA1–6, bits 9–14)
Explícalo en voz alta y compáralo con el tema.
PWM y servos · ¿sabrías explicarlo?
Los Match del PWM1 tienen registros sombra: el valor nuevo no se usa hasta poner su bit en LER y llegar al siguiente MR0. Así no hay periodos cortados
Explícalo en voz alta y compáralo con el tema.
PWM y servos · ¿sabrías explicarlo?
Servo: el ancho del pulso fija el ángulo. En clase, T_H = 0,4 + 2·grados/180 ms con T_PWM = 15 ms. Cada servo se calibra con sus T_H mínimo y máximo
Explícalo en voz alta y compáralo con el tema.
Pulsos y captura
Configura TIMER1 para medir la frecuencia de una señal en CAP1.0 (F_PCLK = 25 MHz). ¿Qué registros tocas y qué hace la ISR?
PINSEL para CAP1.0 (P1.18), PR = 0, MCR sin ningún reset (el TC corre libre), TCR = 1 para arrancar, CCR = CAP0RE | CAP0I (bits 0 y 2) y NVIC_EnableIRQ(TIMER1_IRQn). En la ISR: borrar IR bit 4, N = CR0 − anterior (uint32_t), f = 25·10⁶/N, anterior = CR0. (Respuesta redactada a partir de los apuntes.)
Pulsos y captura
¿Por qué el pulso de set_pulso_alto dura exactamente T aunque la CPU sea lenta?
Porque la bajada no la hace la CPU: la hace el Match (EMC1 = 01) cuando el TC llega a MR1, contando desde el arranque. La subida y el arranque se hacen juntos en software, así que el ancho solo depende de MR1 y F_tick. (Respuesta redactada a partir de los apuntes.)
Pulsos y captura
Una señal tiene T = 1 ms y T_H = 250 µs. Con F_tick = 25 MHz, ¿qué diferencias de CR0 lees y qué D sale?
Periodo: 25 000 cuentas. Alto: 6 250 cuentas. D = 6 250/25 000 = 0,25. (Respuesta redactada a partir de los apuntes.)
Pulsos y captura · ¿sabrías explicarlo?
Pulso de duración T: MR1 = F_tick·T − 1 con Stop y Reset en MCR. Se sube MATn.1 a mano (EM1 = 1), se arranca el timer y el Match lo baja solo (EMC1 = 01)
Explícalo en voz alta y compáralo con el tema.
Pulsos y captura · ¿sabrías explicarlo?
Captura: un flanco en el pin CAPn.x copia el TC en el registro CRx sin que intervenga la CPU. La medida no depende de la latencia de la ISR
Explícalo en voz alta y compáralo con el tema.
Pulsos y captura · ¿sabrías explicarlo?
CCR elige para cada entrada el flanco (subida, bajada o ambos) y si interrumpe: CAP0RE, CAP0FE, CAP0I en los bits 0–2, CAP1 en los bits 3–5
Explícalo en voz alta y compáralo con el tema.
Pulsos y captura · ¿sabrías explicarlo?
Los flags de captura están en IR: bit 4 para CR0 y bit 5 para CR1. Se borran escribiendo un 1
Explícalo en voz alta y compáralo con el tema.
Pulsos y captura · ¿sabrías explicarlo?
Frecuencia: TC libre, se capturan los flancos de subida. N = CR0 − anterior y f = F_tick/N. Con uint32_t la resta funciona aunque el TC haya dado la vuelta
Explícalo en voz alta y compáralo con el tema.
Pulsos y captura · ¿sabrías explicarlo?
Ciclo de trabajo y ancho de pulso: se captura en los dos flancos y la ISR mira cuál ha llegado. T_H = bajada − subida y D = T_H/T
Explícalo en voz alta y compáralo con el tema.
UART
Configura la UART0 a 9600 bit/s, 8N1, con F_PCLK = 25 MHz y sin divisor fraccionario. ¿Qué error tiene?
DL=25⋅106/(16⋅9600)=162,76→163: DLM = 0, DLL = 163. V=25⋅106/(16⋅163)≈9586 bit/s, un −0,15 %. LCR = 0x83, DLL, DLM, LCR = 0x03. (Respuesta redactada a partir de los apuntes.)
UART
¿Por qué se manda el primer carácter fuera de la ISR?
Porque la interrupción THRE salta cuando THR pasa a estar vacío. La interrupción THRE solo se produce después de que THR haya recibido algún dato y lo haya pasado al registro de desplazamiento: mientras no se escriba en THR, no hay nada que se vacíe y no salta ninguna. Por eso hay que escribir el primer carácter a mano. Una vez hecho, cada THRE posterior encadena el siguiente. (Respuesta redactada a partir de los apuntes.)
UART
¿Qué error máximo de velocidad aguanta una UART con 8N1?
El receptor se sincroniza en el flanco del start y muestrea cada bit hacia su centro. Hasta el bit de stop pasan unos 9,5 bits, y el error acumulado no puede llegar a medio bit: en total, menos de un 5 % entre los dos extremos (en la práctica se busca menos del 2 %). (Respuesta redactada: es la regla general de cualquier UART.)
UART · ¿sabrías explicarlo?
La UART es serie asíncrona: no hay reloj compartido, así que los dos extremos acuerdan formato (bits de datos, paridad, stop) y velocidad
Explícalo en voz alta y compáralo con el tema.
UART · ¿sabrías explicarlo?
Trama: bit de start (0), 8 bits de datos empezando por el de menos peso, paridad opcional y bit de stop (1). En reposo la línea está a 1
Explícalo en voz alta y compáralo con el tema.
UART · ¿sabrías explicarlo?
Velocidad: V = F_PCLK / (16·(256·DLM + DLL)·(1 + DivAddVal/MulVal)). Sin divisor fraccionario, DL = F_PCLK/(16·V) redondeado
Explícalo en voz alta y compáralo con el tema.
UART · ¿sabrías explicarlo?
Para escribir DLL y DLM hay que poner DLAB = 1 en LCR, y volver a DLAB = 0 para usar RBR, THR e IER
Explícalo en voz alta y compáralo con el tema.
UART · ¿sabrías explicarlo?
Tx: se empieza escribiendo THR; cuando THR queda vacío salta la interrupción THRE y se manda el siguiente carácter. Rx: al llegar un byte salta RDA y se lee RBR
Explícalo en voz alta y compáralo con el tema.
UART · ¿sabrías explicarlo?
En la ISR se mira de dónde viene con (IIR >> 1) & 0x07: 2 = dato recibido (RDA), 1 = THR vacío (THRE)
Explícalo en voz alta y compáralo con el tema.
UART · ¿sabrías explicarlo?
Leer RBR borra la interrupción RDA; leer IIR (o escribir THR) borra la THRE
Explícalo en voz alta y compáralo con el tema.
ADC y DAC
Un potenciómetro en AD0.0 debe leerse cada 10 ms sin tocar el ADC desde el programa principal. ¿Cómo lo montas?
Que el propio Timer dispare las conversiones. TIMER0 con MR1 = 5 ms·F_tick − 1, reset en MR1 y EMC1 = 11 (conmutar): MAT0.1 sube cada 10 ms. En AD0CR, START = 100 (MAT0.1) y EDGE = 0 (subida). AD0INTEN = (1 > 4) & 0xFFF. El conmutar es lo que crea el flanco: por eso el Match va a la mitad del periodo de muestreo. (Respuesta redactada a partir de los apuntes y del UM10360.)
ADC y DAC
¿Qué tensión mínima distinguen el ADC y el DAC con V_REF = 3,3 V?
ADC: 3,3/4096 ≈ 0,81 mV. DAC: 3,3/1024 ≈ 3,2 mV. (Respuesta redactada a partir de los apuntes.)
ADC y DAC
Con una tabla de 32 muestras de un seno, ¿a qué frecuencia debe interrumpir el Timer para sacar 500 Hz por el DAC? ¿Qué MR0?
fs=32⋅500=16 kHz. Con F_PCLK = 25 MHz y reset en MR0: MR0 = 25·10⁶/16 000 − 1 = 1561,5, que no es entero: con 1561 o 1562 el error es de un 0,03 % (unos 500,2 o 499,8 Hz). (Respuesta redactada a partir de los apuntes.)
ADC y DAC · ¿sabrías explicarlo?
ADC: 12 bits, 8 canales (AD0.0–AD0.7) con un multiplexor y un solo convertidor. V = RESULT·(V_REFP − V_REFN)/4096; en la Mini-DK2, RESULT·3,3/4096
Explícalo en voz alta y compáralo con el tema.
ADC y DAC · ¿sabrías explicarlo?
El reloj del ADC es F_PCLK/(CLKDIV + 1) y no puede pasar de 13 MHz. Cada conversión tarda 65 ciclos: con 12,5 MHz, 5,2 µs
Explícalo en voz alta y compáralo con el tema.
ADC y DAC · ¿sabrías explicarlo?
AD0CR: SEL (bits 7:0) elige el canal, CLKDIV (15:8), BURST (16), PDN (21) enciende el convertidor y START (26:24) dice cuándo empezar
Explícalo en voz alta y compáralo con el tema.
ADC y DAC · ¿sabrías explicarlo?
START = 001 empieza ya (software). Otros valores lo disparan por hardware: EINT0 (P2.10), CAP0.1 (P1.27) o un Match (MAT0.1, MAT0.3, MAT1.0, MAT1.1)
Explícalo en voz alta y compáralo con el tema.
ADC y DAC · ¿sabrías explicarlo?
El resultado está en ADDRx (por canal) y en ADGDR (el último). RESULT ocupa los bits 15:4: (ADGDR >> 4) & 0xFFF. DONE (bit 31) se borra al leer
Explícalo en voz alta y compáralo con el tema.
ADC y DAC · ¿sabrías explicarlo?
ADINTEN se escribe con = y no con |=: tras el reset su bit 8 (ADGINTEN) está a 1 y haría interrumpir por cualquier canal
Explícalo en voz alta y compáralo con el tema.
ADC y DAC · ¿sabrías explicarlo?
DAC: 10 bits, salida AOUT en P0.26. DACR = valor << 6 y V = VALUE·3,3/1024. BIAS elige entre 1 µs (hasta 1 MHz) y 2,5 µs (hasta 400 kHz, menos consumo)
Explícalo en voz alta y compáralo con el tema.
Máquinas de estados y StateCharts
¿Qué ventajas da un StateChart frente a una FSM plana? Pon un ejemplo de cada una.
Jerarquía: una sola transición de error desde el superestado en vez de una por estado. entry/exit: las acciones de encendido y apagado se escriben una vez y no se olvidan en ninguna salida. Histórico: tras una pausa se vuelve donde se estaba. Concurrencia: dos partes independientes (control y display) sin combinar sus estados. (Respuesta redactada a partir de los apuntes y las diapositivas.)
Máquinas de estados y StateCharts
Un estado tiene exit: motor OFF y entry: motor ON, y una autotransición con el evento e. ¿Qué le pasa al motor con e?
Se apaga (exit) y se vuelve a encender (entry) en el mismo paso: hay un instante con el motor apagado. Si eso no se quiere, el evento e se trata como transición interna (escrita dentro del estado, sin flecha), que no ejecuta ni exit ni entry. (Respuesta redactada a partir de las diapositivas.)
Máquinas de estados y StateCharts
¿Dónde se llama a la función de la máquina de estados y por qué no puede bloquearse?
Desde una ISR periódica (SysTick, un Timer) o desde la ISR del periférico que trae los eventos (la UART al recibir cada byte). Si se bloquease esperando, la ISR no terminaría: el resto del programa y las interrupciones de menor prioridad se quedarían sin atender. (Respuesta redactada a partir de los apuntes.)
Máquinas de estados y StateCharts · ¿sabrías explicarlo?
Una FSM tiene estados, eventos (entradas) y transiciones. Moore: las salidas dependen del estado. Mealy: van en las transiciones (evento / acción)
Explícalo en voz alta y compáralo con el tema.
Máquinas de estados y StateCharts · ¿sabrías explicarlo?
En C se programa con un switch (estado). Cada llamada da un paso y vuelve: nada de while ni esperas dentro, sobre todo si se llama desde una ISR
Explícalo en voz alta y compáralo con el tema.
Máquinas de estados y StateCharts · ¿sabrías explicarlo?
Los pulsadores se leen periódicamente (cada 10–50 ms) y se compara con la lectura anterior para detectar el flanco. Así se filtran los rebotes
Explícalo en voz alta y compáralo con el tema.
Máquinas de estados y StateCharts · ¿sabrías explicarlo?
StateChart (Harel, 1986; UML): cada estado puede tener entry (al entrar), do (mientras está) y exit (al salir). Transiciones: evento [condición] / acción
Explícalo en voz alta y compáralo con el tema.
Máquinas de estados y StateCharts · ¿sabrías explicarlo?
Orden al cambiar de estado: exit del estado de origen, acción de la transición, entry del de destino. Una autotransición también ejecuta exit y entry
Explícalo en voz alta y compáralo con el tema.
Máquinas de estados y StateCharts · ¿sabrías explicarlo?
Pseudoestados: inicial (punto negro), histórico (H: vuelve al último subestado activo) y final (punto con círculo)
Explícalo en voz alta y compáralo con el tema.
Máquinas de estados y StateCharts · ¿sabrías explicarlo?
Jerarquía: un superestado agrupa subestados y una sola transición suya vale para todos. Concurrencia: regiones ortogonales que funcionan a la vez
Explícalo en voz alta y compáralo con el tema.
Máquinas de estados y StateCharts · ¿sabrías explicarlo?
Transición externa: sale del superestado y vuelve a entrar (exit y entry del superestado). Local: se queda dentro (no los ejecuta)
Explícalo en voz alta y compáralo con el tema.
Problemas tipo examen · ¿sabrías explicarlo?
Método: 1) entradas, salidas y eventos; 2) estados (qué hay que recordar); 3) transiciones con evento [condición] / acción; 4) dónde se ejecuta la máquina; 5) código
Explícalo en voz alta y compáralo con el tema.
Problemas tipo examen · ¿sabrías explicarlo?
Una trama por UART se recibe con una máquina de estados en la ISR de RDA: un byte, un paso. Hace falta un timeout para no quedarse colgado a mitad de trama
Explícalo en voz alta y compáralo con el tema.
Problemas tipo examen · ¿sabrías explicarlo?
Los tiempos (timeouts, movimientos lentos) se cuentan en ticks de una ISR periódica: con un tick de 20 ms, 5 s son 250 ticks
Explícalo en voz alta y compáralo con el tema.
Problemas tipo examen · ¿sabrías explicarlo?
Histéresis: dos umbrales (encender por debajo de uno, apagar por encima de otro) evitan que la salida conmute sin parar por el ruido
Explícalo en voz alta y compáralo con el tema.
Problemas tipo examen · ¿sabrías explicarlo?
Mando Sony: portadora de 38 kHz con un Timer en toggle (MR0 = F_PCLK/(2·38 kHz) − 1) y los tiempos (4T, 2T, T con T = 600 µs) con otro Timer
Explícalo en voz alta y compáralo con el tema.
Problemas tipo examen · ¿sabrías explicarlo?
Sony: start de 4T con portadora, luego 12 bits empezando por el de menos peso (7 de comando y 5 de dirección). Un 1 es 2T de portadora y un 0 es T, cada uno seguido de T sin ella
Explícalo en voz alta y compáralo con el tema.
Las tarjetas necesitan JavaScript. Las mismas preguntas están en la «Autoevaluación» de cada tema.
Parte 1 · Tipo test
Parte 2 · Desarrollo
Escribe o di en voz alta tu respuesta antes de entregar. Lo que escribas aquí no se guarda.
Calendario de pruebas
- PEI1 · 19:00SEDA · lun 9 noven 20 días
- PEI2 · 19:00SEDA · lun 14 dicen 55 días