Parallax Propeller Manual Del Usuario página 192

Kit educativo
Tabla de contenido

Publicidad

Lista de Códigos de Objetos
PUB start(rxpin, txpin, mode, baudrate) : okay
{{
Inicia controlador serial en un cog nuevo
rxpin
entrada recibe señales del pin periférico de TX
txpin
salida envía señales al pin periférico de RX
mode - bits en esta variable configuran la señal
bit 0 invierte rx
bit 1 invierte tx
bit 2 abre fuente/drenado tx
bit 3 ignora eco tx en rx
baudrate - bits por segundo
okay
regresa falso si no hay cog disponible.
}}
stop
longfill(@rx_head, 0, 4)
longmove(@rx_pin, @rxpin, 3)
bit_ticks := clkfreq / baudrate
buffer_ptr := @rx_buffer
okay := cog := cognew(@entry, @rx_head) + 1
PUB stop
'' Detiene controlador serial
if cog
cogstop(cog~ - 1)
longfill(@rx_head, 0, 9)
PUB tx(txbyte)
'' Envía byte (puede esperar por espacio en buffer)
repeat until (tx_tail <> (tx_head + 1) & $F)
tx_buffer[tx_head] := txbyte
tx_head := (tx_head + 1) & $F
if rxtx_mode & %1000
rx
PUB rx : rxbyte
'' Recibe byte (puede esperar por byte)
'' rxbyte regresa $00..$FF
repeat while (rxbyte := rxcheck) < 0
PUB rxflush
'' Flush receive buffer
repeat while rxcheck => 0
PUB rxcheck : rxbyte
'' Verifica si recibió byte (nunca espera)
'' rxbyte regresa -1 si no se recibió byte, $00..$FF si hay byte
rxbyte--
if rx_tail <> rx_head
Pagina 192 · Kit Educativo de Prácticas Propeller: Fundamentos
libera un cog

Publicidad

Tabla de contenido
loading

Tabla de contenido