#include "scs_pc_uart.h"
#include "system.h"
#include "sys/alt_irq.h"
#include "altera_avalon_uart_regs.h"
#include "scs_utils.h"
Defines | |
#define | PC_BAUDRATE 19200 |
Velocidad de la pc_uart. | |
#define | DIVISOR_PC ((ALT_CPU_FREQ/PC_BAUDRATE)-1) |
Calculo del divisor para la velocidad del UART PC. | |
#define | TX_BUFSIZE 256 |
buffer de trasmicion de la uart, se podria sustituir por una queue | |
#define | RX_BUFSIZE 64 |
buffer de recepcion de comandos desde PC | |
Functions | |
void | start_capture (void) |
tareas que puede invocar la el scs_pc_uart estas tareas estan definidas en el scheduller (scs_main) | |
void | stop_capture (void) |
void | get_events (void) |
void | led_on (void) |
void | led_off (void) |
void | scs_init_pc_uart (scs_fp_queue_t *trs_ptr) |
Modulo de comunicacion serie con el PC. | |
void | scs_send_data (alt_u8 *datos, int len) |
Envio de datos. |
#define DIVISOR_PC ((ALT_CPU_FREQ/PC_BAUDRATE)-1) |
Calculo del divisor para la velocidad del UART PC.
#define PC_BAUDRATE 19200 |
Velocidad de la pc_uart.
#define RX_BUFSIZE 64 |
buffer de recepcion de comandos desde PC
#define TX_BUFSIZE 256 |
buffer de trasmicion de la uart, se podria sustituir por una queue
void get_events | ( | void | ) |
void led_off | ( | void | ) |
void led_on | ( | void | ) |
void scs_init_pc_uart | ( | scs_fp_queue_t * | tareas_ptr | ) |
Modulo de comunicacion serie con el PC.
recibe un flujo de bytes desde el pc por el puerto serie interpreta el flujo entrante como una secuencia de comandos. cada comando termina con un fin de linea y puede invocar la ejecucion de una tarea
gestiona el buffer para el envio de datos y la isr correspondiente Registra las isr de la uart, inicializa buffer para la recepcion de comandos inicializa el buffer para envio de datos al pc
tareas | Puntero a la cola de tareas del scheduller |
obtengo el valor del registro de control de la PC_UART
habilito las interrupciones en la recepcion de bytes
Reset del status
void scs_send_data | ( | alt_u8 * | datos, | |
int | len | |||
) |
Envio de datos.
Copia el numero de bytes igual a "largo" desde la posicion de memoria apuntada por datos a un buffer local; luego inicia la trasmicion de los bytes.
datos | puntero a la posicion donde se enuentran los bytes a enviar | |
len | largo de bytes que se desea enviar |
leo el control para modificar solo el bit de ITRDY
void start_capture | ( | void | ) |
tareas que puede invocar la el scs_pc_uart estas tareas estan definidas en el scheduller (scs_main)
void stop_capture | ( | void | ) |