Club robotique de Sophia-Antipolis
Accueil > ... > Forum 740
6 mars 2009, 15:19, par jbe
Bravo, une manipulation sympa.
Un soucis, l’instruction inline va donc rajouter n fois le bloc lorsqu’il sera appelé, et donc rajouter n fois des lignes dans le programme compilé.
Mais c’est comme d’habitude, un compromis entre temps d’exécution et taille mémoire.
De plus, pourriez vous faire cette même manipulation en utilisant la bibliothèque sbit.h. Une utilisation de cette bibliothèque est écrite ci dessous.
Ce qui m’intéresse, c’est l’utilisation de sbit , par rapport a cbi et sbi.
/** Algo Studio - SansNom **/ #define F_CPU 1000000UL #include <inttypes.h> #include #include #include #include
#define bp0 SBIT (PIND, 0) #define bp1 SBIT (PIND, 1) #define bp2 SBIT (PIND, 2) #define bp3 SBIT (PIND, 3)
#define LED0 SBIT (PORTB, 0) #define LED1 SBIT (PORTB, 1) #define LED2 SBIT (PORTB, 2) #define LED3 SBIT (PORTB, 3)
/*** le code exécutable commence ici ***/ int main(void) // 5 Debut Prog (RESET) DDRD =0b00000000 ; DDRB= 0b11111111 ; do // 2 Début d'itération perpétuelle if (bp0 == 1) LED0 = 1 ; else LED0 = 0 ; // 3 Fin d'itération perpétuelle while(1) ; return 0 ; // exigé par le compilateur WinAVR // Fin de la fonction "main" /* Fin du texte */
Debut Prog
Début d'itération perpétuelle
Fin d'itération perpétuelle
Cordialement
jbe
Attention, votre message n’apparaîtra qu’après avoir été relu et approuvé.
Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.
Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.
{{gras}}
{italique}
-*liste
[texte->url]
<quote>
<code>
<q>
<del>
<ins>
Veuillez laisser ce champ vide :
Bravo, une manipulation sympa.
Un soucis, l’instruction inline va donc rajouter n fois le bloc lorsqu’il sera appelé, et donc rajouter n fois des lignes dans le programme compilé.
Mais c’est comme d’habitude, un compromis entre temps d’exécution et taille mémoire.
De plus, pourriez vous faire cette même manipulation en utilisant la bibliothèque sbit.h.
Une utilisation de cette bibliothèque est écrite ci dessous.
Ce qui m’intéresse, c’est l’utilisation de sbit , par rapport a cbi et sbi.
/** Algo Studio - SansNom **/
#define F_CPU 1000000UL
#include <inttypes.h>
#include
#include
#include
#include
#define bp0 SBIT (PIND, 0)
#define bp1 SBIT (PIND, 1)
#define bp2 SBIT (PIND, 2)
#define bp3 SBIT (PIND, 3)
#define LED0 SBIT (PORTB, 0)
#define LED1 SBIT (PORTB, 1)
#define LED2 SBIT (PORTB, 2)
#define LED3 SBIT (PORTB, 3)
/*** le code exécutable commence ici ***/
int main(void) // 5
Debut Prog
(RESET)DDRD =0b00000000 ;
DDRB= 0b11111111 ;
do // 2
Début d'itération perpétuelle
if (bp0 == 1)
LED0 = 1 ;
else
LED0 = 0 ;
// 3
Fin d'itération perpétuelle
while(1) ;
return 0 ; // exigé par le compilateur WinAVR
// Fin de la fonction "main"
/* Fin du texte */
Cordialement
jbe