Codigo en MBED para hacer un reloj con salida por puerto serial
Enviado por Mauricio Rodriiguez • 25 de Marzo de 2023 • Tarea • 885 Palabras (4 Páginas) • 111 Visitas
/*Programama en MBED para hacer un reloj el caul se le puede controlar el secundero, minutero y horario y lo imprime a través de puerto serial y tan bien gira un servo de 0 a 180° cada minuto.*/
#include "mbed.h"
static BufferedSerial pc(USBTX, USBRX);
InterruptIn col1(PC_7, PullDown);
InterruptIn col2(PA_9, PullDown);
InterruptIn col3(PA_8, PullDown);
InterruptIn col4(PB_10, PullDown);
DigitalOut led(LED1);
DigitalOut row1(PB_4);
DigitalOut row2(PB_5);
DigitalOut row3(PB_3);
DigitalOut row4(PA_10);
PwmOut servo(PB_6);
volatile int row = 0;
volatile int col = 0;
volatile char tecla = 'E';
Ticker t;
int s = 0;
int m = 0;
int h = 0;
int duty = 400;
// funcion que se invoca cuando el evento ticker ocurre
void incrementoSegundos() {
s++;
duty = duty + 30;
// servo.write(duty);
servo.pulsewidth_us(duty);
if (s == 60) {
duty = 400;
s = 0;
m++;
if (m == 60) {
m = 0;
h++;
if (h == 24) {
h = 0;
}
}
}
}
void subeHora() {
{
h++;
if (h == 24) {
h = 0;
}
}
}
// funcion baja hora
void bajaHora() {
{
h--;
if (h == -1) {
h = 23;
}
}
}
// funcion sube minuto
void subeMinuto() {
{
m++;
if (m == 60) {
m = 0;
}
}
}
// funcion baja minuto
void bajaMinuto() {
{
m--;
if (m == -1) {
m = 59;
}
}
}
// funcion sube segundo
void subeSegundo() {
{ s++; }
}
// funcion baja segundo
void bajaSegundo() {
{ s--; }
}
// funcion reiniciar
void reiniciar() {
{
h = 0;
m = 0;
s = 0;
duty = 400;
}
}
// funcion teclado
void key_press() {
_wait_us_generic(20);
...