FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres   Groupes d'utilisateursGroupes d'utilisateurs  Galerie PhotosGalerie Photos   S'enregistrerS'enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

BP et instruction switch



 
Poster un nouveau sujet   Répondre au sujet    forums.jelectronique.com Index du Forum -> WinAVR-AVR GCC WinAVR-AVR GCC
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
Omsi
Invité





MessagePosté le: 21 Mar 2008 14:11    Sujet du message: BP et instruction switch BP et instruction switch Répondre en citant

bonsoir,bonjour
eh oui encore moi,cette fois ci je veux faire le prog suivant:
je pousse une fois sur BP=>la led clignote 5 fois,je pousse deux fois sur BP=>10 fois
et je pousse trois fois sur Bp=> 20 fois
voilà l debut de mon code,j'aimerai un peu d'aide cette fois ci et merci d'avance Cool
Code:

#include <avr/io.h>
#include <avr/interrupt.h>

enum etat_led { IDLE,etat_5,etat_10,etat_20 };

volatile unsigned char etat_led, prev_etat_led,BP,count;


int main(void)
{
   DDRD |= (0 << PD2); //PD2 as input(INTO)
   DDRB |= (1 << PB0); //PB0 as output(led)
   PORTD |= (1 << PD2); //Pull-up on PD2
   
   MCUCR |= ((1 << ISC01) | (1 << ISC11)); //downfront 1/0
   GICR |= (1 << INT0); //enable INT0
   TCCR1A |= ((1 << COM1A1) | (1 << COM1A1)); //CTCmode TIM1 channel A
   TCCR1B |= ((1 << WGM12) | (1 << CS12)); //prescaler 256 & CTCmode
   OCR1A = 19531.25; //Compare value @ 0,5s for 10MHZ
   TIMSK |= ((1 << OCIE1A) | (1 << TOIE1)); //enable ovf & output compare A
   sei();
}

ISR(INT0_vect)
{

}

ISR(TIMER1_COMPA_vect)
{
   
   switch (etat_led)
   {
      case IDLE:
      

      break;
      
      case etat_5:
      
         
         count=5;
         if(count!=0)
         {
            PORTB ^=(1 << PB0);
            count--;
      
         }
         
      
      break;
      
      
      case etat_10:
   
      
         
         
      
      break;
      case etat_20:
      
      break;
      default:
      
      break;
      
   }
   
}
Revenir en haut de page
Omsi
Invité





MessagePosté le: 25 Mar 2008 16:27    Sujet du message: BP et instruction switch RE Répondre en citant

salut tout le monde,pour la suite de mon code,j'ai réussi à faire fonctionner le BP appuyé une seule fois seulement ,la seconde fois il ne se passe rien,donc j'apprécierai votre aide s'il vous plait.
Voici mon code non-fini:
Code:

#include <avr/io.h>
#include <avr/interrupt.h>

enum etat_led { IDLE,init_etat_5,etat_5,init_etat_10,etat_10,init_etat_20,etat_20 };

volatile unsigned char BP,count=0;


int main(void)
{

   DDRD |= (0 << PD2); //PD2 as input(INTO)
   DDRB |= (1 << PB0); //PB0 as output(led)
   PORTD |= (1 << PD2); //Pull-up on PD2
   
   MCUCR |= ((1 << ISC01) | (1 << ISC11)); //front descendant 1/0
   GICR |= (1 << INT0); //enable INT0
   TCCR1A |= ((1 << COM1A1) | (1 << COM1A1)); //CTCmode TIM1 channel A
   TCCR1B |= ((1 << WGM12) | (1 << CS12)); //prescaler 256 & CTCmode
   TIMSK |= ((1 << OCIE1A) | (1 << TOIE1)); //enable ovf & output compare A
   OCR1A = 19531.25; //Compare value @ 0,5s for 10MHZ
   sei();
   while(1);
   
}

ISR(INT0_vect)
{
      BP++;
   if(BP==3)
   {
      BP=0;
   }

   
}

ISR(TIMER1_COMPA_vect)
{
   switch (BP)
   {
      case IDLE:
         break;
      
      case etat_5:
         if(BP==1)
         {
            if(count<=10)
            {
               PORTB ^=(1 << PB0);
               count++;
            }
         }   
         break;
         BP=1;
         count=0;
      
      case etat_10:
         if(BP==2)
         {
            if(count<=20)
            {
               PORTB ^=(1 << PB0);
               count++;
            }
         }   
         break;
         BP=2;
         count=0;
      
      
      
   }
   
}

Revenir en haut de page
Omsi
Invité





MessagePosté le: 26 Mar 2008 9:22    Sujet du message: BP et instruction switch Répondre en citant

PS:
Il n'y a aucune erreur à corriger pour votre information,il me faut juste quelques idées pour l'aboutissement de ce code .
Merci.
Revenir en haut de page
Omsi
Invité





MessagePosté le: 28 Mar 2008 13:34    Sujet du message: BP et instruction switch Hihi Répondre en citant

bonjour,bonsoir
ben voilà comme d'habitude je fini par y arriver seul, donc le code est fini si quelqu'un est interessé faites moi signe (h)
Revenir en haut de page
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    forums.jelectronique.com Index du Forum -> WinAVR-AVR GCC Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  
Vous pouvez poster de nouveaux sujets dans ce forum
Vous pouvez répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum
Vous ne pouvez pas joindre des fichiers
Vous pouvez télécharger des fichiers


Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com