Eis abaixo o fluxograma da rotina, que deve ser chamada com 2 parâmetros:
- Endereço do buffer que vai receber os dados
- Tamanho do buffer de recepção
Uma simplificação importante que fiz, foi que considerar que o buffer está vazio na inícion da chamada da rotina. Isso evita a necessidade de uma chamada de inicialização do buffer e simplifica o tratamento de erros.
Outra vantagem é não depender diretamente de um buffer em RAM para receber temporariamente os caracteres da RS232, o que gerava a necessidade de um LDIR para o destino dos bytes. Com o esquema atual, basta apontar para a região de memória que deve receber os dados e dizer qual o tamanho máximo do buffer de dados.
Caso tudo a recepção tenha se processado corretamente, a quantidade de bytes recebidos é retornada. Caso contrário, um dos códigos de erro é retornado:
- ERFUL - Buffer Cheiro
- ERFRA - "Framing error", ou stop bit recebido incorretamente
- ERBRK - Sinal RTS foi desativado pelo PC antes que o "Start" Bit fosse enviado.
Um comentário:
subsidise goal niger janet coxstate nurse disclosure amanda scores overall airplane
semelokertes marchimundui
Postar um comentário