INTERRUPÇÕES, TIMER0 E PRESCALER | Curso de PIC

Поділитися
Вставка
  • Опубліковано 6 жов 2024
  • Aprenda a configurar a Interrupção Interna, o Timer0 e o Prescaler de microcontroladores PIC. Curso de PIC do WR Kits Channel!
    Contribua com o projeto WR Kits: / wrkits
    Loja WR Kits: wrkits.com.br/
    Fanpage: / wrkits
    Twitter/Instagram/Snapchat: @WagnerRambo
    Download:
    www.dropbox.co...
    mega.nz/#!vMQj...
    www.wrkits.com.br
    wrkits
    @WagnerRambo

КОМЕНТАРІ • 214

  • @gustavoheenriquee
    @gustavoheenriquee 3 роки тому +2

    Estava procurando uma forma de acionar uma bomba em determinada hora do dia. E isso irá me ajudar demais

  • @AthoxTM
    @AthoxTM 8 років тому +3

    Canal mais completo sobre o assunto , que por sinal e pouco explorado , sr. rambo esta de parabéns .

    • @canalwrkits
      @canalwrkits  8 років тому +1

      +Atos Silva , valeu meu amigo! Passe a dica para todos para nos ajudar a crescer! abraço

  • @Pauleiras
    @Pauleiras 4 роки тому +3

    Maratonando todo conteúdo relativo a interrupções e Timer0.

  • @silvioprog
    @silvioprog 7 років тому +9

    Prof., quando a aula é ótima a gente nem nota o tempo passar. :-)

  • @rafaelmachado6797
    @rafaelmachado6797 8 років тому +3

    Cara, "parabéns" você e um ótimo professor, meu curso de microcontroladores na universidade foi muito superficial pois fiz sistemas de energia, mas com suas aulas estou aprendendo muito valeu!!!

    • @canalwrkits
      @canalwrkits  8 років тому

      +Rafael Machado , muito obrigado! Continue sempre nos acompanhando. Passe a dica do canal para todos seus amigos.

  • @silvioobom5928
    @silvioobom5928 3 роки тому +2

    Exelente aula parabéns

  • @eduardojosenogueira367
    @eduardojosenogueira367 3 роки тому +2

    Excelente aula

  • @cristianoaraujo5672
    @cristianoaraujo5672 7 місяців тому

    Ótima aula. Muito obrigado por compartilhar teu conhecimento e experiência conosco!

  • @josegamerzinbr8468
    @josegamerzinbr8468 4 роки тому +1

    A melhor aula que já assisti. Eu digo isto porque já fiz vários cursos e estou reciclando. Parabéns.

  • @luisfernandotavaresaffonso4339
    @luisfernandotavaresaffonso4339 8 років тому +1

    Parabéns pelos vídeos Wagner! Mesmo que o vídeo fique um pouco maior, não chega nem perto de ser massante. Suas aulas são demais, bem didáticas!

    • @canalwrkits
      @canalwrkits  8 років тому +1

      Muito obrigado Luis, nos acompanhe sempre!

  • @pexancunha
    @pexancunha 8 років тому +1

    Finalmente estou a perceber interrupções, muito obrigado Wagner. É muito difícil explicar simples.

    • @canalwrkits
      @canalwrkits  8 років тому

      Valeu Filipe! Estude sempre conosco!

  • @Edson_Staack
    @Edson_Staack 9 років тому +8

    Estou gostando dos vídeos! Sua didática é muito boa e os vídeos não são cansativos! Se tivesse durado 1 hora o vídeo, ainda assim não teria cansado! Parabéns!

    • @aldimirodasilva3874
      @aldimirodasilva3874 9 років тому +1

      Edson Staack com certeza as aulas do Wagner são muito boas

    • @canalwrkits
      @canalwrkits  9 років тому

      Edson Staack , que bom que os vídeos não estão cansativos. Realmente há assuntos que não tem como fazer vídeos curtos hehe. abraços

    • @canalwrkits
      @canalwrkits  9 років тому

      Aldimiro da Silva , valeu!!!

  • @jefersonpalha2782
    @jefersonpalha2782 8 років тому

    Ola! Sou iniciante em eletronica e estou aprendendo muito com seus ensinamentos. Parabens pela maestria em passar o conhecimento. Estou fazendo os cursos de assembler e pic e logo vou requisitar meu certificado,,, heheh Parabens, abraços e sucesso

    • @canalwrkits
      @canalwrkits  8 років тому

      Valeu Jeferson! Estude sempre conosco. abraço

  • @adriel2625
    @adriel2625 9 років тому +2

    Está de parabéns Wagner, excelente video-aula, apesar do nível de complexidade do assunto, sua explicação facilita e muito o entendimento!, Parabens!

    • @canalwrkits
      @canalwrkits  9 років тому +1

      +Adriel Bigotto , valeu, que bom que consegue entender! Passe a dica do canal para todos seus amigos.

  • @leosantos314
    @leosantos314 9 років тому +1

    Excelente aula cara... nem parece que o vídeo tem 34min, de tão bacana que foi.

    • @canalwrkits
      @canalwrkits  9 років тому

      Leo Santos , valeu os elogios! Que bom que gostou do vídeo!

  • @Pauleiras
    @Pauleiras 9 років тому +1

    Olá Wagner!
    Nesta sua vídeo aula, a partir dos 14:26 o trecho da programação:
    GIE_BIT = 0x01;
    PEIE_BIT = 0x01;
    TOIE_BIT = 0x01;
    TMR0 = 0x00;
    Pode ser substituído por:
    INTCON_REG = 0b11100000;
    TMR0 = 0x00;
    ou por:
    INTCON_REG = 0xE0;
    TMR0 = 0x00;
    Agradeço se puder dar essa resposta!

    • @canalwrkits
      @canalwrkits  9 років тому

      +pauleiras , sim. No caso pode utilizar apenas intcon
      INTCON = 0b11100000;
      TMR0 = 0x00;

  • @joseafonsocoura1227
    @joseafonsocoura1227 8 років тому +1

    Olá Wagner , encontrei esse assunto na sua vídeo aula 110 !!! , já ajudou bastante. Obrigado.
    Abs.

    • @canalwrkits
      @canalwrkits  8 років тому

      +José Afonso Coura , que ótimo! Nos acompanhe sempre. abs

  • @MarcosAurelio-in2ds
    @MarcosAurelio-in2ds 4 роки тому +2

    Como sempre suas aulas são claras e objetivas.
    Obrigado, está ajudando bastante!

  • @andrehenrique5056
    @andrehenrique5056 9 років тому +2

    Ótima aula, parabéns. E pode deixar que assim que eu me mudar, vou dar uma conferida nas aulas de asm para 8051. Por enquanto vou com PIC mesmo até pra eu me acostumar melhor com a programação de PIC e assim ficar mais fácil investir em outros microcontroladores.

    • @canalwrkits
      @canalwrkits  9 років тому

      André Henrique , show, continue nos acompanhando sim!

  • @andersonrezende6848
    @andersonrezende6848 9 років тому +1

    ....viajei nesse counter ai pra entender, kkkkkkkk....mas realmente show de bola essa aula Wagner....Parabéns...

    • @canalwrkits
      @canalwrkits  9 років тому

      +Anderson Rezende , heheh, show valeu! Se tiver dúvidas, é só perguntar que tentaremos responder.

  • @DenilsonDiasGuitarPlayer
    @DenilsonDiasGuitarPlayer 9 років тому +2

    Parabéns pelos excelente nível dos seus tutoriais.

    • @canalwrkits
      @canalwrkits  9 років тому

      +Denilson Dias , obrigado pelo elogio!

  • @emoutraspalavras-marloncou4459
    @emoutraspalavras-marloncou4459 2 роки тому +1

    Muito obrigado pelo tutorial. Espero que a lógica seja parecida para outros pic16fxxx, tenho cinco deles aqui e vou tentar fazer o código con cada um. E engeheiro Wagner, se colocar outros "if" com outros valores do contador (por exemplo 1000 ou 250 ou 2500, 5000 etc) com rotinas específicas, poderíamos então trabalhar num modo multitarefas, verdade? Ou precisaria usar outro timer para outros períodos de tempo?

  • @brunomigliorni2249
    @brunomigliorni2249 9 років тому +3

    VALEU MUITO!! ESSE CURSO ESTA ELEVANDO MEU NIVEL DE ENTENDIMENTO A OUTRO PATAMAR!!

    • @canalwrkits
      @canalwrkits  9 років тому

      +Bruno Migliorni , obrigado pelo elogio! Que bom que estamos contribuindo para o seu conhecimento!

  • @EduardoAvelar
    @EduardoAvelar 9 років тому +2

    Suas vídeo aulas são excelentes. Parabéns.

  • @luizantoniogoncalvesdeazev8491
    @luizantoniogoncalvesdeazev8491 5 років тому +1

    Estou achando este curso excelente. Não importa se o tempo das aulas é longo.

  • @waltnj
    @waltnj 5 років тому +1

    Maravilha de aula!!! Muito obrigado Wagner por essa iniciativa que tem beneficiado muitas pessoas. Sigo o seu canal desde o começo de minha formaçao em concepçao de sistemas eletronicos digitais e analogicos.
    Pena que muitos "educadores" nao demonstram esse mesmo interesse de transmitir esse conhecimento de maneira clara e dinamica e fazem a gente perder tempo. (os meus por exemplo :( ).
    Muita força e sucesso pra vc! abraço!

    • @canalwrkits
      @canalwrkits  5 років тому

      Valeu Walter, bons estudos, acompanhe todos nossos cursos. abraços!

  • @sergiocaetano6947
    @sergiocaetano6947 4 роки тому +2

    Aula excelente!Muito técnica e com métodos praticos!

  • @crocha1111
    @crocha1111 5 років тому +4

    muito show..pode ficar longo a vontade rs!

  • @tadeubotelho4410
    @tadeubotelho4410 4 роки тому +1

    Ótima explicação sobre interrupções.
    Parabéns pelo vídeo.

  • @davidsoares3334
    @davidsoares3334 9 років тому +1

    Olá Wagner....... vc é muito , cara sua aula é show..
    aprendi muito detalhe que eu tia duvida ....
    valeu mesmo, excelente explicação.

    • @canalwrkits
      @canalwrkits  9 років тому

      David Soares , muito obrigado pelos elogios! Que bom que conseguimos esclarecer suas dúvidas, continue nos acompanhando e passe a dica do canal adiante.

  • @Regimepe
    @Regimepe 8 років тому +1

    Parabéns pelo ótimo e raro trabalho que esta fazendo. Obrigado.

  • @felipefaeschwade4367
    @felipefaeschwade4367 8 років тому +2

    Ótimo curso.

  • @gabrielmegiatoreloferreira5860
    @gabrielmegiatoreloferreira5860 2 роки тому +2

    Excelente aula professor, ajudou muito!!

  • @gabrielpimentelgomes3195
    @gabrielpimentelgomes3195 8 років тому

    Ótimo curso! Está me ajudando bastante na escola.

    • @canalwrkits
      @canalwrkits  8 років тому

      Que bom Gabriel! Passe a dica para os seus colegas!

  • @jacsonnobre1
    @jacsonnobre1 8 років тому

    Parabéns Wagner! Excelente trabalho! Muito didático, linguagem clara e aula cativante. Obrigado!

    • @canalwrkits
      @canalwrkits  8 років тому

      Muito obrigado Jacson! Nos acompanhe sempre e passe a dica do canal adiante.

  • @ferbaziotti618
    @ferbaziotti618 5 років тому +2

    Muito obrigado Wagner, excelente aula!!!

  • @josecarlostavaresribeiro6584
    @josecarlostavaresribeiro6584 9 років тому +2

    Olá Wagner valeu essa aula seria bom outros exemplos com o TMR0 se possivel

    • @canalwrkits
      @canalwrkits  9 років тому

      Jose carlos tavares ribeiro , obrigado pelos elogios! Certamente, trabalharemos muito com o TMR0, essa foi só uma breve introdução.

  • @allangomes7522
    @allangomes7522 4 роки тому +1

    Mais uma aula show de bola, parabéns Wagner!

  • @brunomigliorni2249
    @brunomigliorni2249 9 років тому

    MUITO PROVAVELMENTE E ASSIM QUE E FEITA A FUNCAO MILIS NOS AVRS, AGORA SEI COMO ELA FEITA, VALEU MESMO!!

    • @canalwrkits
      @canalwrkits  9 років тому

      +Bruno Migliorni , valeu obrigado por assistir! Continue nos acompanhando!

  • @joseafonsocoura1227
    @joseafonsocoura1227 8 років тому +1

    Olá Eng. Wagner tudo bem ? Se eu quisesse gerar interrupções todo o tempo pela referência de zero da rede e "gatilhar" um tric , usar interrupção seria a melhor maneira ? Voce poderia dar umas dicas / fazer uma aula utilizando a interrupção para controlar a potência entregue a uma carga ?Mas uma vez , Obrigado por compartilhar seus conhecimentos.

  • @brenoguimaraes7219
    @brenoguimaraes7219 5 років тому +1

    Cara muito obrigado! Você me ajudou muito..... E muito outros alunos do coltec UFMG

  • @marciobrandao5698
    @marciobrandao5698 8 років тому +1

    Sim, estou a gostar, ainda acho que vou ficar viciado, isto no bom sentido é claro, mas eu fiquei vidrado foi em ver a relaçao do pograma pic com o issis proteus, isso eu vou querer aprender a fazer, me desculpa eu já estar a falar de mais, mas tambem entendo agora a necessidade de acompanhar o curso de linguagem c de wr kits, com calma as coIsas se vão encachando e ganhando forma, o brigado pelo seu tempo

    • @canalwrkits
      @canalwrkits  8 років тому

      +Marcio Brandao , obrigado, nos acompanhe sempre e havendo dúvidas, vá assistindo as aulas de novo para fixar bem o conteúdo.

  • @thalysonrocha7191
    @thalysonrocha7191 5 років тому +1

    Que aula fantástica !!!! muitíssimo obrigado pela ajuda

  • @gustavoferreiratoselli6328
    @gustavoferreiratoselli6328 9 років тому +1

    Seus vídeos são show de bola.....

  • @dionatagomescrisostomo945
    @dionatagomescrisostomo945 Рік тому

    Muito boa aula, ficou bem clara e didática

  • @andersonassis5935
    @andersonassis5935 6 років тому +1

    Seria legal ter vídeos ensinando com interfacear os HC 05/HC06 com pic.

  • @christiansilva2278
    @christiansilva2278 5 років тому +2

    Que aula maravilhosa, muito obrigado!

  • @FernandoFdaFonseca
    @FernandoFdaFonseca 2 роки тому

    Olha nos aí de novo dando uma observada.

  • @brunopriante1249
    @brunopriante1249 7 років тому +1

    Otima aula estou acompanhando ao maximo seus videos n.n

  • @joaonespolo5473
    @joaonespolo5473 5 років тому +1

    Boa noite, Wagner! Estou trabalhando em uma aplicação na qual preciso que os módulos pwm e ADC funcionem simultaneamente. Fiquei com dúvida quanto a necessidade da utilização da interrupção. Fiquei confuso pelo pensando na ideia de que se eu utilizar uma rotina de interrupção para as funções do módulo pwm e uma outra rotina para utilizar o módulo ADC, os dois módulos não funcionariam de forma simultânea uma vez que, tratando uma das interrupções, a outra seria "ignorada". Estou começando a trabalhar com microcontroladores conto com sua ajuda para esse esclarecimento!
    A propósito, meus sinceros parabéns pelo seu belo trabalho! Agradeço desde já!!

  • @felibs
    @felibs 8 років тому +1

    Muito boa aula, parabéns Wagner. Essa linha de programação funciona no pic 18f4550?

  • @ercolediccini1351
    @ercolediccini1351 4 роки тому +1

    Estou estudando o PIC12F508 e percebi que ele não possui a funcionalidade de interrupção mas possui o Timer0 e o Prescaler. Poderia dar um exemplo de como é utilizado o Timer0 sem a interrupção? Obrigado e parabéns pelas aulas.

  • @valtererreira7060
    @valtererreira7060 7 років тому +1

    excelente explicaçao Wgner muito bom agora entedi!

  • @RicardoCruz-ob7nr
    @RicardoCruz-ob7nr 8 років тому +1

    Parabéns pelo vídeo e pelo canal. Ótimas aulas!!!

    • @canalwrkits
      @canalwrkits  8 років тому +1

      +Ricardo Oliveira , valeu muito obrigado! Nos acompanhe sempre.

  • @DenilsonDiasGuitarPlayer
    @DenilsonDiasGuitarPlayer 9 років тому +2

    Wagner, tenho uma duvida. Como se comporta a interrupção junto com o delay? Por exemplo: supondo que tenho um led piscando a cada 100ms através do Timer0 em uma porta qualquer, e tenho em uma parte do meu código um delay de 1000ms. Ao acionar o delay o timer será afetado?
    Parabéns pelo trabalho está me ajudando muito seus vídeos. Não tenho nada a acrescentar. Não vejo um conteúdo tão bom nem em canais gringos. Parabéns!

    • @canalwrkits
      @canalwrkits  9 років тому +3

      +Denilson Dias , muito obrigado pelos elogios! Sua dúvida é muito boa, mas acredito que é mais fácil de você entender assistindo a este vídeo ua-cam.com/video/L_c0s2OpNtM/v-deo.html
      Basicamente, o programa é interrompido e a prioridade sempre será a interrupção.
      Entenda melhor a questão de interrupções neste outro vídeo: ua-cam.com/video/4g58cXEBnLQ/v-deo.html
      É de processadores 8051, mas o conhecimento se aplica também aos PIC.
      Passe a dica do canal adiante para nos ajudar o/

  • @alejandrocuellarperez624
    @alejandrocuellarperez624 6 років тому +1

    Oi, aprendi muito com seus tutoriais, obrigado. Gostaria de fazer uma pergunta:
    Valor = TMR0;
    Isto está certo?
    Como faço para combinar uma variável com o valor atual do temporizador?
    Obrigado

  • @flavioaparecido8987
    @flavioaparecido8987 7 років тому

    Grande gênio seu canal e ótimo eu aprendi muito com voce meu broder ...

  • @marciofreitas7804
    @marciofreitas7804 6 років тому +1

    Valeu, camarada! meus parabéns pela aula! sucesso!

  • @leopoldodemario999
    @leopoldodemario999 4 роки тому +1

    É 10! Pena que estou $em tempo. O meu ICD2BR da Mosaico tem algo errado então o MPLAB 8.x retorna sempre ID de dispositivo invalido esperado 0x3B retornado 0x00 por exemplo então não consigo acompanhar na pratica... Mas não desisto vou continuar até que eu possa comprar um gravador de PIC mesmo que eu tenha que fazer tudo de novo...

  • @GustavoGomes-ws1oy
    @GustavoGomes-ws1oy 7 років тому +1

    Ótima aula mestre! Só uma coisa: Eu tive bastante dificuldade de entender essa aula nas primeiras vezes que eu assisti, então será que uma possível solução não seria dar uma introdução mais teórica (em outro vídeo, se necessário), ou segmentar os temas entre dois: Interrupção e em outro momento Timer 0?

  • @simploriomestre
    @simploriomestre 9 років тому +1

    Fala meu amigo Wagner , ja tem um tempinho q nao comento , mais tenho assistido seus videos , sempre otimos por sinal , tenho uma pergunta a fazer: Posso controlar mais de uma saida com tempos diferentes tipo nesse caso usando switch case e a varivel counter ?
    case counter=500
    case counter = 1500 .....
    nao sei se deu pra entender bem
    contudo muito obrigado por estar dividindo seu conhecimento conosco , um grande abraço meu amigo

    • @canalwrkits
      @canalwrkits  9 років тому

      Renato Borges , obrigado pelos elogios! Continue nos acompanhando!Sim, seu raciocínio está correto. A sintaxe é esta:
      /* Exemplo com switch */
      switch(counter)
      {
      case 500:
      //comandos
      break;
      case 1000:
      //comandos
      break;
      } //end switch
      Só deve observar os limites do prescaler como comentado. Mudando ele para 1:8 por exemplo.

    • @gabrielmonteiro3991
      @gabrielmonteiro3991 9 років тому

      WR Kits Tentei fazer com switch e nao deu certo. se voce puder passar umas dicas, por favor, nos todos seriamos gratos!

    • @canalwrkits
      @canalwrkits  9 років тому

      gabriel monteiro , beleza, continue nos acompanhando.

  • @flaviosousa2084
    @flaviosousa2084 2 роки тому

    como sempre exelente explicação

  • @fabio2paolini
    @fabio2paolini 8 років тому +1

    Olá, eu não entendi a necessidade de se desabilitar os resistores de pull up inernos, ou seja, qual a necessidade de se fixar o bit 7 do OPTION_REG igual a 1 e sua relação com o uso do timer. Aproveitando a dúvida, o pull up interno do portb seria para o caso de se usar os pinos do PortB como saída e e então remover a necessidade de se adicionar resistores de pull up externos? Obrigado.

  • @sebastiaoalvesferreira7114
    @sebastiaoalvesferreira7114 9 років тому +1

    Wagner muito boa a aula

    • @canalwrkits
      @canalwrkits  9 років тому

      Sebastião Alves Ferreira , valeu muito obrigado!

  • @torresalmeida6109
    @torresalmeida6109 9 років тому +2

    Muito bom, excelente explicação, valeu!
    SHOW DE BOLA.

    • @canalwrkits
      @canalwrkits  9 років тому

      torres almeida , valeu pelos elogios!!

  • @MrFrankrodrigues
    @MrFrankrodrigues 2 роки тому +1

    Wagner como habilita os pull-up individuais dos pinos?

  • @jhonatasferreiradealmeida5437
    @jhonatasferreiradealmeida5437 7 років тому +1

    Obrigado, muito útil e didático.

  • @gilmarrocha4166
    @gilmarrocha4166 8 років тому +1

    Muito bom cara, parabéns, me ajuda muito.

  • @DG10-youtube-channel
    @DG10-youtube-channel 7 років тому

    A função interrupt () não precisa ser chamada ? Obrigado! Otima didatica!!

    • @canalwrkits
      @canalwrkits  7 років тому

      Valeu Douglas! Não, a função interrupt() aponta para o vetor de interrupção do processador, onde os eventos específicos provocam o desvio da memória de programa para aquela região, executando os códigos.

  • @DarkGhost211
    @DarkGhost211 7 років тому

    Bom demais!!!Muito boa a aula.

  • @leopoldodemario999
    @leopoldodemario999 4 роки тому +1

    O prescaler é uma sequencia de 8 Flip-flops funcionando como divisor de frequencia? Então aguarda 4 ciclos para fazer um incremento?

  • @pinto6942
    @pinto6942 8 років тому +1

    Boas Wagner, grande aula!
    Usando estes ensinamentos eu tentei aplicar a um contador com o PIC16F628A usando 4 displays multiplexados mas surge o seguinte erro:
    "simulation is not running in real time due to excessive cpu load"

    • @canalwrkits
      @canalwrkits  8 років тому

      esse problema é comum no proteus.

  • @pastorhiagosantos
    @pastorhiagosantos 7 років тому +1

    Wagner, me da uma ajuda? Fiz um projeto para fazer um telão de projeção subir e descer automaticamente. Fiz utilizando 2 botões, 1 para subir e 1 para descer, ambos temporizador com 555 e sendo acionados com relés. Quero fazer isso com algum PIC, e utilizar somente 1 botão.Não dá para utilizar sensores, porque não tem parede atrás nem do lado para instalar o sensor. Me dá uma luz aí por favor. Desde já agradeço.

  • @tafarelcamilo9247
    @tafarelcamilo9247 2 роки тому +1

    wagner, eu estou querendo saber se quando ocorrer o retorno da interrupção para o main, a execução voltara para mesma linha ( podendo execultala mais de uma vez).

  • @fernandoanton5148
    @fernandoanton5148 6 років тому

    Parabéns ... mais uma ótima aula...

  • @anaiamjardim1887
    @anaiamjardim1887 8 років тому +1

    Muito bom, parabéns!

  • @LucasCavallotti
    @LucasCavallotti 8 років тому

    Ficou sensacional !

  • @williamsouza1297
    @williamsouza1297 8 років тому +3

    Wagner, tú é professor ? rs , ensina muito bem !

    • @canalwrkits
      @canalwrkits  8 років тому

      +William Souza , valeu! Nunca trabalhei como professor.

    • @eng.vinicius
      @eng.vinicius 7 років тому

      Tem pessoas que tem o saber, e tem pessoas que tem o dom do saber e dom ensinar, você tem esses dois dons. Parabéns. Todos os seus videos são de altíssima contribuição nacional para o desenvolvimento de tecnologia neste país.

  • @Geife
    @Geife 4 роки тому +1

    É possivel definir uma condição para que a interrupção comece, e não de cara quando liga o pic?

  • @Pinguthreads
    @Pinguthreads 4 роки тому +1

    tá meio complicado ainda. O que é timer0? Ele é um "relogio"? se for assim, posso usar esse timer0 pra calcular a velocidade de rotação de um sensor efeito hall?

  • @diegorojas2066
    @diegorojas2066 6 років тому +1

    Wagner, como você calculou para alterar o valor de TMR0 para obter o valor exato para o contador = 500? porque não o entendi no minuto 28:36 saudações da Colômbia.

  • @douglasmonquero4979
    @douglasmonquero4979 Рік тому

    show de aula

  • @paulowainer2870
    @paulowainer2870 9 років тому +1

    Se no loop infinito, fizermos a programação para um led em uma porta piscar durante 1 segundo, e mantivermos a interrupção do timer0 por digamos 256us, este led piscará de acordo com o loop ou haverá sempre uma interrupção interrompendo este loop, ou seja o delay _ms(1000) será afetado pela interrupção?

    • @canalwrkits
      @canalwrkits  9 років тому

      +Paulo Wainer , o processador sempre prioriza a interrupção, ou seja, a rotina de delay será interrompida. Já demonstramos isso neste vídeo: ua-cam.com/video/L_c0s2OpNtM/v-deo.html

  • @galberionora1827
    @galberionora1827 6 років тому +1

    fala ai wagner....estou tentando programar um ldr no pic12f675 com algumas saidas temporizadas e estou tendo muita dificuldade....se tiver alguma coisa manda ai...valeu

  • @leandroaugusto6330
    @leandroaugusto6330 6 років тому +1

    excelente video, parabens!

  • @brunomigliorni2249
    @brunomigliorni2249 9 років тому +1

    em rambo, tenho uma duvida!! tenho um projeto que faz varredura de botoes, e ao mesmo tempo tem que fazer varios liga e desliga de motores, pelo que entendi a melhor forma de fazer isso e com timer0, gostaria de saber como fazer varias interrupcoes com pre scale diferentes, testar mais de uma interrupcao (T0IF_bit), tenho que usar o timer2 tambem ? ou seja o pre scale de botoes nao e o mesmo de um liga e desliga de motores? ou e? de qualquer forma valeu por tudo ai!!

    • @canalwrkits
      @canalwrkits  9 років тому

      +Bruno Migliorni , talvez estes vídeos lhe ajudem no projeto:
      ua-cam.com/video/g6Y4AvJUOW0/v-deo.html
      ua-cam.com/video/ZKJ4wM3690I/v-deo.html

  • @jogomez1988a
    @jogomez1988a 7 років тому +1

    Saludos ¿Cómo puedo usar el timer de 6 bits como si fuera un medidor de tiempo a 1 microsegundo? Esto es para aplicaciones de medición de distancia por ultrasonido. El problema es medir un pulso que entraría por el PIC y nos de la lectura del tiempo por el puerto serial o PWM, etc.Gracias de antemano.

  • @santosre04.34
    @santosre04.34 9 років тому

    Muito boa esta aula, pena que não consegui fazer funcionar o meu time 0, compila sem nenhum problema mais não manda sinal auto para o RB4 fica o quadradinho azul.

    • @canalwrkits
      @canalwrkits  9 років тому

      +santosre04. , verifique se todos registradores estão configurados conforme código da aula.

  • @brunopriante1249
    @brunopriante1249 7 років тому

    Wagner posso colocar varios If em tempos diferentes ?

  • @arthurdilly
    @arthurdilly 8 років тому +1

    Ótima explicação como sempre. Mas tive problemas. Pensei ter entendido sobre timer0 até que tentei usar em um código simples junto de um display LCD. O código funciona sem problemas se eu usar funcoes de delay, porém, com timer0 o código não funciona. Se alguém conseguir identificar o erro, ficarei muito agradecido. Obs: as linhas de comunicação do PIC com o display foram retiradas para deixar o comentario mais limpo.
    int counter=0x00;
    void interrupt()
    {
    if(T0IF_bit)
    {
    counter++;
    TMR0=0x00;
    T0IF_bit=0x00;
    }
    }
    void main()
    {
    CMCON=0x07;
    OPTION_REG=0x86; //timer 0 incrementa com ciclo de instrucao, prescaler 1:128
    GIE_bit=0x01; //habilita interrupcao global
    PEIE_bit=0x01; //habilita interrupcao por perifericos
    T0IE_bit=0x01; //habilita interrupcao do timer0
    TMR0=0x00;
    TRISA=0x00;
    TRISB=0x03;
    PORTA=0x00;
    PORTB=0x00;
    Lcd_Init();
    Lcd_Cmd(_LCD_CLEAR);
    Lcd_Cmd(_LCD_CURSOR_OFF);
    Lcd_Out(1,1,"Iniciando...");
    delay_ms(1000);
    Lcd_Cmd(_LCD_CLEAR);
    delay_ms(100);
    Lcd_Out(1,1,"Escolha uma opcao.");
    delay_ms(1000);
    Lcd_Cmd(_LCD_CLEAR);
    delay_ms(100);
    Lcd_Out(1,1,"Opcao 1 - B1");
    Lcd_Out(2,1,"Opcao 2 - B2");
    delay_ms(1000);
    while(1)
    {
    if(!RB0_bit)
    {
    Lcd_Cmd(_LCD_CLEAR);
    delay_ms(100);
    Lcd_Out(1,1,"Opcao 1 selec.");
    delay_ms(1000);
    Lcd_out(2,1,"Piscando LED1.");
    while(1)
    {
    if(counter==15)
    {
    RA0_bit=~RA0_bit;
    counter=0x00;
    }
    }
    }
    if(!RB1_bit)
    {
    Lcd_Cmd(_LCD_CLEAR);
    delay_ms(100);
    Lcd_Out(1,1,"Opcao 2 selec.");
    delay_ms(1000);
    Lcd_out(2,1,"Piscando LED2");
    while(1)
    {
    if(counter==15)
    {
    RA1_bit=~RA1_bit;
    counter=0x00;
    }
    }
    }
    delay_ms(100);
    }//fim do loop
    }// fim main

  • @dvdjunio
    @dvdjunio 8 років тому

    Opa consegui resolver aqui. Havia declarado a variavel "counter" como uma int de 8 bits com isso a contagem maxima era 256. Mudei a mesma para int16, a contagem maxima que consigo é 65536 e o funcionamento foi normalizado.

    • @canalwrkits
      @canalwrkits  8 років тому

      +david silva , que ótimo, bons estudos!

  • @diegoribeiro7327
    @diegoribeiro7327 9 років тому

    Wagner interessante programar o timer gostei, se colocar qualquer delay nesse programa vai inutilizar o timer é isso?

    • @canalwrkits
      @canalwrkits  9 років тому

      Diego Ribeiro , que bom que gostou. Não, o timer não será prejudicado pela ação de um delay. Ele sempre tem prioridade.

    • @diegoribeiro7327
      @diegoribeiro7327 9 років тому

      Entendi, então se tiver um delay ele vai parar parar "todos" os processos do programa, mas os ciclos de máquina sempre serão contados pelo timer é isso?

  • @SSOUZA
    @SSOUZA 9 років тому +1

    Eu achei essa aula "muito massa"!!

    • @canalwrkits
      @canalwrkits  9 років тому

      S SOUZA , valeu, muito obrigado!

  • @victorramos654
    @victorramos654 9 років тому +1

    Olá Wagner !
    Fiz um projeto usando delay, para 3 saída diferentes, em intervalos de tempos similares.
    Usando o Timer0, é possível comandar as trés saídas ?

    • @canalwrkits
      @canalwrkits  9 років тому

      +Victor Ramos , sim é possível. Confira nossas demais aulas sobre o timer0 para desenvolver seu projeto.

  • @joaofabri5679
    @joaofabri5679 7 років тому +1

    Estou tentando transferir este projeto para o PIC 16f883 os registradores OPTION_REG e INTCON são identinticos ao 16f628a, porem não esta invertendo o valor do bit, fazendo o debbug no MicroC pude perceber que não está ocorrendo o estouro do TMR0 o que poderia estar acontecendo ?

  • @arturdietrich
    @arturdietrich 5 років тому

    Show de bola! 👍

  • @msuarez1976
    @msuarez1976 5 років тому

    Wagner :
    I have configured the TMR0 to activate a led every minute. There are 4 LEDs. It works perfect, but add an LCD to the program and when I execute the lcd_out () method, nothing appears on the screen and nothing happens with the TMR0, as if it stopped working. When I comment on the code lcd_out () function, everything returns to normal. Also change OPTION_REG the T0CS to 1 and lcd_out () works!!!.... but the TMRO no longer makes the count. What conflict is there?

  • @Pauleiras
    @Pauleiras 4 роки тому

    Saudações Wagner! Porque para tempos pequenos começa a dar problema na programação? Tentei fazer o pino RB4 alternar seu estado a cada 40 us, para tanto alterei no seu código o valor do registrador TMR0 para 0xF6; e o valor da variável counter para 1, fiz apenas estas alterações e no entanto não consigo o tempo pretendido de 40us e na simulação fica variando entre 48 e 61us. E se eu quiser tempos ainda menores ai a coisa piora. O que pode ser o problema?

    • @canalwrkits
      @canalwrkits  4 роки тому +1

      Latência de interrupção e a frequência de clock influenciam severamente nesta questão Paulo. Experimente aumentar o cristal oscilador externo. Lembrando que o ciclo de máquina mudará.

    • @Pauleiras
      @Pauleiras 3 роки тому +1

      @@canalwrkits Wagner tenho uma paradoxus pepto, segui sua dica, troquei o cristal de 4MHz por um de 20MHz logo, 0,2us de ciclo de máquina. Ainda assim tá complicado gerar uma onda quadrada de 40KHz com 50% de Duty, (largura de pulso de 25us.) Até consego gerar a onda, porém o pulso não é estável. Fica variando a largura entre 26 e 28us fora que pelo cálculo a largura era pra ser de 14us. Acho incrível que com um cristal de 20MHz o PIC16F628A não CONSIGA GERAR uma onda quadrada estável de apenas 40KHz. Seria interessante abordar esse caso em vídeo.

  • @cassiosilva6170
    @cassiosilva6170 7 років тому

    Excelente

  • @sobretudo_tv
    @sobretudo_tv 5 років тому

    Parabéns, ótimo conteúdo, porém eu escrevi o mesmo código no IDE MPLAB X, e não quis compilar, o que pode ter acontecido?