Please note: in difference to the original page, this translation is not automatically extracted from the source code, and therefore not always up-to-date!
Click aquí para versión ASM
- Clase: MIOS_MIDI
- Clase: MIOS_MPROC
- Clase: MIOS_AIN
- Clase: MIOS_MF
- Clase: MIOS_DIN
- Clase: MIOS_DOUT
- Clase: MIOS_ENC
- Clase: MIOS_SRIO
- Clase: MIOS_LCD
- Clase: MIOS_CLCD
- Clase: MIOS_GLCD
- Clase: MIOS_EEPROM
- Clase: MIOS_FLASH
- Clase: MIOS_BANKSTICK
- Clase: MIOS_IIC
- Clase: MIOS_TIMER
- Clase: MIOS_HLP
- Clase: MIOS
- Clase: USER
MIOS_MIDI_BeginStream |
C_DECLARACIÓN |
void MIOS_MIDI_BeginStream(void) |
DESCRIPTION |
usa esta función antes de que se haya enviado ningún dato o evento MIDI. Necesario para el correcto funcionamiento de la función de enlace de la MIDIbox. |
C_IN |
- |
C_OUT |
- |
C_EXAMPLE |
// envía el evento MIDI B0 07 7F MIOS_MIDI_BeginStream(); MIOS_MIDI_TxBufferPut(0xb0); MIOS_MIDI_TxBufferPut(0x07); MIOS_MIDI_TxBufferPut(0x7f); MIOS_MIDI_EndStream();
|
Volver |
MIOS_MIDI_DeviceIDAutoSet |
C_DECLARATION |
void MIOS_MIDI_DeviceIDAutoSet(void) |
DESCRIPTION |
deriva la ID del dispositivo MIDI desde la cabecera de la ID del PIC |
C_IN |
- |
C_OUT |
- |
C_EXAMPLE |
// poner la ID de dispositivo como el valor especificado en la cabecera de ID del PIC MIOS_MIDI_DeviceIDAutoSet();
|
Volver |
MIOS_MIDI_DeviceIDGet |
C_DECLARATION |
unsigned char MIOS_MIDI_DeviceIDGet(void) |
DESCRIPTION |
Devuelve la ID del dispositivo MIDI | C_IN |
- |
C_OUT |
número de dispositivo |
C_EXAMPLE |
// Imprime en pantalla la ID de dispositivo MIOS_LCD_PrintHex2(MIOS_MIDI_DeviceIDGet());
|
Volver |
MIOS_MIDI_DeviceIDSet |
C_DECLARATION |
void MIOS_MIDI_DeviceIDSet(unsigned char device_id) |
DESCRIPTION |
Establece la ID del dispositivo MIDI. Debería ser un único número en una cadena MIDI. Normalmente, esta ID deriva del encabezado de la ID del PIC con la función MIOS_MIDI_DeviceIDAutoSet |
C_IN |
número de dispositivo en <device_id> |
C_OUT |
- |
C_EXAMPLE |
;; cambiar la ID de dispositivo MIOS_MIDI_DeviceIDSet(0x03);
|
Volver |
MIOS_MIDI_EndStream |
C_DECLARATION |
void MIOS_MIDI_EndStream(void) |
DESCRIPTION |
Usa esta función después de que hayan sido enviados el evento MIDI o datos. Esto es necesario para el correcto funcionamiento de la función de enlace de MIDIbox! | C_IN |
- |
C_OUT |
- |
C_EXAMPLE |
// Envía el evento MIDI 90 36 7F MIOS_MIDI_BeginStream(); MIOS_MIDI_TxBufferPut(0x90); MIOS_MIDI_TxBufferPut(0x36); MIOS_MIDI_TxBufferPut(0x7f); MIOS_MIDI_EndStream();
|
Volver |
MIOS_MIDI_Init |
C_DECLARATION |
void MIOS_MIDI_Init(void) |
DESCRIPTION |
Inicializa
la interfaz MIDI: La tasa de baudios será establecida
dependiendo de la opción To-Host/MIDI, Los buffers Rx y Tx
serán vaciados |
C_IN |
- |
C_OUT |
- |
Volver |
MIOS_MIDI_InterfaceAutoSet |
C_DECLARATION |
void MIOS_MIDI_InterfaceAutoSet(void) |
DESCRIPTION |
Deriva el tipo de interfaz MIDI y la dirección del módulo MBHP_IIC_MIDI del encabezado de la ID del PIC. To-Host flag: ID Byte 6, Bit 0 Dirección del módulo MBHP_IIC_MIDI : ID Byte 5
Si la dirección esclava es != 0x00 y != 0xff, será
tomado por MIOS como valor por defecto para salida de MIDI (Out) |
C_IN |
- |
C_OUT |
- |
C_EXAMPLE |
// Dispone la interfaz MIDI como el tipo especificado en el encabezado de ID del PIC MIOS_MIDI_InterfaceAutoSet();
|
Volver |
MIOS_MIDI_InterfaceGet |
C_DECLARATION |
unsigned char MIOS_MIDI_InterfaceGet(void) |
DESCRIPTION |
Devuelve el tipo actual de interfaz MIDI siguiendo los tipos de interfaces provistos. 0x00: MIOS_MIDI_INTERFACE_COMMON (interfaz MIDI común, 31250 baud) 0x01: MIOS_MIDI_INTERFACE_TO_HOST (interfaz MIDIbox-to-COM , RS232, 38400 baud) >= 0x02: MBHP_IIC_MIDI dirección del módulo |
C_IN |
- |
C_OUT |
tipo de interfaz |
C_EXAMPLE |
// Obtener el tipo de interfaz y su rama dependiendo de la configuración. switch( MIOS_MIDI_InterfaceGet() ) { case MIOS_MIDI_INTERFACE_COMMON: // haz esto... break; case MIOS_MIDI_INTERFACE_TO_HOST: // haz esto otro... break; default: // IIC esclavo seleccionado... }
|
Volver |
MIOS_MIDI_InterfaceSet |
C_DECLARATION |
void MIOS_MIDI_InterfaceSet(unsigned char interface) |
DESCRIPTION |
Esta función tiene dos propósitos: Si
el número de interfaz es 0x00 o 0x01, la USART interna
será seleccionada, y se configurará una tasa de baudios
(baudrate) de 31250 o 38400 : 0x00: MIOS_MIDI_INTERFACE_COMMON (interfaz MIDI común, 31250 baudios) 0x01: MIOS_MIDI_INTERFACE_TO_HOST (MIDIbox-to-COM interfaz, RS232, 38400 baudios) Con valores >= 0x02 se seleccionará un módulo MBHP_IIC_MIDI para los mensajes MIDI salientes (que son enviados con MIOS_MIDI_TxBufferPut) Los mensajes entrantes seguirán gestionándpse con el USART interno!
Si los datos deben ser recibidos por un módulo
MBHP_IIC_MIDI , por favor, usa las funciones apropiadas del
paquete de software que se distribuye en el paquete que lleva el
módulo incluído. Date cuenta de que la
función MIOS_MIDI_InterfaceAutoSet te permite derivar el tipo de
interfaz MIDI y la dirección IIC esclava de la cabecera de
ID del PIC!
|
C_IN |
Tipo de interfaz en <interface> |
C_OUT |
- |
C_EXAMPLE |
// Envía el reloj MIDI a través del MIDI Out con tasa de baudios normal MIOS_MIDI_InterfaceSet(MIOS_MIDI_INTERFACE_COMMON); MIOS_MIDI_TxBufferPut(0xf8);
// Envía el reloj MIDI a través del MBHP_IIC_MIDI con dirección 0x10 MIOS_MIDI_InterfaceSet(0x10); MIOS_MIDI_TxBufferPut(0xf8);
// Volver a la interfaz por defecto MIOS_MIDI_InterfaceAutoSet();
|
Volver |
MIOS_MIDI_MergerGet |
C_DECLARATION |
unsigned char MIOS_MIDI_MergerGet(void) |
DESCRIPTION |
devuelve
la configuración de la fusión integrada MIDI: 0x00:
MIOS_MIDI_MERGER_DISABLED (fusión deshabilitada) 0x01: MIOS_MIDI_MERGER_ENABLED (fusión habilitada) 0x02: MIOS_MIDI_MERGER_MBLINK_EP (MIDIbox Link End Point) 0x03: MIOS_MIDI_MERGER_MBLINK_FP (MIDIbox Link Forwarding Point) |
C_IN |
- |
C_OUT |
merger function ID |
C_EXAMPLE |
// Obtener configuración de fusión y rama dependiendo de la configuración switch( MIOS_MIDI_MergerGet() ) { case MIOS_MIDI_MERGER_ENABLED: // hacer esto... break; case MIOS_MIDI_MERGER_MBLINK_EP: // hacer esto... break; case MIOS_MIDI_MERGER_MBLINK_FP: // hacer esto... break; default: // MIOS_MIDI_MERGER_DISABLED: // hacer esto... }
|
Volver |
MIOS_MIDI_MergerSet |
C_DECLARATION |
void MIOS_MIDI_MergerSet(unsigned char mode) |
DESCRIPTION |
configura la fusión integrada MIDI se proveen las siguientes IDs de Fusor MIDI : 0x00: MIOS_MIDI_MERGER_DISABLED (fusión deshabilitada) 0x01: MIOS_MIDI_MERGER_ENABLED (fusión habilitada) 0x02: MIOS_MIDI_MERGER_MBLINK_EP (MIDIbox Link End Point) 0x03: MIOS_MIDI_MERGER_MBLINK_FP (MIDIbox Link Forwarding Point) |
C_IN |
merger function ID in <mode> |
C_EXAMPLE |
// configurar la MIDIbox como MIDIbox Link End Point // (significa: fusión habilitada solo para eventos que hayan sido // generados por otra MIDIbox que esté configurada como // MIDIbox Link Forwarding Point) MIOS_MIDI_MergerSet(MIOS_MIDI_MERGER_MBLINK_EP);
|
Volver |
MIOS_MIDI_RxBufferFree |
C_DECLARATION |
unsigned char MIOS_MIDI_RxBufferFree(void) |
DESCRIPTION |
Devuelve un número de bytes libres en el buffer de recepción |
C_IN |
- |
C_OUT |
número de bytes libres |
NOTE |
Esta función es SOLO para uso interno de MIOS! Los bytes recibidos serán notificados por los atajos de MPROC! |
C_EXAMPLE |
// Introduce un byte MIDI en el Buffer Rx si éste no está lleno if( MIOS_MIDI_RxBufferFree() ) { MIOS_MIDI_RxBufferPut(0xf8); // Reloj MIDI }
|
Volver |
MIOS_MIDI_RxBufferGet |
C_DECLARATION |
unsigned char MIOS_MIDI_RxBufferGet(void) |
DESCRIPTION |
Obtiene un byte del buffer de recepción. |
C_IN |
- |
C_OUT |
byte recibido |
NOTE |
Esta función es solo para uso inteno de MIOS! Los bytes recibidos serán notificados por los atajos MPROC ! |
C_EXAMPLE |
unsigned char b;
// obtiene un byte MIDI del Buffer Rx si se ha recibido algo. if( MIOS_MIDI_RxBufferUsed() ) { b = MIOS_MIDI_RxBufferGet(); }
|
Volver |
MIOS_MIDI_RxBufferPut |
C_DECLARATION |
void MIOS_MIDI_RxBufferPut(unsigned char b) |
DESCRIPTION |
pone un byte en el buffer de recepción |
C_IN |
byte in <b> |
C_OUT |
- |
NOTE |
Esta función es solo para uso inteno de MIOS! Los bytes recibidos serán notificados por los atajos MPROC ! |
C_EXAMPLE |
// pone un byte MIDI en el Buffer Rx si éste no está lleno. if( MIOS_MIDI_RxBufferFree() ) { MIOS_MIDI_RxBufferPut(0xf8); // Reloj MIDI }
|
Volver |
MIOS_MIDI_RxBufferUsed |
C_DECLARATION |
unsigned char MIOS_MIDI_RxBufferUsed(void) |
DESCRIPTION |
Devuelve el número de bytes usados en el buffer de recepción. |
C_IN |
- |
C_OUT |
número de bytes usados | NOTE |
Esta función es solo para uso inteno de MIOS! Los bytes recibidos serán notificados por los atajos MPROC ! |
C_EXAMPLE |
// detecta si se ha recibido algo vía MIDI if( MIOS_MIDI_RxBufferUsed() ) { // hacer algo... }
|
Volver |
MIOS_MIDI_TxBufferFlush |
C_DECLARATION |
void MIOS_MIDI_TxBufferFlush(void) |
DESCRIPTION |
Espera hasta que se hayan transmitido todos los bytes MIDI del Buffer Tx |
C_IN |
- |
C_OUT |
- |
C_EXAMPLE |
// espera hasta que el buffer esté vacío, entonces manda una descarga de nuevos bytes MIOS_MIDI_TxBufferFlush(); MIOS_MIDI_TxBufferPut(0xf0); // ...
|
Volver |
MIOS_MIDI_TxBufferFree |
C_DECLARATION |
unsigned char MIOS_MIDI_TxBufferFree(void) |
DESCRIPTION |
Devuelve el número de bytes libres en el buffer de transmisión. |
C_IN |
- |
C_OUT |
número de bytes libresnumber of free bytes |
NOTE |
Esta función es solo para uso inteno de MIOS! La función MIOS_MIDI_TxBufferPut()esperará hasta que el buffer esté lleno. |
C_EXAMPLE |
// Pone un byte MIDI en el Buffer Tx si éste no está lleno if( MIOS_MIDI_TxBufferFree() ) { MIOS_MIDI_TxBufferPut(0xf8); }
|
Volver |
MIOS_MIDI_TxBufferGet |
C_DECLARATION |
unsigned char MIOS_MIDI_TxBufferGet(void) |
DESCRIPTION |
Obtiene un byte libre del buffer de transmisión. |
C_IN |
- |
C_OUT |
byte para transmitir |
NOTE |
Esta función es solo para uso inteno de MIOS! |
C_EXAMPLE |
unsigned char b;
// obtiene un byte libre del Buffer Tx si hay un nuevo byte disponible if( MIOS_MIDI_TxBufferUsed() ) { b = MIOS_MIDI_TxBufferGet(); }
|
Volver |
MIOS_MIDI_TxBufferPut |
C_DECLARATION |
void MIOS_MIDI_TxBufferPut(unsigned char b) |
DESCRIPTION |
mete un byte en el buffer de transmisión.
Si el Buffer Tx está lleno, la función será
suspendida hasta que se haya transmitido un byte vía MIDI.
Esta función redirige los bytes salientes hacia el
módulo MBHP_IIC_MIDI module si ha sido seleccionado con la
función MIOS_MIDI_InterfaceSet o MIOS_MIDI_InterfaceAutoSet
function |
C_IN |
byte para transmitir <b> |
C_OUT |
- |
C_EXAMPLE |
// pone un byte MIDI en el Buffer Tx MIOS_MIDI_TxBufferPut(0xf8); // MIDI Clock
|
Volver |
MIOS_MIDI_TxBufferUsed |
C_DECLARATION |
unsigned char MIOS_MIDI_TxBufferUsed(void) |
DESCRIPTION |
Devuelve el número de bytes usados en el buffer |
C_IN |
- |
C_OUT |
número de bytes usados |
NOTE |
Esta función es solo para uso inteno de MIOS! La función MIOS_MIDI_TxBufferPut() esperará hasta que el buffer esté lleno |
C_EXAMPLE |
// monitoriza si se ha introducido algo en el Buffer Tx if( MIOS_MIDI_TxBufferUsed() ) { // tiene algo }
|
Volver |
MIOS_MPROC_MergerDisable |
C_DECLARATION |
void MIOS_MPROC_MergerDisable(void) |
DESCRIPTION |
Esta
función te permite deshabilitar temporalmente el proceso de
fusión de MIDI durante la recepción de un nuevo evento.Es
usado por los parseadores SysEx para prevenir la expedición de
las secuencias (strings) SysEx, pero también puede ser usado por
el atajo USER_MPROC_NotifyReceivedByte para filtrar otros eventos. La
fusión se habilitará nuevamente una vez se haya recibido
un evento MIDI completo! |
C_IN |
- |
C_OUT |
- |
Volver |
MIOS_MPROC_MergerEnable |
C_DECLARATION |
void MIOS_MPROC_MergerEnable(void) |
DESCRIPTION |
Habilita el procesamiento de fusión MIDI como se especifica con MIOS_MIDI_MergerSet |
C_IN |
- |
C_OUT |
- |
Volver |
MIOS_MPROC_MergerGet |
C_DECLARATION |
unsigned char MIOS_MPROC_MergerGet(void) |
DESCRIPTION |
Devuelve 1 si el proceso de fusión está habilitado, 0 si está deshabilitado |
C_IN |
- |
C_OUT |
status |
Volver |
MIOS_AIN_DeadbandGet |
C_DECLARATION |
unsigned char MIOS_AIN_DeadbandGet(void) |
DESCRIPTION |
Devuelve
la diferencia entre el último y el actual valor de pote que debe
ser archivado para disparar la función "NotifyChange"
(notificar cambio) |
C_IN |
- |
C_OUT |
diff value |
Volver |
MIOS_AIN_DeadbandSet |
C_DECLARATION |
void MIOS_AIN_DeadbandSet(unsigned char deadband) |
DESCRIPTION |
Marca
la diferencia entre el último y el actual valor de pote que debe
ser archivado para disparar la función "NotifyChange" (notificar
cambio) |
C_IN |
Valor de deadband en <deadband> |
C_OUT |
- |
Volver |
MIOS_AIN_DynamicPrioGet |
C_DECLARATION |
unsigned char MIOS_AIN_DynamicPrioGet(void) |
DESCRIPTION |
devuelve
el status de la característica de sampleado de prioridad
dinámica . La bandera solo se tomará en cuenta en
modo multiplexado (más de 8potes conectados al core vía
AINX4).Si está activo, la frecuencia de sampleado de los dos
últimos potes girados será dinámicamente
incrementada para mayor exactitud. |
C_IN |
- |
C_OUT |
0x00: sampleado de prioridad dinámica deshabilitado o modo activo no multiplexado. 0x01: sampleado de prioridad dinámica habilitado(por defecto) |
Volver |
MIOS_AIN_DynamicPrioSet |
C_DECLARATION |
void MIOS_AIN_DynamicPrioSet(unsigned char enable) |
DESCRIPTION |
habilita
o deshabilita la característica de sampleado de prioridad
dinámica.enables or disables the dynamic priority sampling
feature. La bandera sóo se tendrá en cuenta en el modo
multiplexado(más de 8 potes conectados al módulo core
vía AINX4). Si está activo, la frecuencia de sampleado de
los dos últimos potes activados será dinámicamente
incrementada para mayor exactitud. |
C_IN |
0x00: sampleado de prioridad dinámica desactivado 0x01: sampleado de prioridad dinámica habilitado(por defecto) |
C_OUT |
- |
Volver |
MIOS_AIN_LastPinsGet |
C_DECLARATION |
unsigned char MIOS_AIN_LastPinsGet(void) |
DESCRIPTION |
devuelve el índice de los dos pines que han sido sampleados con un valor diferente al final. En palablas menos abstractas: devuelve el número de los dos últimos potes activados. |
C_IN |
- |
C_OUT |
Valor devuelto y MIOS_PARAMETER1: último pin MIOS_PARAMETER2: penúltimo pin |
Volver |
MIOS_AIN_Muxed |
C_DECLARATION |
void MIOS_AIN_Muxed(void) |
DESCRIPTION |
activa el modo MUX( se pueden conectar hasta 64 potes vía multiplexadores AIN) |
C_IN |
- |
C_OUT |
- |
Volver |
MIOS_AIN_NumberGet |
C_DECLARATION |
unsigned char MIOS_AIN_NumberGet(void) |
DESCRIPTION |
devuelve el número de pines análogos disponibles. |
C_IN |
- |
C_OUT |
número de pins análogos |
Volver |
MIOS_AIN_NumberSet |
C_DECLARATION |
void MIOS_AIN_NumberSet(unsigned char pots) |
DESCRIPTION |
establece el número de pines AIN disponibles Si el número es > 64, el valór será forzado a 64 |
C_IN |
Número de pins análogos en<pots> |
C_OUT |
- |
Volver |
MIOS_AIN_Pin7bitGet |
C_DECLARATION |
unsigned char MIOS_AIN_Pin7bitGet(unsigned char pin) |
DESCRIPTION |
rdevuelve un valor de 7-bit de la entrada AIN (input) | C_IN |
número de pins análogos de entrada en<pin> |
C_OUT |
valor de 7-bit |
Volver |
MIOS_AIN_PinGet |
C_DECLARATION |
unsigned int MIOS_AIN_PinGet(unsigned char pin) |
DESCRIPTION |
Devuelve el valor de la entrada AIN (input) |
C_IN |
Número de pin en <pin> |
C_OUT |
valor de 10 bit |
Volver |
MIOS_AIN_PinLSBGet |
C_DECLARATION |
unsigned char MIOS_AIN_PinLSBGet(unsigned char pin) |
DESCRIPTION |
Devuelve el valor LSB de una entrada AIN (input) |
C_IN |
número de pin en <pin> |
C_OUT |
Valor LSB |
Volver |
MIOS_AIN_PinMSBGet |
C_DECLARATION |
unsigned char MIOS_AIN_PinMSBGet(unsigned char pin) |
DESCRIPTION |
Devuelve un valor MSB de entrada AIN (input) |
C_IN |
número de pin en <pin> |
C_OUT |
Valor MSB |
Volver |
MIOS_AIN_UnMuxed |
C_DECLARATION |
void MIOS_AIN_UnMuxed(void) |
DESCRIPTION |
desactiva el modo MUX (se pueden conectar 8 potes directamente a los pins analógicos de entrada(input) del PIC |
C_IN |
- |
C_OUT |
- |
Volver |
MIOS_MF_DeadbandGet |
C_DECLARATION |
unsigned char MIOS_MF_DeadbandGet(void) |
DESCRIPTION |
>Devuelve el valor de deadband para el controlador MF |
C_IN |
- |
C_OUT |
valor deadband |
Volver |
MIOS_MF_DeadbandSet |
C_DECLARATION |
void MIOS_MF_DeadbandSet(unsigned char deadband) |
DESCRIPTION |
Establece el valor de deadband para el controlador MF |
C_IN |
valor deadband en <deadband> |
C_OUT |
- |
NOTA |
Solo se puede usar esta funcion cuando el controlador motor ha sido activado. |
Volver |
MIOS_MF_Disable |
C_DECLARACION |
void MIOS_MF_Disable(void) |
DESCRIPCION |
Desactiva el módulo MF |
C_IN |
- |
C_OUT |
- |
Volver |
MIOS_MF_Enable |
C_DECLARACION |
void MIOS_MF_Enable(void) |
DESCRIPCION |
Activa
el módulo MF module - en este modo los multiplexadores
están desactivados. Se pueden controlar hasta 8 motorfaders a
través del puerto MUX. Esta función solo se puede usar
con el controlador motor ha sido habilitado. |
C_IN |
- |
C_OUT |
- |
C_EJEMPLO |
;; inicializar el controlador MF para faders Alps RSAON11M9 MIOS_MF_Enable(); MIOS_MF_DeadbandSet(3); MIOS_MF_PWM_DutyCycleUpSet(1); MIOS_MF_PWM_DutyCycleDownSet(1); MIOS_MF_PWM_PeriodSet(3);
|
Volver |
MIOS_MF_FaderMove |
C_DECLARACION |
void MIOS_MF_FaderMove(unsigned char fader, unsigned int pos) |
DESCRIPCION |
establecer posición objetivo y mover fader |
C_IN |
número de fader <fader>, posición de fader <pos> |
NOTA |
esta función solo se puede usar con el controlador motor habilitado. |
C_EJEMPLO |
// Mover fader #7 a la posición más alta(0x3ff) MIOS_MF_FaderMove(0x07, 0x3ff);
|
Volver |
MIOS_MF_PWM_DutyCycleDownGet |
C_DECLARACION |
unsigned char MIOS_MF_PWM_DutyCycleDownGet(void) |
DESCRIPCION |
Devuelve
el Duty Cycle para movimientos descendentes - ver
http://www.ucapps.de/mbhp_mf.html para información detallada
acerca de este valor. |
C_IN |
- |
C_OUT |
Duty Cycle |
Volver |
MIOS_MF_PWM_DutyCycleDownSet |
C_DECLARACION |
void MIOS_MF_PWM_DutyCycleDownSet(unsigned char cali_down) |
DESCRIPCION |
Establece
el Duty Cycle para movimientos descendentes - ver
http://www.ucapps.de/mbhp_mf.html para información detallada
sobre este valor. |
C_IN |
Duty Cycle in <cali_down> |
C_OUT |
- |
Volver |
MIOS_MF_PWM_DutyCycleUpGet |
C_DECLARACION |
unsigned char MIOS_MF_PWM_DutyCycleUpGet(void) |
DESCRIPCION |
Devuelve
el Duty Cycle para movimientos ascendentes - ver
http://www.ucapps.de/mbhp_mf.html para información detallada
sobre este valor. |
C_IN |
- |
C_OUT |
Duty Cycle |
Volver |
MIOS_MF_PWM_DutyCycleUpSet |
C_DECLARACION |
void MIOS_MF_PWM_DutyCycleUpSet(unsigned char cali_up) |
DESCRIPCION |
Establece
el Duty Cycle para movimientos ascendentes - ver
http://www.ucapps.de/mbhp_mf.html para información detallada
sobre este valor, |
C_IN |
Duty Cycle in <cali_up> |
C_OUT |
- |
Volver |
MIOS_MF_PWM_PeriodGet |
C_DECLARACION |
unsigned char MIOS_MF_PWM_PeriodGet(void) |
DESCRIPCION |
Devuelve el período PWM - ver http://www.ucapps.de/mbhp_mf.html para información detallada acerca de este valor. |
C_IN |
- |
C_OUT |
período PWM |
Volver |
MIOS_MF_PWM_PeriodSet |
C_DECLARACION |
void MIOS_MF_PWM_PeriodSet(unsigned char speed) |
DESCRIPCION |
Establece
el período PWM - ver http://www.ucapps.de/mbhp_mf.html
para información detallada acerca de este valor. |
C_IN |
PWM period in <speed> |
C_OUT |
- |
Volver |
MIOS_MF_SuspendDisable |
C_DECLARACION |
void MIOS_MF_SuspendDisable(unsigned char fader) |
DESCRIPCION |
desactiva el modo suspenso del motor (función usada por detección de sensores táctiles) esta función solo puede ser usada con el controlador motor habilitado. |
C_IN |
number of motor in <fader> (0-7) |
C_OUT |
- |
Volver |
MIOS_MF_SuspendEnable |
C_DECLARACION |
void MIOS_MF_SuspendEnable(unsigned char fader) |
DESCRIPCION |
Suspende el motor (función usada por la detección de sensores táctiles) esta función solo puede ser usada con el controlador motor habilitado. |
C_IN |
number of motor in <fader> (0-7) |
C_OUT |
- |
Volver |
MIOS_MF_SuspendGet |
C_DECLARACION |
unsigned char MIOS_MF_SuspendGet(unsigned char fader) |
DESCRIPCION |
devuelve el estado de suspensión del motor, |
C_IN |
number of motor in <fader> (0-7) |
C_OUT |
1 si el motor está suspendido, si no 0 |
Volver |
MIOS_MF_TouchDetectionReset |
C_DECLARACION |
void MIOS_MF_TouchDetectionReset(unsigned char fader) |
DESCRIPCION |
Esta
función resetea la detección táctil implementada
por software para que el fader sea reposicionado, no importando si está siendo movido manualmente o
no |
C_IN |
número de motor en <fader> (0-7) |
C_OUT |
- |
Volver |
MIOS_DIN_PinAutoRepeatDisable |
C_DECLARACION |
void MIOS_DIN_PinAutoRepeatDisable(unsigned char pin) |
DESCRIPCION |
deshabilita la auto-repetición para el pin apropiado. |
C_IN |
número de pin en <pin> |
C_OUT |
- |
Volver |
MIOS_DIN_PinAutoRepeatEnable |
C_DECLARACION |
void MIOS_DIN_PinAutoRepeatEnable(unsigned char pin) |
DESCRIPCION |
habilita la característica de auto-repetición para el pin apropiado |
C_IN |
número de pin en <pin> |
C_OUT |
- |
Volver |
MIOS_DIN_PinAutoRepeatGet |
C_DECLARACION |
unsigned char MIOS_DIN_PinAutoRepeatGet(unsigned char pin) |
DESCRIPCION |
devuelve != 0 si la auto-repetición ha sido activada para el pin apropiado. |
C_IN |
número de pin en <pin> |
C_OUT |
!= 0 si la auto-repetición ha sido activada para este pin 0 si auto-repetición ha sido desactivada para este pin |
Volver |
MIOS_DIN_PinGet |
C_DECLARACION |
unsigned char MIOS_DIN_PinGet(unsigned char pin) |
DESCRIPCION |
Devuelve el valor de Pin DIN |
C_IN |
Número de pin en <pin> |
C_OUT |
1 si un pin es +5V, 0 si el pin es de 0V |
Volver |
MIOS_DIN_SRGet |
C_DECLARACION |
unsigned char MIOS_DIN_SRGet(unsigned char sr) |
DESCRIPCION |
Devuelve el valor de registro de cambio de DIN |
C_IN |
número de registro de cambios en <sr> |
C_OUT |
Valor de registro de cambios |
Volver |
MIOS_DOUT_PinGet |
C_DECLARACION |
unsigned char MIOS_DOUT_PinGet(unsigned char pin) |
DESCRIPCION |
devuelve el valor de un Pin DOUT |
C_IN |
Número de Pin en <pin> |
C_OUT |
1 si el pin es de +5V, 0 si el pin es de 0V |
Volver |
MIOS_DOUT_PinSet |
C_DECLARACION |
void MIOS_DOUT_PinSet(unsigned char pin, unsigned char value) |
DESCRIPCION |
configura el pin como de 0 o 5V |
C_IN |
Número de pin en <pin>, valor en <value> |
Volver |
MIOS_DOUT_PinSet0 |
C_DECLARACION |
void MIOS_DOUT_PinSet0(unsigned char pin) |
DESCRIPCION |
Configura el Pin a 0V |
C_IN |
Número de pin en WREG |
Volver |
MIOS_DOUT_PinSet1 |
C_DECLARACION |
void MIOS_DOUT_PinSet1(unsigned char pin) |
DESCRIPCION |
Configura el pin a 5V |
C_IN |
Número de pin en <pin> |
Volver |
MIOS_DOUT_SRGet |
C_DECLARACION |
unsigned char MIOS_DOUT_SRGet(unsigned char sr) |
DESCRIPCION |
devuelve el valor de DOUT del shift register |
C_IN |
número de shift register in <sr> |
C_OUT |
valor del shift register |
Volver |
MIOS_DOUT_SRSet |
C_DECLARACION |
void MIOS_DOUT_SRSet(unsigned char sr, unsigned char sr_value) |
DESCRIPCION |
establece sl valor DOUT del shift register |
C_IN |
número de shift register in <sr> valor in <sr_value> |
C_OUT |
- |
Volver |
MIOS_ENC_Abs7bitAdd |
C_DECLARACION |
void MIOS_ENC_Abs7bitAdd(unsigned char enc, unsigned char value) |
DESCRIPCION |
Añade el incrementer(incrementador) al valor absoluto de 7-bit del encoder
Esta función satura el valor. Esto significa que si el valor
resultante es mayor de 127 será saturado a 127. Se hará
lo mismo con valores inferiores a 0. |
C_IN |
número de encoder in <enc> valor de incrementer in <value> |
C_OUT |
devuelve un nuevo valor absoluto en MIOS_PARAMETER1 MIOS_PARAMETER2[0] es 1, si el valor ha sido cambiado, es 0 si es igual al antiguo valor. |
NOTA |
Esta
función usa un registro de repuesto que sólo está
disponible cuando la velocidad del encoder está establecida como
MIOS_ENC_SPEED_NORMAL. En el resto de modos de velocidad
(MIOS_ENC_SPEED_SLOW y MIOS_ENC_SPEED_FAST) esta función NO DEBE
USARSE, en su lugar habrá que escribir un handler dedicado para
valores absolutos (ver aplicaciones en enc_example* ) |
C_EJEMPLO |
// resta -5 del valor de 7-bit del encoder #0 MIOS_ENC_Abs7bitAdd(0, -5);
|
Volver |
MIOS_ENC_Abs7bitGet |
C_DECLARACION |
unsigned char MIOS_ENC_Abs7bitGet(unsigned char enc) |
DESCRIPCION |
devuelve un valor absoluto de 7 bits del encoder |
C_IN |
número de encoder in <enc> |
C_OUT |
valor absoluto |
NOTA |
Esta función usa un registro de repuesto que sólo está disponible
cuando la velocidad del encoder está establecida como
MIOS_ENC_SPEED_NORMAL. En el resto de modos de velocidad
(MIOS_ENC_SPEED_SLOW y MIOS_ENC_SPEED_FAST) esta función NO DEBE
USARSE, en su lugar habrá que escribir un handler dedicado para valores
absolutos (ver aplicaciones en enc_example* ) |
C_EJEMPLO |
// obtener el valor de 7 bits actual del encoder #0 value = MIOS_ENC_Abs7bitGet(0);
|
Volver |
MIOS_ENC_Abs7bitSet |
C_DECLARACION |
void MIOS_ENC_Abs7bitSet(unsigned char enc, unsigned char value) |
DESCRIPCION |
establece el valor absoluto de 7 bits del encoder |
C_IN |
número de encoder in <enc>, valor absoluto in <value> |
NOTA |
Esta función usa un registro de repuesto que sólo está disponible
cuando la velocidad del encoder está establecida como
MIOS_ENC_SPEED_NORMAL. En el resto de modos de velocidad
(MIOS_ENC_SPEED_SLOW y MIOS_ENC_SPEED_FAST) esta función NO DEBE
USARSE, en su lugar habrá que escribir un handler dedicado para valores
absolutos (ver aplicaciones en enc_example* ) |
C_EJEMPLO |
// establece el valor de 7-bit value del encoder #0 to 0x40 MIOS_ENC_Abs7bitSet(0, 0x40);
|
Volver |
MIOS_ENC_NumberGet |
C_DECLARACION |
unsigned char MIOS_ENC_NumberGet(void) |
DESCRIPCION |
devuelve el número de encoders que han sido definidos en la tabla de encoder |
C_IN |
- |
C_OUT |
número de encoders |
Volver |
MIOS_ENC_SpeedGet |
C_DECLARACION |
unsigned char MIOS_ENC_SpeedGet(unsigned char enc) |
DESCRIPCION |
Devuelve el ajuste de velocidad para un encoder Están disponibles los siguientes ajustes: MIOS_ENC_SPEED_SLOW 0x00 MIOS_ENC_SPEED_NORMAL 0x01 MIOS_ENC_SPEED_FAST 0x02
|
C_IN |
número de encoder in <enc> |
C_OUT |
devuelve el modo de velocidad parámetro de velocidad en MIOS_PARAMETER2 |
C_EJEMPLO |
// devuelve el ajuste de velocidad de encoder #0 speed = MIOS_ENC_SpeedGet(0);
|
Volver |
MIOS_ENC_SpeedSet |
C_DECLARACION |
void MIOS_ENC_SpeedSet(unsigned char enc, unsigned char mode, unsigned char parameter) |
DESCRIPCION |
establece la velocidad de un encoder están disponibles los siguientes modos: MIOS_ENC_SPEED_SLOW 0x00 (requiere parámetro adicional) MIOS_ENC_SPEED_NORMAL 0x01 (sin parámetro adicional) MIOS_ENC_SPEED_FAST 0x02 (requiere parámetro adicional)
|
C_IN |
número de encoder in <enc> modo de velocidad en <mode> parámetro de velocidad <parameter> |
NOTA |
Cuando
se usa MIOS_ENC_SPEED_SLOW o MIOS_ENC_SPEED_FAST, Las funciones
MIOS_ENC_Abs* no estarán disponibles dado que estos modos de
velocidad sitúan un registro de repuesto que es normalmente
usado para almacenar e l valor absoluto. Así que, en este caso,
debería escribirse un handler para valores absolutos.(ver
aplicaciones enc_example* ) |
C_EJEMPLO |
MIOS_ENC_SPEED_NORMAL ~~~~~~~~~~~~~~~~~~~~~ // este modo de velocidad no requiere ningún parámetro adicional (debería ser cero)
// ajustar la velocidad del encoder #0 a "normal" MIOS_ENC_SpeedSet(0, MIOS_ENC_SPEED_NORMAL, 0);
MIOS_ENC_SPEED_SLOW ~~~~~~~~~~~~~~~~~~~ // esta velocidad permite definir un valor pre-divisor this speed mode // de 0 a 7
// ajustar la velocidad del encoder #0 a "slow", usar un pre-divisor // de 3 para que el encoder incremente cada 4º paso // step (predivider value (- 1)) MIOS_ENC_SpeedSet(0, MIOS_ENC_SPEED_SLOW, 3);
MIOS_ENC_SPEED_FAST ~~~~~~~~~~~~~~~~~~~ // en este modo de velocidad el valor de incremento depende de // la velocidad rotacional basándose en la siguiente fórmula :
// speed_ctr: decrecido con cada ciclo de actualización // (-> MIOS_SRIO_UpdateFrqSet) // (normalmente 1 ms) para medir el tiempo entre // dos pasos del encoder // Init value: 0x7f // alcanza 0x00 después de 127 ciclos de actualización // (normalmente después de 127 ms) // <parameter>: especificado con el MIOS_ENC_SpeedSet // // función, valores permitidos: // 0 (rápido) -> divisor = 2^(7-0) = 128 // 1 (más rápido) -> divisor = 2^(7-1) = 64 // ... // 7 (el más rápido) -> divisor = 2^(7-7) = 1 // -> // incrementer = speed_ctr / (2^(7-parámetro))
// establecer la velocidad para el encoder #0 a "fast", el valor de exponente de velocidad es 2 MIOS_ENC_SpeedSet(0, MIOS_ENC_SPEED_FAST, 2);
|
Volver |
MIOS_SRIO_DebounceGet |
C_DECLARACION |
unsigned char MIOS_SRIO_DebounceGet(void) |
DESCRIPCION |
devuelve el valor de recarga antirrebote(debounce) de los registros DIN SR |
C_IN |
- |
C_OUT |
valor de recarga antirrebote de contador |
Volver |
MIOS_SRIO_DebounceSet |
C_DECLARACION |
void MIOS_SRIO_DebounceSet(unsigned char debounce_value) |
DESCRIPCION |
establece
el valor de recarga antirrebote (debounce) del contador para los
registros DIN SR que no hayan sido asignados a encoders de
rotación para efecto antirrebote de botones de mala calidad.
El
efecto antirrebote se hace de la siguiente manera: en cada movimiento
de botón el valor de precarga se cargará en el registro
antirrebote del contador. El contador decrecerá en cada ciclo de
actualización SRIO. hasta que el contador sea cero, los cambios
del botón serán grabados, pero no dispararán la
función USER_DIN_NotifyToggle.
Ningún movimiento de botón (previsto) se perderá,
pero la latencia será incrementada. Ejemplo: Si la frecuencia de
actualización está establecida en 1 mS, y el valor
antirrebote en 32, el primer movimiento de botón se
reconocerá con latencia de 1 mS en el peor de los casos. Cada
movimiento de botón adicional que tenga lugar en los siguientes
32 mS será reconocido con una latencia de
32 mS en el peor de los casos. Cuando haya pasado el tiempo de
antirrebote, la peor latencia posible es de nuevo 1
mS.
Recuerda que en las versiones de MIOS anteriores a la
v1.9c, el contador antirrebote también afectó a los
rotary encoders y registros DOUT (no fueron soportados). Con
MIOS V1.9c y superiores, este problema ya no esiste y la
función antirrebote puede usarse en casi todas las aplicaciones.
Única excepción: si la aplicación debería
grabar los cambios de pin de sensores digitales que se están
activando muy rápido, el antirrebote debe ser omitido. |
C_IN |
debounce counter reload value in <debounce_value> |
C_OUT |
- |
Volver |
MIOS_SRIO_NumberGet |
C_DECLARACION |
unsigned char MIOS_SRIO_NumberGet(void) |
DESCRIPCION |
devuelve el número de registros SR disponibles |
C_IN |
- |
C_OUT |
número de SRs |
Volver |
MIOS_SRIO_NumberSet |
C_DECLARACION |
void MIOS_SRIO_NumberSet(unsigned char number_sr) |
DESCRIPCION |
Establece el número de registros SR disponibles, si el número es > 16, el valor se forzará a 16. |
C_IN |
número de SRs in <number_sr> |
C_OUT |
- |
Volver |
MIOS_SRIO_TS_SensitivityGet |
C_DECLARACION |
unsigned char MIOS_SRIO_TS_SensitivityGet(void) |
DESCRIPCION |
devuelve la sensibilidad del touchsensor (sensor táctil) |
C_IN |
- |
C_OUT |
valor de sensibilidad |
Volver |
MIOS_SRIO_TS_SensitivitySet |
C_DECLARACION |
void MIOS_SRIO_TS_SensitivitySet(unsigned char sensitivity) |
DESCRIPCION |
establece la sensibilidad del sensor táctil.
sensibilidad == 0x00 deshabilita el TS para que el RD.4 (J14 del
módulo core) no sea manejado por MIOS y esté libre
para otros propósitos |
C_IN |
valor de sensibilidad en <sensitivity> |
C_OUT |
- |
Volver |
MIOS_SRIO_UpdateFrqGet |
C_DECLARACION |
unsigned char MIOS_SRIO_UpdateFrqGet(void) |
DESCRIPCION |
devuelve la frecuencia de actualización de los registros SR |
C_IN |
- |
C_OUT |
frecuencia de actualización (unit: milliseconds) |
Volver |
MIOS_SRIO_UpdateFrqSet |
C_DECLARACION |
void MIOS_SRIO_UpdateFrqSet(unsigned char update_frq) |
DESCRIPCION |
establece la frecuencia de actualización de los registros SR |
C_IN |
frecuencia de actualización (unit: milliseconds) en <update_frq> |
C_OUT |
- |
Volver |
MIOS_LCD_Clear |
C_DECLARACION |
void MIOS_LCD_Clear(void) |
DESCRIPCION |
limpia la pantalla LCD |
C_IN |
- |
C_OUT |
- |
C_EJEMPLO |
// limpiar LCD e imprimir un caracter MIOS_LCD_Clear(); MIOS_LCD_PrintChar('A');
|
Volver |
MIOS_LCD_Cmd |
C_DECLARACION |
void MIOS_LCD_Cmd(unsigned char cmd) |
DESCRIPCION |
envía un comando a la pantalla LCD |
C_IN |
el comando debe enviarse en <cmd> |
C_OUT |
- |
Volver |
MIOS_LCD_CursorGet |
C_DECLARACION |
unsigned char MIOS_LCD_CursorGet(void) |
DESCRIPCION |
Devuelve la posición del cursor de texto 0x00-0x3f: primera línea 0x40-0x7f: segunda linea 0x80-0xbf: tercera línea o segunda LCD(si está disponible) 0xc0-0xff: cuarta línea o segunda LCD (si está disponible) |
C_IN |
- |
C_OUT |
posición de cursor de texto |
Volver |
MIOS_LCD_CursorSet |
C_DECLARACION |
void MIOS_LCD_CursorSet(unsigned char pos) |
DESCRIPCION |
ajusta el cursor de texto en la pantalla LCD 0x00-0x3f: primera línea 0x40-0x7f: segunda línea 0x80-0xbf: tercera línea o segunda LCD (ver MIOS_LCD_YAddressSet) 0xc0-0xff: cuarta línea o segunda LCD (ver MIOS_LCD_YAddressSet) |
C_IN |
- |
C_OUT |
- |
C_EJEMPLO |
//imprime un caracter en la primera línea, primera columna MIOS_LCD_CursorSet(0x00 + 0); MIOS_LCD_PrintChar('A');
// imprime un caracter en la segunda línea, última columna (LCD de 2x16) MIOS_LCD_CursorSet(0x40 + 15); MIOS_LCD_PrintChar('B');
// imprime caracteres en la segunda LCD // (o 3ª y 4ª línea, ver MIOS_LCD_YAddressSet) MIOS_LCD_CursorSet(0x80 + 0); MIOS_LCD_PrintChar('C'); MIOS_LCD_CursorSet(0xc0 + 15); MIOS_LCD_PrintChar('D');
|
Volver |
MIOS_LCD_Data |
C_DECLARACION |
void MIOS_LCD_Data(unsigned char data) |
DESCRIPCION |
envía un valor de dato a la pantalla LCD |
C_IN |
los datos deben ser enviados en <data> |
C_OUT |
- |
Volver |
MIOS_LCD_Init |
C_DECLARACION |
void MIOS_LCD_Init(void) |
DESCRIPCION |
inicializa la pantalla LCD. Esta función se llama automáticamente después del inicio. |
C_IN |
- |
C_OUT |
- |
Volver |
MIOS_LCD_MessageStart |
C_DECLARACION |
void MIOS_LCD_MessageStart(unsigned char delay) |
DESCRIPCION |
un repuesto para MIOS_LCD_PrintMessage que permite iniciar un mensaje sin llamar a "MIOS_LCD_PrintString" |
C_IN |
retraso del mensaje en <delay> |
C_OUT |
- |
C_EJEMPLO |
// imprime mensaje en pantalla durante 2 segundos MIOS_LCD_CursorSet(0x00 + 0); MIOS_LCD_PrintCString("Pot value: "); MIOS_LCD_PrintHex2(MIOS_AIN_Pin7bitGet(0)); MIOS_LCD_MessageStart(255);
|
Volver |
MIOS_LCD_MessageStop |
C_DECLARACION |
void MIOS_LCD_MessageStop(void) |
DESCRIPCION |
esta función permite parar el mensaie inmediatamente para que se llame de nuevo MIOS_LCD_Tick |
C_IN |
- |
C_OUT |
- |
C_EJEMPLO |
//detiene el mensaje inmediatamente e invoca de nuevo DISPLAY_Tick MIOS_LCD_MessageStop();
|
Volver |
MIOS_LCD_PrintBCD1 |
C_DECLARACION |
void MIOS_LCD_PrintBCD1(unsigned char v) |
DESCRIPCION |
imprime un 8-bit como BCD (valor decimal) -- solo un dígito |
C_EJEMPLO |
valor de caracter sin firmar;
// imprimir en pantalla el dígito de ´valor´ de la izquierda MIOS_LCD_PrintBCD1(value);
|
Volver |
MIOS_LCD_PrintBCD2 |
C_DECLARACION |
void MIOS_LCD_PrintBCD2(unsigned char v) |
DESCRIPCION |
imprime un 8-bit como BCD (valor decimal) -- solo dos dígitos |
C_IN |
Valor en <v> |
C_OUT |
dos dígitos en LCD |
C_EJEMPLO |
valor char sin firmar;
// imprimir en pantalla los dos dígitos de 'valor' de la izquierda MIOS_LCD_PrintBCD2(value);
|
Volver |
MIOS_LCD_PrintBCD3 |
C_DECLARACION |
void MIOS_LCD_PrintBCD3(unsigned char v) |
DESCRIPCION |
imprime un 8-bit como BCD (valor decimal) -- los tres dígitos |
C_IN |
Valor en <v> |
C_OUT |
tres dígitos en LCD |
C_EJEMPLO |
valor char sin firmar;
// imprime en pantalla los tres dígitos de 'valor' MIOS_LCD_PrintBCD3(value);
|
Volver |
MIOS_LCD_PrintBCD4 |
C_DECLARACION |
void MIOS_LCD_PrintBCD4(unsigned int v) |
DESCRIPCION |
imprime un 16-bit como BCD (valor decimal) -- cuatro dígitos |
C_IN |
valor 16bit en <v> |
C_EJEMPLO |
valor int sin firmar;
// imprime en pantalla los 4 dígitos de valor de la izquierda MIOS_LCD_PrintBCD4(value);
|
Volver |
MIOS_LCD_PrintBCD5 |
C_DECLARACION |
void MIOS_LCD_PrintBCD5(unsigned int v) |
DESCRIPCION |
imprime un 16-bit como BCD (valor decimal) -- cinco dígitos |
C_IN |
valor 16bit en <v> |
C_EJEMPLO |
valor int sin firmar;
// imprime en pantalla todos los 5 dígitos de 'valor' MIOS_LCD_PrintBCD5(value);
|
Volver |
MIOS_LCD_PrintCString |
C_DECLARACION |
void MIOS_LCD_PrintCString(code char *str) |
DESCRIPCION |
imprime una secuencia acabada en 0--- solo provista por el MIOS C Wrapper! |
C_IN |
Indicaador para secuencias acabadas en 0 en <str> |
C_EJEMPLO |
// imprime secuencia en LCD- primera línea, primera columna MIOS_LCD_CursorSet(0x00 + 0); MIOS_LCD_PrintCString("Hello World!");
|
Volver |
MIOS_LCD_PrintChar |
C_DECLARACION |
void MIOS_LCD_PrintChar(unsigned char c) |
DESCRIPCION |
imprime un solo caracter ASCII |
C_IN |
el caracter debe imprimirse en <c> |
C_OUT |
el caracter en LCD |
C_EJEMPLO |
;;imprime en pantalla cuatro caracteres MIOS_LCD_PrintChar('M'); MIOS_LCD_PrintChar('I'); MIOS_LCD_PrintChar('O'); MIOS_LCD_PrintChar('S');
|
Volver |
MIOS_LCD_PrintHex1 |
C_DECLARACION |
void MIOS_LCD_PrintHex1(unsigned char h) |
DESCRIPCION |
imprime un valor hex de 4-bit |
C_IN |
Valor en <h> |
C_OUT |
un dígito en LCD |
C_EJEMPLO |
valor char sin firmar;
// imprime en pantalla la mitad de un byte de 'valor' MIOS_LCD_PrintHex1(value);
|
Volver |
MIOS_LCD_PrintHex2 |
C_DECLARACION |
void MIOS_LCD_PrintHex2(unsigned char h) |
DESCRIPCION |
imprime un valor hex de 8-bit |
C_IN |
Valor en <h> |
C_EJEMPLO |
valor char sin firmar;
// imprimir en pantalla el contenido de 'valor' MIOS_LCD_PrintHex2(value);
|
Volver |
MIOS_LCD_PrintMessage |
C_DECLARACION |
void MIOS_LCD_PrintMessage(code char *str) |
DESCRIPCION |
imprime
un mensaje durante 2 segundos. El flujo normal del programa no
será parado en este tiempo, sólo que la rutina
"DISPLAY_Tick" no será llamada. Tras el mensaje, se
invocará "DISPLAY_Init" antes del siguiente "DISPLAY_Tick" |
C_IN |
Indicador de secuencia en <str> La primera palabra de la secuencia debe contener la longitud y posición de LCD |
C_OUT |
algunos caracteres en LCD durante 2 segundos |
C_EXAMPLE |
// considera el uso de MIOS_LCD_PrintMessageStart // ver también el ejemplo appr.
|
Volver |
MIOS_LCD_PrintPreconfString |
C_DECLARACION |
void MIOS_LCD_PrintPreconfString(unsigned char len, code char *str) |
DESCRIPCION |
imprime una secuencia pre-configurada |
C_IN |
Indicador de Secuencia en <str> Longitud de frecuencia en <len> |
C_EJEMPLO |
// definido algún sitio *fuera* de la función! const unsigned char text_welcome_0[] = { "Hello World!" };
// dentro de la función: imprimir secuencia MIOS_LCD_CursorSet(0x00 + 0); MIOS_LCD_PrintPreconfString(12, text_welcome_0);
// por favor, vea también la función MIOS_LCD_PrintCString!
|
Volver |
MIOS_LCD_PrintString |
C_DECLARACION |
void MIOS_LCD_PrintString(code char *str) |
DESCRIPCION |
imprime una secuencia |
C_IN |
Indicador de Secuencia en <str> La primera palabra de la secuencia debe contener la longitud y posición del LCD. |
C_EJEMPLO |
//¡ definido algún sitio *fuera* de la función! const unsigned char text_welcome_0[] = { 12, 0x00, "Hello World!" };
// dentro de la función: imprimir secuencia MIOS_LCD_PrintString(text_welcome_0);
// por favor, vea también la función MIOS_LCD_PrintCString!
|
Volver |
MIOS_LCD_TypeAutoSet |
C_DECLARACION |
unsigned char MIOS_LCD_TypeAutoSet(void) |
DESCRIPCION |
deriva el tipo de LCDdel cabecero de ID del PIC |
C_IN |
- |
C_OUT |
tipo en WREG, parámetros adicionales de LCD en MIOS_PARAMETER1 y MIOS_PARAMETER2 |
C_EJEMPLO |
// establece el tipo de LCD al especificado en el PIC ID header MIOS_LCD_TypeAutoSet();
|
Volver |
MIOS_LCD_TypeGet |
C_DECLARACION |
unsigned char MIOS_LCD_TypeGet(void) |
DESCRIPCION |
devuelve el tipo de LCD. Se proporcionan los siguientes LCDs: 0x00: MIOS_LCD_TYPE_CLCD (character dotmatrix LCD) 0x01: MIOS_LCD_TYPE_GLCD0 ( LCD gráfica, KS0108 o HD61202 compatible) 0x06: MIOS_LCD_TYPE_MLCD (MIDI display, ver implementación SysEx) 0x07: MIOS_LCD_TYPE_CUSTOM_LCD (controlador de LCD personalizado)
|
C_IN |
- |
C_OUT |
tipo de LCD |
C_EJEMPLO |
// ramificación dependiendo del tipo de LCD if( MIOS_LCD_TypeGet() == MIOS_LCD_TYPE_CLCD ) { // hacer algo especial si está conectado CLCD }
// !!! Mejor para ramificiones dependiendo del tipo de pantalla CLCD/GLCD !!! // !!! (también funciona con controlador LCD personalizado !!! if( !MIOS_BOX_CFG0.USE_GLCD ) { // hacer algo especial si está conectado CLCD }
|
Volver |
MIOS_LCD_TypeSet |
C_DECLARACION |
void MIOS_LCD_TypeSet(unsigned char type, unsigned char par1, unsigned char par2) |
DESCRIPCION |
Ajusta el tipo de LCD. Se proporcionan los siguientes LCDs: 0x00: MIOS_LCD_TYPE_CLCD (character dotmatrix LCD) 0x01: MIOS_LCD_TYPE_GLCD0 (LCD gráfica, KS0108 o HD61202 compatible) 0x06: MIOS_LCD_TYPE_MLCD (MIDI display, ver implementación SysEx) 0x07: MIOS_LCD_TYPE_CUSTOM_LCD (controlador de LCD propio)
Recuerda que la función MIOS_LCD_TypeAutoSet te permite
derivar el tipo de LCD desde el encabezado de ID PIC!! Usa esta
función si quieres forzar un tipo especial de LCD sin cambiar el
encabezado ID de tu PIC o si quieres configurar opciones adicionales de
LCD que sean distintas a los valores por defecto. |
C_IN |
tipo de LCD en <type> LCD Opción #1 <par1> LCD Opción #2 <par2> |
C_EJEMPLO |
Las opciones LCD disponibles difieren de los tipos LCD usados, aquí va una ista - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Tipo 0, CLCD: con <par1> y <par2> se especifican los pins de activación (E) de las pantallas de caracteres. Por defecto, el input E de la primera CLCD debe ir conectada al pin D.7, el input E de la segunda (si la hay) al pin C.4 Son necesarias las siguientes líneas de códico para conseguir esto:
// usa un CLCD, E input del primerCLCD en D.7, E del segundo CLCD @C.4 MIOS_LCD_TypeSet(MIOS_LCD_TYPE_CLCD, 0x37, 0x24);
Nota: el primer dígito del valor de parámetro establece el número de puerto (A=0, B=1, C=2, D=3, E=4) el segundo dígito establece el número de pin (0-7) bit #7 establece la interfaz (0=8bit, 0=7bit)
Ejemplo para CLCD on interfaz de 4bit : ;; usa una CLCD, E input de la primera CLCD en D.7, E de la segunda CLCD @C.4 ;; usando la interfaz de 4-bit : ;; -> conecta MBHP_CORE:J15:D7-D4 del módulo core a D7-D4 de la LCD ;; -> left MBHP_CORE:J15:D3-D0 of the core module open! ;; -> tie D3-D0 del LCD abajo MIOS_LCD_TypeSet(MIOS_LCD_TYPE_CLCD, 0x80 | 0x37, 0x80 | 0x24);
Tip: cambiando estos parámetros dinámicamente también podrás manejar más de 2 lCDs con un solo módulo core. El número de CLCDs que pueden manejarse sólo está limitado por el número de pines libres!! No olvides cambiar los pines apropiados al output antes de usarlos, y llamar a MIOS_LCD_Init por cada par de pantalla en tu USER_Init
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Tipo 1, KS0108 o basadas en HD61202 Con <par1> se tiene que especificar si las líneas de selección del chip están invertidas
// usa una LCD gráfica compatible KS0108 o HD61202 con // selecciones de chip no invertidas MIOS_LCD_TypeSet(MIOS_LCD_TYPE_GLCD0, 0x00, 0x00); // (par2 unusued)
O: // usa una LCD gráfica compatible KS0108 o HD61202 con // selecciones de chip invertidas MIOS_LCD_TypeSet(MIOS_LCD_TYPE_GLCD0, 0x01, 0x00); // (par2 unusued)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Tipo 2, basadas en T6963C Ya no son soportadas, en su lugar usa el controlador personalizado que está disponible en la sección de descargas MIOS
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Tipo 6, MIDI display ver implementación MIOS SysEx disponible en la sección de descargas de MIOS
MIOS_PARAMETER1 define la ID de dispositivo del target core:
;; envía mensajes MIDI al núcleo con la ID de dispositivo 0x42 MIOS_LCD_TypeSet(MIOS_LCD_TYPE_MLCD, 0x42, 0x00); // (par2 unusued)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Tipo 7, controlador LCD personalizado Las opciones son redirigidas al controlador LCD personal, siguiendo atajos que han sido preparados para una óptima integración con MIOS: USER_LCD_Init USER_LCD_Clear USER_LCD_CursorSet USER_LCD_PrintChar
|
Volver |
MIOS_LCD_YAddressGet |
C_DECLARACION |
unsigned char MIOS_LCD_YAddressGet(void) |
DESCRIPCION |
devuelve los offsets Y |
C_IN |
- |
C_OUT |
Linea Y0 dirección en MIOS_PARAMETER1 (variable global definida en cmios.h), Linea Y1 dirección en MIOS_PARAMETER2 (variable global definida en cmios.h), Linea Y2 dirección en MIOS_PARAMETER3 (variable global definida en cmios.h), Linea Y3 dirección devuelta directamente |
Volver |
MIOS_LCD_YAddressSet |
C_DECLARACION |
void MIOS_LCD_YAddressSet(unsigned char line0, unsigned char line1, unsigned char line2, unsigned char line3); |
DESCRIPCION |
mapea la posición Y del cursor hacia la dirección apropiada de las pantallas de caracteres y gráficas. Las posiciones configuradas por defecto para pantallas de 2x16, 2x20, 4x20 y 2x40 : Line0 -> MIOS cursor offset: 0x00 -> dirección cursor 0x00 Line1 -> MIOS cursor offset: 0x40 -> dirección cursor 0x40 Line2 -> MIOS cursor offset: 0x80 -> dirección cursor 0x14 (4x20 only) Line3 -> MIOS cursor offset: 0xc0 -> dirección cursor 0x54 (4x20 only) Para pantallas de 4x16 , hay que cambiar la configuración.: Line0 -> MIOS cursor offset: 0x00 -> dirección cursor 0x00 Line1 -> MIOS cursor offset: 0x40 -> dirección cursor 0x40 Line2 -> MIOS cursor offset: 0x80 -> dirección cursor 0x10 (solo 4x16) Line3 -> MIOS cursor offset: 0xc0 -> dirección cursor 0x50 (solo 4x16) Para pantallas de 2 caracteres conectadas a un core usa: Line0 -> MIOS cursor offset: 0x00 -> dirección cursor 0x00 Line1 -> MIOS cursor offset: 0x40 -> dirección cursor 0x40 Line2 -> MIOS cursor offset: 0x80 -> dirección cursor 0x80 Line3 -> MIOS cursor offset: 0xc0 -> dirección cursor 0xc0 (la primera LCD está direccionada por 0x00-0x7f, la segunda LCD está direccionada por 0x80-0xff)
Esta función permite centrar la pantalla si quieres usar
aplicaciones escritas para pantallas de 2x16 en una pantalla
más grande. Ejemplo para una pantalla de 2x20: Line0 -> MIOS cursor offset: 0x00 -> dirección cursor 0x04 Line1 -> MIOS cursor offset: 0x40 -> dirección cursor 0x44 Line2 -> no importa Line3 -> no importa
|
C_IN |
Linea Y0 dirección en <line0> Linea Y1 dirección en <line1> Linea Y2 dirección en <line2> Linea Y3 dirección en <line3> |
C_EJEMPLO |
// configura offsets para una LCD de 4x16 LCD: MIOS_LCD_YAddressSet(0x00, 0x40, 0x10, 0x50);
// configura MIOS para LCDs de 2 caracteres: // (ver también http://www.ucapps.de/mbhp_lcd.html ) MIOS_LCD_YAddressSet(0x00, 0x40, 0x80, 0xc0);
|
Volver |
MIOS_CLCD_SpecialCharInit |
C_DECLARACION |
void MIOS_CLCD_SpecialCharInit(unsigned char num, code char *c_table) |
DESCRIPCION |
inicializa uno de 8 caracteres especiales provistos por LCD HD44780 de caracteres compatible |
C_IN |
número de caracter especial (0-7) en <num>
indicador al char pattern especial en<c_table> (debe
consistir en 8 entradas para cada línea de caracteres) |
C_OUT |
- |
C_EJEMPLO |
ver http://www.ucapps.de/mios_c_lcd_schars.html
|
Volver |
MIOS_CLCD_SpecialCharsInit |
C_DECLARACION |
void MIOS_CLCD_SpecialCharsInit(const char *c_table) |
DESCRIPCION |
inicializa los caracteres especiales provistos por LCD de caracteres compatible HD44780 Ver también: MIOS_CLCD_SpecialCharInit |
C_IN |
indicador a char patterns especiales en <c_table> (debe consistir en 8*8 entradas para cada caracter y línea) |
C_OUT |
- |
C_EJEMPLO |
ver http://www.ucapps.de/mios_c_lcd_schars.html
|
Volver |
MIOS_GLCD_FontInit |
C_DECLARACION |
void MIOS_GLCD_FontInit(code char *font) |
DESCRIPCION |
inicializa una fuente ( icono animado) o mapa de bits. esta función sólo funciona en LCDs gráficas.! |
C_IN |
indicador al cabecero de la fuente en <font> |
C_EJEMPLO |
// establecer fuente por defecto: MIOS_GLCD_FontInit(MIOS_GLCD_FONT) // poner el cursor a 0 MIOS_LCD_CursorSet(0x00); // imprimir caracter 'A' MIOS_LCD_PrintChar('A');
|
Volver |
MIOS_GLCD_GCursorGet |
C_DECLARACION |
unsigned char MIOS_GLCD_GCursorGet(void) |
DESCRIPCION |
devuelve la posición del cursor gráfico Esta función solo funciona con LCDs gráficas |
C_IN |
- |
C_OUT |
posición X directamente devuelta posición Yen MIOS_PARAMETER1 (variable global definida en cmios.h) |
Volver |
MIOS_GLCD_GCursorSet |
C_DECLARACION |
void MIOS_GLCD_GCursorSet(unsigned char x, unsigned char y) |
DESCRIPCION |
establece el cursor gráfico en una pantalla LCD Esta función solo funciona con LCDs gráficas |
C_IN |
posición X en <x> (0-239) posición Y en <y> (0-7) |
C_EJEMPLO |
// ajustar el cursor gráfico en160/7: MIOS_GLCD_GCursorSet(160, 7);
|
Volver |
MIOS_EEPROM_Read |
C_DECLARACION |
unsigned char MIOS_EEPROM_Read(unsigned char addr) |
DESCRIPCION |
lee un byte de la EEPROM. |
C_IN |
dirección en: <addr> (0x00-0xff) y EEADRH (0-3, PIC18F4620 unicamente) |
C_OUT |
devuelve el contenido EEPROM |
C_EJEMPLO |
// carga un byte de la dirección 0x80 value = MIOS_EEPROM_Read(0x80);
|
Volver |
MIOS_EEPROM_ReadPage |
C_DECLARACION |
unsigned char MIOS_EEPROM_ReadPage(unsigned char addr, unsigned char *buffer) |
DESCRIPCION |
lee una página de 64 bytesde la EEPROM La
EEPROM interna del PIC18F452 no provee una lectura de página por
sí misma, en su lugar esta función llama 64 veces a
MIOS_EEPROM_Read. |
C_IN |
pointer to read buffer (64 bytes) in <buffer> address in <addr> (0x00-0xc0) and EEADRH (0-3, PIC18F4620 only) |
C_OUT |
contenido de EEPROM en lectura<buffer> |
C_EJEMPLO |
unsigned char buffer[64];
// leer una página de 64 bytes de la EEPROM en la dirección 0x40 MIOS_EEPROM_ReadPage(0x40, buffer);
|
Volver |
MIOS_EEPROM_Write |
C_DECLARACION |
unsigned char MIOS_EEPROM_Write(unsigned char addr, unsigned char value) |
DESCRIPCION |
Escribe un byte en la EEPROM. El acceso de escritura se omitirá so el contenido es igual al del byte que debe ser escrito. Returned Error Status: 0x00: no hay error 0x01: byte desparejado (falló la escritura) |
C_IN |
byte en <value>, dirección en <addr> (0x00-0xff), high byte en EEADRH (0-3, PIC18F4620 únicamente) |
C_OUT |
Estado de error |
C_EJEMPLO |
unsigned char error = 0;
// writeescribe 0x47 0x11 en la EEPROM en dirección 0x80/0x81 error |= MIOS_EEPROM_Write(0x80, 0x47); error |= MIOS_EEPROM_Write(0x81, 0x11);
if( error ) { // aquí puedes hacer algún manejo de errores }
// nota: es muy improbable que ocurra un error al escribir // en la EEPROM interna, aún así, puedes usar el atajo siguiente:
// escribe 0x47 0x11 en la EEPROM en dirección0x80/0x81 MIOS_EEPROM_Write(0x80, 0x47); MIOS_EEPROM_Write(0x81, 0x11);
|
Volver |
MIOS_EEPROM_WritePage |
C_DECLARACION |
unsigned char MIOS_EEPROM_WritePage(unsigned char addr, unsigned char *buffer) |
DESCRIPCION |
escribe una página de 64 bytes en la EEPROM.
La EEPROM interna del PIC18F452 no provee una página
escrita en sí misma, sino que esta función llama a
MIOS_EEPROM_Write 64 veces. Devuelto Estado de Error: 0x00: no hay error 0x01: byte desparejado (una o más escrituras han fallado) |
C_IN |
indicador para escribir el buffer (64 bytes) en <buffer> dirección en <addr> (0x00-0xc0) y EEADRH (0-3, PIC18F4620 únicamente) |
C_OUT |
Estado de error |
C_EJEMPLO |
unsigned char buffer[64]; unsigned char i;
// llena el buffer con algunos bytes for(i=0; i<64; ++i) buffer[i] = i;
// escribe una página de 64 bytes en la memoria EEPROM en dirección 0x80 MIOS_EEPROM_WritePage(0x80, buffer);
|
Volver |
MIOS_FLASH_Read |
C_DECLARACION |
unsigned char MIOS_FLASH_Read(code char *addr, char *buffer) |
DESCRIPCION |
copia 64 bytes de la memoria FLASH al buffer |
C_IN |
indicador para lectura de buffer (64 bytes) en <buffer> dirección flash en <addr> (0x0000-0x7fc0, debe estar alineado con la página de 64 byte) |
C_OUT |
volcado de memoria en <buffer> |
C_EJEMPLO |
unsigned char buffer[64];
// leer una página de 64 bytes desde la memoria flash en dirección 0x7000 MIOS_FLASH_Read(0x7000, buffer);
|
Volver |
MIOS_FLASH_Write |
C_DECLARACION |
unsigned char MIOS_FLASH_Write(code char *addr, char *buffer) |
DESCRIPCION |
escribe 64 bytes en la memoria FLASH
El acceso a la escritura será omitido si el contenido es igual a
los bytes del buffer. Se previene la escritura en espacio del
programa MIOS. PIC18F452: 0x0000-0x2fff no escribible PIC18F4620: 0x0000-0x2fff no escribible Devuelto Estado de Error: 0x00: no hay error 0x01: byte desparejados (escritura fallida) 0x02: error de acceso (memoria protegida) |
C_IN |
indicador para escritura de buffer(64 bytes) en <buffer> dirección flash en <addr> (debe estar alineado con página de 64 byte) |
C_OUT |
Devuelve estado de error |
C_EJEMPLO |
unsigned char buffer[64]; unsigned char i;
// llenar buffer con algunos bytes for(i=0; i<64; ++i) buffer[i] = i;
// escribir una página de 64 bytes en la memoria flash en dirección 0x7000 if( MIOS_FLASH_Write(0x7000, buffer) ) { // error handler }
|
Volver |
MIOS_BANKSTICK_CtrlGet |
C_DECLARACION |
unsigned char MIOS_BANKSTICK_CtrlGet(void) |
DESCRIPCION |
Devuelve el estado de control del BankStick |
C_IN |
- |
C_OUT |
bit [2..0]: A2-A0 bit [7]: Verificación deshabilitada |
Volver |
MIOS_BANKSTICK_CtrlSet |
C_DECLARACION |
void MIOS_BANKSTICK_CtrlSet(unsigned char ctrl) |
DESCRIPCION |
establece el registro de control del BankStick bit 2-0: selecciona el BankStick (1de 8, dirección definida con pin A0-A2 de la EEPROM) bit 7: si está seleccionado, la verificación durante la escritura será deshabilitada |
C_IN |
contenido de registro de control en <ctrl> |
C_EJEMPLO |
unsigned char error = 0;
// escribe 0x47 0x11 en dirección 0x3000-0x3001 del BankStick número 7 MIOS_BANKSTICK_CtrlSet(0x07); // select 8th BankStick error |= MIOS_BANKSTICK_Write(0x3000, 0x47); error |= MIOS_BANKSTICK_Write(0x3001, 0x11);
|
Volver |
MIOS_BANKSTICK_Read |
C_DECLARACION |
unsigned char MIOS_BANKSTICK_Read(unsigned int addr) |
DESCRIPCION |
lee un byte del BankStick. |
C_IN |
dirección en <addr> (0x0000-0xffff) |
C_OUT |
contenido de BankStick MIOS_BOX_STAT.BS_AVAILABLE cleared if read failed |
C_EJEMPLO |
// carga un byte desde la dirección address 0x7fff (la última en un BankStick de 32 k) value = MIOS_BANKSTICK_Read(0x7fff);
if( !MIOS_BOX_STAT.BS_AVAILABLE ) { // Aquí puedes hacer alguna corrección de errores }
|
Volver |
MIOS_BANKSTICK_ReadPage |
C_DECLARACION |
unsigned char MIOS_BANKSTICK_ReadPage(unsigned int addr, unsigned char *buffer) |
DESCRIPCION |
lee una página de 64 bytes del BankStick. |
C_IN |
indicador para buffer de lectura(64 bytes) en <buffer><BR> dirección en <addr> (0x0000-0xffc0) |
C_OUT |
Contenido de BankStick en buffer de lectura MIOS_BOX_STAT.BS_AVAILABLE también es 0 si la lectura falló |
C_EJEMPLO |
unsigned char buffer[64];
// leer una página de 64 bytes dela memoria del BankStick en dirección 0x1240 MIOS_BANKSTICK_ReadPage(0x1240, buffer);
if( !MIOS_BOX_STAT.BS_AVAILABLE ) { // Aqui puedes hacer alguna corrección de errores }
|
Volver |
MIOS_BANKSTICK_Write |
C_DECLARACION |
unsigned char MIOS_BANKSTICK_Write(unsigned int addr, unsigned char value) |
DESCRIPCION |
escribe un byte en el BankStick.
Si el modo de verificación ha sido habilitado con
MIOS_BANKSTICK_CtrlSet, el acceso a la escritura será omitido si
el contenido es igual al byte que debe ser escrito. Devuelto Estado de Error: 0x00: no hay error 0x01: byte desparejados (la escritura falló) -- Ajusta solo con verificación habilitada 0x02: BankStick no disponible | C_IN |
byte en <value>, dirección en <addr> (0x0000-0xffff) |
C_OUT |
estado de error MIOS_BOX_STAT.BS_AVAILABLE limpiado si la escritura falló. |
C_EJEMPLO |
unsigned char error = 0;
//escribe 0x47 0x11 en dirección 0x3000-0x3001 del BankStick error |= MIOS_BANKSTICK_Write(0x3000, 0x47); error |= MIOS_BANKSTICK_Write(0x3001, 0x11);
if( error ) { // aquí puedes hacer alguna corrección de errores }
|
Volver |
MIOS_BANKSTICK_WritePage |
C_DECLARACION |
unsigned char MIOS_BANKSTICK_WritePage(unsigned int addr, unsigned char *buffer) |
DESCRIPCION |
escribe una pá´gina de 64 bytes en el BankStick. Si el modo de verificación ha sido activado con with
MIOS_BANKSTICK_CtrlSet, el acceso a escritura se omitirá si el contenido es igual al del byte que debe escribirse Estado de error devuelto: 0x00:
no hay error 0x01: byte desparejados (escritura fallida) -- seleccionar
solo si la verificación está activada 0x02:
BankStick no disponible |
C_IN |
indicador para buffer de escritura (64 bytes) en <buffer> dirección en <addr> (0x0000-0xffc0) |
C_OUT |
estado de error en WREG MIOS_BOX_STAT.BS_AVAILABLE es limpiado si la escritura falló |
C_EJEMPLO |
unsigned char buffer[64]; unsigned char i;
// llena el buffer con algunos bytes for(i=0; i<64; ++i) buffer[i] = i;
// escribe una página de 64 bytes enla memoria del BankStick en dirección 0x3000 if( MIOS_BANKSTICK_WritePage(0x3000, buffer) ) { // aquí puedes hacer alguna corrección de errores }
|
Volver |
MIOS_IIC_AckSend |
C_DECLARACION |
void MIOS_IIC_AckSend |
DESCRIPCION |
envía un ACK (Acuse de Recibo)al/los esclavo(s) |
C_IN |
- |
C_OUT |
- |
C_EJEMPLO |
ver MIOS_IIC_ByteSend y MIOS_IIC_ByteReceive
|
Volver |
MIOS_IIC_ByteReceive |
C_DECLARACION |
unsigned char MIOS_IIC_ByteReceive(void) |
DESCRIPCION |
recibe un byte de un esclavo IIC. |
C_IN |
- |
C_OUT |
byte recibido en WREG |
C_EJEMPLO |
// recibir 3 bytes del esclavo IIC conID 0x12
MIOS_IIC_Start(); // start IIC MIOS_IIC_ByteSend(0x12 | 1); // envía direcciónd e dispositivo - // establecer bit #0 para notificar una lectura!!! // no continuar si el dispositivo IIC no está disponible if( MIOS_BOX_STAT.BS_AVAILABLE ) { b0 = MIOS_IIC_ByteReceive; // leer primer byte MIOS_IIC_AckSend(); // manda ACK b1 = MIOS_IIC_ByteReceive; // leer segundo byte MIOS_IIC_AckSend(); // manda ACK b2 = MIOS_IIC_ByteReceive; // leer tercer byte } MIOS_IIC_NakSend(); // manda NAK!!! MIOS_IIC_Stop(); // parar IIC
Para más detalles sobre el protocolo IIC (oficialmente llamado I2C), ver http://www.semiconductors.philips.com/buses/i2c/
|
Volver |
MIOS_IIC_ByteSend |
C_DECLARACION |
void MIOS_IIC_ByteSend(unsigned char b) |
DESCRIPCION |
envía un byte a través del bus IIC y comprueba el acuse de recibo/comprobación. Si el esclavo no envió un acuse de recibo, el flag (MIOS_BOX_STAT_)BS_AVAILABLE en MIOS_BOX_STAT será limpiado. |
C_IN |
byte que debe ser enviado en<b> |
C_OUT |
devuelve 0x00 si ha recibido NAK (NO acuse de recibo), si no != 0x00 debido a razones de compatibilidad, mios_box_stat.BS_AVAILABLE es ajustado en cuanto se recibe ACK |
C_EJEMPLO |
// envía 0x34, 0x56, 0x78 al esclavo IIC con ID 0x12
MIOS_IIC_Start(); // start IIC MIOS_IIC_ByteSend(0x12); // envía la dirección del dispositivo // bit #0 limpiado para notificar una escritura!!! MIOS_IIC_ByteSend(0x34); // enviar primer byte de datos MIOS_IIC_ByteSend(0x56); // enviar segundo byte de datos MIOS_IIC_ByteSend(0x78); // enviar tercer byte de datos MIOS_IIC_Stop(); // parar IIC
Para más detalles sobre el protocolo IIC (oficialmente llamado I2C), ver http://www.semiconductors.philips.com/buses/i2c/
Puedes encontrar un ejemplo realzado con reintento de NAK en la página MBHP_IIC_MIDI
|
Volver |
MIOS_IIC_CtrlGet |
C_DECLARACION |
unsigned char MIOS_IIC_CtrlGet(void) |
DESCRIPCION |
devuelve el estado de control IIC |
C_IN |
- |
C_OUT |
bit 0 si devuelve valor: estrechamiento de reloj activado |
Volver |
MIOS_IIC_CtrlSet |
C_DECLARACION |
void MIOS_IIC_CtrlSet(unsigned char ctrl) |
DESCRIPCION |
habilita
el "estrechamiento de reloj" como se especifica en las caracteristicas
IIC
http://www.semiconductors.philips.com/buses/i2c/ que es necesario
para algunos esclavos que no pueden servir el bus inmediatamente en una
petición. |
C_IN |
<ctrl> = 0x00: estrechamiento de reloj desactivado <ctrl> = 0x01: estrechamiento de reloj activado |
NOTE |
Si está activado, tienes que añadir una resistencia pull-up de 1k a la línea SCL (Pin #22 del PIC) |
C_EJEMPLO |
// habilitar estrechamiento de reloj MIOS_IIC_CtrlSet(0x01);
|
Volver |
MIOS_IIC_NakSend |
C_DECLARACION |
void MIOS_IIC_NakSend(void) |
DESCRIPCION |
envía un NAK (no acuse de recibo) al esclavo (s) | C_IN |
- |
C_OUT |
- |
C_EJEMPLO |
ver MIOS_IIC_ByteSend y MIOS_IIC_ByteReceive
|
Volver |
MIOS_IIC_Start |
C_DECLARACION |
void MIOS_IIC_Start(void) |
DESCRIPCION |
Envía la condición de arranque de IIC (SCL=1, SDA 1->0) |
C_IN |
- |
C_OUT |
- |
C_EJEMPLO |
ver MIOS_IIC_ByteSend y MIOS_IIC_ByteReceive
|
Volver |
MIOS_IIC_Stop |
C_DECLARACION |
void MIOS_IIC_Stop(void) |
DESCRIPCION |
envía la condición de parada de IIC(SCL=0->1, SDA 0->1) |
C_IN |
- |
C_OUT |
- |
C_EJEMPLO |
ver MIOS_IIC_ByteSend y MIOS_IIC_ByteReceive
|
Volverp |
MIOS_TIMER_Init |
C_DECLARACION |
void MIOS_TIMER_Init(unsigned char mode, unsigned int period) |
DESCRIPCION |
inicializa
el timer que llama periódicamente a USER_Timer y lo inicia. La
resolución del timer es de100nS con Prescaler 1:1, 200nS con
1:2,
400nS con 1:4, 800nS con 1:8. El período (número de
relojes) se especifica como un valor de 16 bits |
C_IN |
valor prescaler en <mode>: 0x00: 1:1 0x01: 1:2 0x02: 1:4 0x03: 1:8 número de tics (0..65535) en <period> |
C_OUT |
- |
C_EJEMPLO |
// queremos configurar el prescaler con una frecuencia de 500 Hz = 2 mS // debe usarse prescaler 1:1 // calcula el número de relojes requeridos para este período: // relojes = periodo / 100 nS = 2 mS / 100 nS = 20000 // por consiguiente: MIOS_TIMER_Init(0x00, 20000);
// Ahora la función Timer() se llama cada 2 mS!
|
Volver |
MIOS_TIMER_ReInit |
C_DECLARACION |
void MIOS_TIMER_ReInit(unsigned char mode, unsigned int period) |
DESCRIPCION |
igual que MIOS_TIMER_Init, pero el timer no se reseteará para permitir un reinicio suave |
C_IN |
valor prescaler en <mode>: 0x00: 1:1 0x01: 1:2 0x02: 1:4 0x03: 1:8 número de tics (0..65535) en <period> |
C_OUT |
- |
Volver |
MIOS_TIMER_Start |
C_DECLARACION |
void MIOS_TIMER_Start(void) |
DESCRIPCION |
(re) inicia el timer si ha sido parado anteriormente |
Volver |
MIOS_TIMER_Stop |
C_DECLARACION |
void MIOS_TIMER_Stop(void) |
DESCRIPCION |
para el timer |
Volver |
MIOS_HLP_16bitAddSaturate |
C_DECLARACION |
unsigned char MIOS_HLP_16bitAddSaturate(unsigned char add_value, unsigned int *ptr, unsigned int max_value) |
DESCRIPCION |
añade un valor firmado de 8-bit a un valor de 16 bit y satura
Esto significa: si el valor resultante es mayor que el valor
máximo dado, el resultado será saturado hasta el valor
máximo. Si el valor resultante es menor que 0, el resultado se
saturará a 0. Importante: el valor de 16-bit debe ser alineado con una dirección uniforme de palabra (0x10, 0x12, 0x14,
...). La primera dirección contiene el low-byte y la segunda dirección contiene el high-byte |
C_IN |
valor de 8-bit firmado en <add_value> indicador de variable que debe ser modificado en <ptr> valor máximo en <max_value> |
C_OUT |
escribe un valor absoluto nuevo en *ptr devuelve 1 si el valor ha sido cambiado, 0 si es igual al anterior valor |
C_EJEMPLO |
// resta -5 del valor de 16-bit (unsigned int) MIOS_HLP_16bitAddSaturate(-5, &value, 0x0fff);
|
Volver |
MIOS_HLP_AddressFromTable |
C_DECLARACION |
no disponible en C |
DESCRIPCION |
esta
función de ayuda lee un indicador de una tabla y lo mueve a
TBLPTR. De esta manera, las listas enlazadas se pueden realizar. | NOTA |
TBLPTRU no leído ni cambiado . La tabla debe ser localizada en un segmento de 64k ! |
Volver |
MIOS_HLP_Dec2BCD |
C_DECLARACION |
void MIOS_HLP_Dec2BCD(unsigned int value) |
DESCRIPCION |
convierte un valor decimal de16-bit en BCD |
C_IN |
valor16bit en <value> |
C_OUT |
dígitos de más a la derecha (n1*10^1 and n0*10^0) en MIOS_PARAMETER1 dígitos centrales (n3*10^3 and n2*10^2) en MIOS_PARAMETER2 dígito de la izquierda (n5*10^4) en MIOS_PARAMETER3 |
C_EJEMPLO |
// adquirir el código BCD de 12345 MIOS_HLP_Dec2BCD(12345); // ahora: // MIOS_PARAMETER3 contiene el valor hex 0x01 // MIOS_PARAMETER2 contiene el valor hex 0x23 // MIOS_PARAMETER1 contiene el valor hex 0x45
|
Volver |
MIOS_HLP_GetBitANDMask |
C_DECLARACION |
unsigned char MIOS_HLP_GetBitANDMask(unsigned char value) |
DESCRIPCION |
esta función de ayuda es útil para manipulaciones de bits |
C_IN |
ver mapa debajo |
C_OUT |
0x00 -> 0b11111110 0x01 -> 0b11111101 0x02 -> 0b11111011 0x03 -> 0b11110111 0x04 -> 0b11101111 0x05 -> 0b11011111 0x06 -> 0b10111111 0x07 -> 0b01111111 |
Volver |
MIOS_HLP_GetBitORMask |
C_DECLARACION |
unsigned char MIOS_HLP_GetBitORMask(unsigned char value); |
DESCRIPCION |
esta función de ayuda es útil para manipulaciones de bits |
C_IN |
ver mapa debajo |
C_OUT |
0x00 -> 0b00000001 0x01 -> 0b00000010 0x02 -> 0b00000100 0x03 -> 0b00001000 0x04 -> 0b00010000 0x05 -> 0b00100000 0x06 -> 0b01000000 0x07 -> 0b10000000 |
Volver |
MIOS_HLP_GetIndex_2bytes |
C_DECLARACION |
no disponible en C |
DESCRIPCION |
esta
función de ayuda puede utilizarse para jumptables(tablas de
salto) que contengan instrucciones de 2 bytes
(-> rgoto). Recuerda que las macro JUMPTABLE_2BYTESpermiten usar
esta función de forma segura sin el peligro de que el
código de detrás de la tabla sea ejecutado si el
número índice en WREG es mayor que el número de
entradas |
Volver |
MIOS_HLP_GetIndex_4bytes |
C_DECLARACION |
no disponible en C |
DESCRIPCION |
esta
función de ayuda puede utilizarse para jumptables que
contengan instrucciones de 4 bytes
(->goto). Recuerda que las macro JUMPTABLE_4BYTES permiten el uso de
esta función de manera segura, sin peligro de que el
código tras la tabla sea ejecutado si el número
índice en WREG es mayor al número de entradas |
Volver |
MIOS_HLP_IndirectJump |
C_DECLARACION |
no disponible en C |
DESCRIPCION |
esta función de ayuda lee un indicador de una tabla y salta hasta este indicador |
NOTE |
TBLPTRU
no leído ni cambiado. La tabla y la dirección objetivo
deben estar localizadas en un segmento de 64k ! |
Volver |
MIOS_Delay |
C_DECLARACION |
void MIOS_Delay(unsigned char delay) |
DESCRIPCION |
espera un tiempo exacto recuerda que esta función no funcionará en una rutina de interrupción de servicio! |
C_IN |
tiempo en ms (0-255) |
C_OUT |
- |
C_EJEMPLO |
// esperar exactamente 250 ms MIOS_Delay(250);
|
Volver |
MIOS_GPCounterGet |
C_DECLARACION |
unsigned char MIOS_GPCounterGet(void) |
DESCRIPCION |
toma el valor del contador de propósito general, que es incrementado cada milisegundo |
C_IN |
- |
C_OUT |
valor de contador de propósito general |
Volver |
MIOS_Reset |
C_DECLARACION |
void MIOS_Reset(void) |
DESCRIPCION |
espera hasta que el buffer Tx MIDI está vacío, entonces resetea el SO |
C_IN |
- |
C_OUT |
- |
Volver |
MIOS_SystemResume |
C_DECLARACION |
void MIOS_SystemResume(void) |
DESCRIPCION |
resume todas las tareas de sistema |
C_IN |
- |
C_OUT |
- |
Volver |
MIOS_SystemSuspend |
C_DECLARACION |
void MIOS_SystemSuspend(void) |
DESCRIPCION |
suspende todas las tareas de sistema y usuario excepto las del handler IO MIDI handler |
C_IN |
- |
C_OUT |
- |
Volver |
MIOS_UserResume |
C_DECLARACION |
void MIOS_UserResume(void) |
DESCRIPCION |
resume todas las tareas de usuario |
C_IN |
- |
C_OUT |
- |
Volver |
MIOS_UserSuspend |
C_DECLARACION |
void MIOS_UserSuspend(void) |
DESCRIPCION |
suspende todas las tareas de usuario |
C_IN |
- |
C_OUT |
- |
Volver |
USER_AIN_NotifyChange |
C_DECLARACION |
void AIN_NotifyChange(unsigned char pin, unsigned int pin_value) |
DESCRIPCION |
Esta función es llamada por MIOS cuando se ha movido un pote |
C_IN |
Número de Pote en <pin> valor de10 bit en <pin_value> |
ISR |
no |
Volver |
USER_DIN_NotifyToggle |
C_DECLARACION |
void DIN_NotifyToggle(unsigned char pin, unsigned char pin_value) |
DESCRIPCION |
Esta función es llamada por MIOS cuando ha sido accionado un botón. |
C_IN |
Número de Botón en <pin> Valor de Botón <pin_value>: - 1 si el botón ha sido desactivado(=5V) - 0 si el botón ha sido presionado (=0V) |
ISR |
no |
Volver |
USER_DISPLAY_Init |
C_DECLARACION |
void DISPLAY_Init(void) |
DESCRIPCION |
Esta
función es llamada por MIOS cuando el contenido de la pantalla
debe ser inicializado. Este es el caso durante el arranque
después de que se haya mostrado en la pantalla un mensaje
temporal |
C_IN |
- |
C_OUT |
- |
ISR |
no |
Volver |
USER_DISPLAY_Tick |
C_DECLARACION |
void DISPLAY_Tick(void) |
DESCRIPCION |
Esta
función es llamada por MIOS en el mainloop(loop principal)
cuando no se muestra en la pantalla ningún mensaje temporal. |
C_IN |
- |
C_OUT |
- |
ISR |
no |
Volver |
USER_ENC_NotifyChange |
C_DECLARACION |
void ENC_NotifyChange(unsigned char encoder, char incrementer) |
DESCRIPCION |
MIOS llama a esta función cuando se ha movido un encoder |
C_IN |
número de en <encoder> incrementer firmado en <incrementer> - es positivo cuando el encoder se ha girado en el sentido de las agujas del reloj - es negativocuando el encoder se ha girado en sentido contrario a las agujas del reloj |
ISR |
no |
Volver |
USER_Init |
C_DECLARACION |
void Init(void) |
DESCRIPCION |
MIOS llama a esta función después del encendido para inicializar la aplicación |
C_IN |
- |
C_OUT |
- |
ISR |
no |
Volver |
USER_LCD_Clear |
C_DECLARACION |
no disponible en C - el código es parte del controlador LCD (app_lcd.inc) |
DESCRIPCION |
MIOS llama a esta función cuando la LCD personal debe ser limpiada |
NOTA |
ver custom_lcd_example para más detalles |
Volver |
USER_LCD_Cmd |
C_DECLARACION |
no disponible en C - el código es parte del controlador LCD (app_lcd.inc) |
DESCRIPCION |
envía un comando a la pantalla LCD En CLCDs: usa esta función para decodificar los comandos HD44780 si es necesario On GLCDs: ignora esta función! |
NOTE |
ver custom_lcd_example para más detalles |
Volver |
USER_LCD_CursorSet |
C_DECLARACION |
no disponible en C - el código es parte del controlador LCD (app_lcd.inc) |
DESCRIPCION |
MIOS llama esta función cuando debe camabiarse el cursor |
NOTE |
ver custom_lcd_example para más detalles |
Volver |
USER_LCD_Data |
C_DECLARACION |
no disponible en C - el código es parte del controlador LCD (app_lcd.inc) |
DESCRIPCION |
envía un valor de datos a la pantalla LCD En CLCDs: enrama directamente a USER_LCD_PrintChar En GLCDs: ignora esta funcion! |
NOTA |
ver custom_lcd_example para más detalles |
Volver |
USER_LCD_Init |
C_DECLARACION |
no disponible en C - el código es parte del controlador LCD (app_lcd.inc) |
DESCRIPCION |
MIOS llama a esta función cuando debe ser inicializada la LCD personal |
NOTA |
ver custom_lcd_example para más detalles |
Volver |
USER_LCD_PrintChar |
C_DECLARACION |
no disponible en C - el código es parte del controlador LCD (app_lcd.inc) |
DESCRIPCION |
MIOS llama a esta función cuando debe imprimirse un caracter |
NOTA |
ver custom_lcd_example para más detalles |
Volver |
USER_LCD_SpecialCharInit |
C_DECLARACION |
no disponible en C - el código es parte del controlador LCD (app_lcd.inc) |
DESCRIPCION |
ver MIOS_CLCD_SpecialCharInit |
NOTE |
ver custom_lcd_example para más detalles |
Volver |
USER_MIDI_NotifyRx |
C_DECLARACION |
no disponible en C - el código debe ser añadido a mios_wrapper |
DESCRIPCION |
MIOS llama a esta función cuando se ha recibido un byte MIDI. Puede
usarse para monitorizar la actividad Rx o para lleva a cabo alguna
acción- por ej. reaccionar a eventos en tiempo real como un
reloj MIDI (0xf8) con latencia mínima. Recuerda que esta es una
rutina de interrupción de servicio! Usa FSR2 en vez de FSR0 y
IRQ_TMPx en lugar de TMPx -- y haz la rutina lo más
rápido posible! |
ISR |
sí |
Volver |
USER_MIDI_NotifyTx |
C_DECLARACION |
no disponible en C - el código debe ser añadido a mios_wrapper |
DESCRIPCION |
MIOS
llama a esta función antes de la transferencia de un byte MIDI.
Esto se puede usar para monitorizar la actividad Tx o hacer cualquier
otra acción antes de que se envíe el byte. (por ej.
activar un pin para salidas MIDI multiplexadas) Recuerda que esta
es una rutina de interrupción de servicio! Usa FSR2 en lugar
de FSR0 y IRQ_TMPx en lugar de TMPx -- y haz la rutina lo
más rápido posible! |
ISR |
sí |
Volver |
USER_MPROC_DebugTrigger |
C_DECLARACION |
no disponible en C - el código debe ser añadido a mios_wrapper |
DESCRIPCION |
MIOS
llama a esta función cuando se ha recibido un comando de
depuración de errores (debug) se ha recibido vía SysEx |
ISR |
no |
Volver |
USER_MPROC_NotifyFoundEvent |
C_DECLARACION |
void MPROC_NotifyFoundEvent(unsigned char evnt0, unsigned char evnt1, unsigned char evnt2) |
DESCRIPCION |
MIOS llama a esta función cuando ha sido recibido un evento MIDI que ha sido especificado en la tabla CONFIG_MIDI_IN |
C_IN |
Primer byte de evento MIDI en <evnt0> Segundo byte de evento MIDI in <evnt1> Tercer byte de evento MIDI in <evnt2> |
C_OUT |
- |
ISR |
no |
Volver |
USER_MPROC_NotifyReceivedByte |
C_DECLARACION |
void MPROC_NotifyReceivedByte(unsigned char byte) |
DESCRIPCION |
MIOS llama a esta función cuando se ha recibido un byte MIDI |
C_IN |
byte MIDI recibido en <byte> |
C_OUT |
- |
ISR |
no |
Volver |
USER_MPROC_NotifyReceivedEvent |
C_DECLARACION |
void MPROC_NotifyReceivedEvent(unsigned char evnt0, unsigned char evnt1, unsigned char evnt2) |
DESCRIPCION |
MIOS llama a esta función cuando se ha recibido un evento MIDI completo- |
C_IN |
primer byte de evento MIDI en <evnt0> segundo byte de evento MIDI in <evnt1> tercer byte de evento MIDI in <evnt2> |
C_OUT |
- |
ISR |
no |
Volver |
USER_MPROC_NotifyTimeout |
C_DECLARACION |
void MPROC_NotifyTimeout(void) |
DESCRIPCION |
MIOS llama a esta función cuando un evento MIDI no ha sido completamente recibido en 2 segundos |
C_IN |
- |
C_OUT |
- |
ISR |
no |
Volver |
USER_SR_Service_Finish |
C_DECLARACION |
void SR_Service_Finish(void) |
DESCRIPCION |
MIOS llama a esta función después de que se hayan cargado los registros shift. Recuerda
que esta es una rutina de interrupción de servicio! Usa FSR2 en
lugar de FSR0 y IRQ_TMPx en lugar de TMPx -- y haz la rutina lo
más rápido posible! |
C_IN |
- |
C_OUT |
- |
ISR |
sí |
Volver |
USER_SR_Service_Prepare |
C_DECLARACION |
void SR_Service_Prepare(void) |
DESCRIPCION |
MIOS llama a esta función antes de que se hayan cargado los registros shift. Recuerda que esta es una rutina de interrupción de servicio! Usa FSR2
en lugar de FSR0 y IRQ_TMPx en lugar de TMPx -- y haz la rutina lo más
rápido posible! |
C_IN |
- |
C_OUT |
- |
ISR |
sí |
Volver |
USER_Tick |
C_DECLARACION |
void Tick(void) |
DESCRIPCION |
MIOS llama a esta función en el loop principal (mainloop) cuando no hay otra cosa que hacer |
C_IN |
- |
C_OUT |
- |
ISR |
no |
Volver |
USER_Timer |
C_DECLARACION |
void Timer(void) |
DESCRIPCION |
MIOS llama periódicamente a esta función. La frecuencia debe ser inicializada con MIOS_Timer_Set Recuerda que esta es una rutina de interrupción de servicio! Usa FSR2
en logar de FSR0 y IRQ_TMPx en lugar de TMPx --y haz la rutina lo más
rápido posible! |
C_IN |
- |
C_OUT |
- |
ISR |
sí |
Volver |
Last update: 2015-09-24
Copyright © 1998-2015, Thorsten Klose. All rights reserved.
|