Dans un premier temps j'ai pensé à utiliser l'USI mais cela ne me laissait pas vraiment le choix des pins utilisés. Comme sur les ATtiny cela est assez important j'ai préféré faire de cette façon surtout que j'aime bien pouvoir laissez le programmateur branché sur le Tiny pendant que je bidouille.
C'est vrai que ça peut poser probléme dans certain montage de pas pouvoir choisir les pins.
J'ai mis cela dans un .h avec quelques extensions :
- Envoi de chaînes : TXprint(string, booleen saut de ligne)
- Envoi en décimal ascii : DECprint(unsigned int)
- Envoi en hexa : HEXprint(unsigned int, byte nombre de digits)
- Délai en mS : mydelay(unsigned int)
Si tu veut pas te casser la tête à faire toute les fonctions pour chaque type de données tu peut faire une classe TinyUART (par exemple) avec les fonctions de base (available(), read(), peek(), flush() et write()) et la faire hériter de "stream" (qui hérite elle même de "print").
Ca te donne alors accès au fonctions standard telle que .print(), println(), ...