Pages: [1]   Go Down
Author Topic: Port série logiciel pour Tiny  (Read 1646 times)
0 Members and 1 Guest are viewing this topic.
Near Paris in France
Offline Offline
Full Member
***
Karma: 0
Posts: 193
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Afin de ne pas avoir à maintenir plusieurs sujets je ne conserve que la version internationale publiée à cet endroit :

http://arduino.cc/forum/index.php/topic,118794.0.html

JLB
« Last Edit: August 18, 2012, 02:29:11 am by jihelbi » Logged

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Dans le même genre il existe une note d'application d'ATMEL au sujet du software serial sur ATTiny :
http://www.avrfreaks.net/index.php?module=Freaks%20Tools&func=viewItem&item_id=525
(Le .pdf contient les explications détaillés et le .zip contient le code d'exemple + la librairie.)

Cette note d'application est basé sur le même principe que le code de Jihelbi mais au lieu d'un couple PCint + timer elle utilise un couple timer + USI (module de communication série universel des ATtiny).
A voir niveau taille du code ce que ça donne en comparaison.
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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(), ...
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Et cela me donne une librairie de 3 Ko...

J'en suis à compter les octets. C'est pour cela que je n'ais pas fait une librairie c++.
Aie, c'est vrai.

Dans ce cas, c'est un peu relou sur plateforme AVR mais tu peut implémenter tes fonctions en tant que stream FILE*.
Et utiliser les fonctions standard pour I/O textuelle : printf(), scanf(), ...
http://www.gnu.org/savannah-checkouts/non-gnu/avr-libc/user-manual/group__avr__stdio.html
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Pages: [1]   Go Up
Jump to: