240Fermer242
vinceLe 23/09/2019 à 17:41
SERCTL est le registre qui permet de contrôler les paramètres du port Série
Sur IODAT, tu as une info pour détecter un câble branché
La vitesse se règle dans les paramètres du TIMER n°4
Le bug sur le déclenchement de l'interruption (selon son niveau au lieu du front) fait qu'elle se déclenche en continu et qu'il faut d'abord désactiver l'interruption quand elle survient ensuite rabaisser le niveau et après la réactiver sinon elle se déclenche en boucle.

RXINTEN écrit à 1 correspond bien à l'activation du mode interruption (et donc il faut "binder")

L'interruption en réception se déclenche aussi à l'envoi, c'est un "bug" connu.

Les bits sont transmis par un registre à décalage. Pour envoyer N octets de suite tu dois prévoir que l'octet x+1 ne doit pas être transmis (dans SERDAT) tant que TXRDY n'est pas up. (le fameux masque 0x80 sur SERCTL)

L'irq 4 a un fonctionnement particulier quand elle est déclenchée par l'UART, au lieu d'être "clock defined", elle devient "bit defined" vu que c'est la fin du chargement du registre à décalage qui déclenche l'interruption. Au final au lieu d'avoir un déclenchement toutes les 1/fréquence_timer, c'est 1/fréquence_timer+cycles de travail du registre à décalage