Pendant la routine d'initialisation de mon code, j'utilise pour faire des choses comme:
clr r0 ; will always stay zero
et:
out PORTA, r0; initialize ports
out DDRA, r0
out PORTB, r0
...
Est-ce réellement nécessaire? Ou puis-je être sûr que cela se fait automatiquement lors de la réinitialisation? Surtout, puis-je compter sur tous les ports à définir comme entrées par défaut, donc il n'y a pas de problème avec les votes externes quand aucun code n'est exécuté?
L'initialisation du port est TOUJOURS une bonne idée, indépendamment de ce que dit la fiche technique.
Si la fiche technique ne dit rien, c'est une idée absolument vitale.
Vous devez uniquement définir le contenu des données de port si vous vous souciez de ce qui se passera lorsque votre programme s'exécutera.
Si vous ne vous souciez pas du résultat, vous n'avez pas à définir les bits de données du port :-).
Si les fabricants indiquent explicitement dans les fiches techniques que les bits de données de port sont définis ou effacés, ils peuvent être MAIS c'est quand même une très bonne idée de les initialiser vous-même de toute façon. Les "conditions aux limites" sont celles où la plupart des choses tournent mal - par exemple, le début d'une boucle, la fin d'une boucle, le bouclage circulaire d'un tampon, .... Le démarrage du processeur est un équivalent matériel. Dans un monde réel avec du bruit et des pépins et des gens, être en charge du destin de vos programmes autant que vous le pouvez est une très bonne idée. L'initialisation du port est une partie facile de cela.
la source
Ni les registres ni la SRAM ne sont initialisés lors de la réinitialisation, seuls certains des registres périphériques. Vous devez initialiser les choses que vous utilisez.
la source
UCSRC
dans la fiche technique. Qu'en est-il des ports d'E / S, en particulier de la direction des données?