Ir ao conteúdo
  • Cadastre-se

AllanRoncali

Membro Pleno
  • Posts

    26
  • Cadastrado em

  • Última visita

posts postados por AllanRoncali

  1. @MatheusLPS,

     

    Por acaso você está questionando a opção sexual da Isadora ??????? 

    Cuidado que ele pode te processar por discriminação !!!!     :lol:

    Mas algo me diz que existe um dedo de algum administrador do Fórum nessa suposta "troca de identidade" , quem sabe o @Bcpetronzio tenha "colocado a mão"  nisso kkk !

     

     

    Paulo

    kkkk alem da galera ajudar a resolver problema de programação eles divertem a gente!! site nota 10!! kkkkkkkkkkkkkkkkkkkkkkk

  2. @AllanRoncali,

     

    Esse problema de ruído no botão chama-se Bouncing. E as técnicas de eliminar chamam-se Debouncing. Pesquise aqui no Fórum , tem muita coisa sobre isso.

     

    Paulo

    ja ouvi falar disso mas quando eu estudava assembly!!! vou pesquisar agora!!! :)  grato!!!!

    ja ouvi falar disso mas quando eu estudava assembly!!! vou pesquisar agora!!! :)  grato!!!!

    entendi o que é!!! eu coloco um delay antes do teste do botao!!!

    tipo assim: 

     

    if(botao = 1)

    {

    delay_ms(100);

    if(botão = 1)

    {

    // Botão acionado.

    }

    else if(botão = 1)

    {

    // nao esperou tempo suficiente

    }

    {

    ja ouvi falar disso mas quando eu estudava assembly!!! vou pesquisar agora!!! :)  grato!!!!

    entendi o que é!!! eu coloco um delay antes do teste do botao!!!

    tipo assim: 

     

    if(botao = 1)

    {

    delay_ms(100);

    if(botão = 1)

    {

    // Botão acionado.

    }

    else if(botão = 1)

    {

    // nao esperou tempo suficiente

    }

    {

    mas ai eu também posso mudar o tempo dos meus efeitos!! 

  3. É por causa dos delays chamados dentro dos métodos de efeitos. O botão demora cerca de 1 segundo para mudar..

    acabei de achar na minha apostila o condicional switch!! foi exatamente o que eu nao tinha entendido quando estudei a apostila!!! kkkkkkkk

    com relaçao ao tempo eu vou modificar todos os efeitos e colocar tempo menor!!!

    acabei de achar na minha apostila o condicional switch!! foi exatamente o que eu nao tinha entendido quando estudei a apostila!!! kkkkkkkk

    com relaçao ao tempo eu vou modificar todos os efeitos e colocar tempo menor!!!

    a questao de reduzir o tempo deu certo!! 

    pessoal!! fiquei muito grato pela força!!! Deus abençoes vocês!!! 

  4.  

    Tente assim então:

    unsigned char flag = 0;unsigned char ap = 0;void main(){   do   {      if (input(mode) && !ap)      {         flag = !flag;         ap = 1;      }      if (!input(mode) && ap)         ap = 0;      if (flag)         efeito1();      else         efeito2();   }   while (true);}

    legal!! funcionou!!! :) pra dois efeitos!! to tentando entender a logica dele pra ver se consigo inserir mais efeitos, mas não ta compilando!!!

    olha so:

     

    unsigned char flag = 0;
    unsigned char ap = 0;
     
    //programa principal
     
    void main()
    {
       do
       {
          if (input(mode) && !ap)
          {
             flag = !flag;
             ap = 1;
          }
     
          if (!input(mode) && ap)
             ap = 0;
     
          if (flag)
             efeito1();
          else
             efeito2(); 
          else
             efeito3();
           }
       while (true);
    }
     
    ai eu criei mais uma sub-rotina pra efeito3!! 
     
    sera que nao precisaria então de um contador que tivesse um limite de falou igual a quantidade de efeitos?? dessa forma poderia enumerar os efeitos e o valor do contador seleciona o efeito de numero equivalente ao valor do contador! mais ou menos assim:
     
    #define RA0 mode
    char a = 1
    char contador = 0
    char limite = 3
     
    inicio
    {
          se (!input (mode));
                a + contador = contador;
         {
           se (contador == 1)
                efeito1();                  
     
           senao (contador == 2)
                 efeito2();
     
           senao (contador == 3)
                 efeito3();
     
           se (limite>3; contador = 0)
     
      }
    }
            valeu!!!

     

    Pra 3 tem que ser assim:

    unsigned char flag = 0;unsigned char ap = 0;void main(){   unsigned char quantidadeEfeitos = 3;//Mude a quantidade de efeitos aqui..   do   {      if (input(mode) && !ap)      {         flag++;         ap = 1;         if (flag >= quantidadeEfeitos)           flag = 0;      }      if (!input(mode) && ap)         ap = 0;            switch (flag)      {          case 0: efeito1(); break;          case 1: efeito2(); break;          case 2: efeito3(); break;          //Insira mais efeitos aqui..      }   }   while (true);}

    me mandou antes de eu terminar de por outra duvida!!! kkkkkkkkkkkkkkk 

    @AllanRoncali,

     

    O que eu falei sobre ruídos, pode ser que você não perceba na simulação, mas na montagem real vai perceber sim ....

     

    Paulo

    realmente o ruido apareceu!!! o simulador leva tempo pra perceber o pulso no mode!!

    legal!! funcionou!!! :) pra dois efeitos!! to tentando entender a logica dele pra ver se consigo inserir mais efeitos, mas não ta compilando!!!

    olha so:

     

    unsigned char flag = 0;
    unsigned char ap = 0;
     
    //programa principal
     
    void main()
    {
       do
       {
          if (input(mode) && !ap)
          {
             flag = !flag;
             ap = 1;
          }
     
          if (!input(mode) && ap)
             ap = 0;
     
          if (flag)
             efeito1();
          else
             efeito2(); 
          else
             efeito3();
           }
       while (true);
    }
     
    ai eu criei mais uma sub-rotina pra efeito3!! 
     
    sera que nao precisaria então de um contador que tivesse um limite de falou igual a quantidade de efeitos?? dessa forma poderia enumerar os efeitos e o valor do contador seleciona o efeito de numero equivalente ao valor do contador! mais ou menos assim:
     
    #define RA0 mode
    char a = 1
    char contador = 0
    char limite = 3
     
    inicio
    {
          se (!input (mode));
                a + contador = contador;
         {
           se (contador == 1)
                efeito1();                  
     
           senao (contador == 2)
                 efeito2();
     
           senao (contador == 3)
                 efeito3();
     
           se (limite>3; contador = 0)
     
      }
    }
            valeu!!!

    me mandou antes de eu terminar de por outra duvida!!! kkkkkkkkkkkkkkk 

    realmente o ruido apareceu!!! o simulador leva tempo pra perceber o pulso no mode!!

    o codigo rodou!!! so leva tempo pro programa reconhecer o botao mode

  5.  

    Tente assim então:

    unsigned char flag = 0;unsigned char ap = 0;void main(){   do   {      if (input(mode) && !ap)      {         flag = !flag;         ap = 1;      }      if (!input(mode) && ap)         ap = 0;      if (flag)         efeito1();      else         efeito2();   }   while (true);}

    legal!! funcionou!!! :) pra dois efeitos!! to tentando entender a logica dele pra ver se consigo inserir mais efeitos, mas não ta compilando!!!

    olha so:

     

    unsigned char flag = 0;
    unsigned char ap = 0;
     
    //programa principal
     
    void main()
    {
       do
       {
          if (input(mode) && !ap)
          {
             flag = !flag;
             ap = 1;
          }
     
          if (!input(mode) && ap)
             ap = 0;
     
          if (flag)
             efeito1();
          else
             efeito2(); 
          else
             efeito3();
           }
       while (true);
    }
     
    ai eu criei mais uma sub-rotina pra efeito3!! 
    sera que nao precisaria então de um contador que tivesse um limite de falou igual a quantidade de efeitos?? dessa forma poderia enumerar os efeitos e o valor do contador seleciona o efeito de numero equivalente ao valor do contador! mais ou menos assim:
     
    #define RA0 mode
    char a = 1
    char contador = 0
     
    inicio
    {
          se (!input (mode));
      a + contador = contador;
     
     
    }
  6. kkkkkkkkkkkkkkkkk e eu tava escrevendo isso!! pelo menos to tentando pensar!!! kkkkkkkkkkkkkkkkkkkkkkk

     

    // programa principal

    void main()
       
    {
      do
          {
          if(input(mode))               
               { a++;                     
     
             if ( a == 1 )              
             efeito1();                
     
             else if ( a == 2 )      
             efeito2();                
                                       
             if (a > B)      
             a = 0;         
              }
            while (true);
          }
    }
  7. Na vdd eunquero colocar mais efeitos mas preciso entender a logica!!! Fiz um algoritmo e esse programa que eu fiz foicompilado e rodou no pic!! So nao fez o que eu queria q fizesse mas com a ajuda de vocês com certeza vou conseguir!!! Vou ver os codigos q vocês mandaram!!! Muito grato!!!

     

    Tente assim:

    // programa principalvoid main(){   do   {      if (input(mode))         efeito1();      else         efeito2();   }   while (true);}

    fala meu caro!!! tudo bom?? o codigo que você me passou rodou lindamente!!! é o mais proximo do objetivo!!! so que tem um porém!!! quando você pressiona a tecla ela muda o efeito mas nao trava!! quando solta o botao mode ela volta pro efeito anterior!!! como resolvo isso??

  8. boa tarde meus caros!! estou montando um sequencial de leds com 16 canais usando o PIC16F877A e preciso de ajuda para resolver o problema no código!! o objetivo do programa é seguir uma sequencia de efeitos e que também seja possível mudar essa sequencia d para uma diferente pressionando um botão que denominarei de "mode".


     


    o codigo que eu fiz esta assim: 


     


    #include <16F877A.h>

    #device adc=16

     

    #FUSES NOWDT                    //No Watch Dog Timer

    #FUSES HS                       //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD)

    #FUSES PUT                      //Power Up Timer

    #FUSES NOBROWNOUT               //No brownout reset

     

    #use delay(clock=16000000)

     

    // entrada

    #define mode    pin_a0 // declaradas entrada

     

    //Subrotinas

     

    void efeito1(void)

       {

       output_b(0b00000000);

       output_d(0b11111111);

       delay_ms(500);  

       output_b(0b11111111);

       output_d(0b00000000);

       delay_ms(500);

      

    }

     

    void efeito2(void)

       {

       output_b(0b10101010);

       output_d(0b01010101);

       delay_ms(500);

       output_b(0b10101010);

       output_d(0b01010101);

       delay_ms(500);

     

    }

     

    // programa principal

    void main()

       {

       

          do{

          efeito1();

          }

          while (input(mode));

          

          do{

          efeito2();

          }

          while (input(mode));

     

       }

     

     

     

    segue em anexo também o esquema do circuito

    alguem poderia me ajudar??

    grato!!!

    post-697591-0-63433000-1429732452_thumb.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...