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!!!
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!
Ó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.
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
David Soares , muito obrigado pelos elogios! Que bom que conseguimos esclarecer suas dúvidas, continue nos acompanhando e passe a dica do canal adiante.
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!
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!
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
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?
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.
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.
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.
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á!!
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).
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.
É 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...
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
Ó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?
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?
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
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.
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.
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.
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!
+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/
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?
+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
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
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.
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 ?
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.
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 ?
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?
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á.
@@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.
preciso de ajuda na minha programação, para acionar o sensor quando algo de metal se aproximar e em seguida acionar o motor para q o portao possa abrir
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!!
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?
Estava procurando uma forma de acionar uma bomba em determinada hora do dia. E isso irá me ajudar demais
Canal mais completo sobre o assunto , que por sinal e pouco explorado , sr. rambo esta de parabéns .
+Atos Silva , valeu meu amigo! Passe a dica para todos para nos ajudar a crescer! abraço
Maratonando todo conteúdo relativo a interrupções e Timer0.
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!!!
+Rafael Machado , muito obrigado! Continue sempre nos acompanhando. Passe a dica do canal para todos seus amigos.
Prof., quando a aula é ótima a gente nem nota o tempo passar. :-)
A melhor aula que já assisti. Eu digo isto porque já fiz vários cursos e estou reciclando. Parabéns.
Finalmente estou a perceber interrupções, muito obrigado Wagner. É muito difícil explicar simples.
Valeu Filipe! Estude sempre conosco!
Parabéns pelo ótimo e raro trabalho que esta fazendo. Obrigado.
Muito obrigado Reginaldo!
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!
Edson Staack com certeza as aulas do Wagner são muito boas
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
Aldimiro da Silva , valeu!!!
Como sempre suas aulas são claras e objetivas.
Obrigado, está ajudando bastante!
Ótima aula. Muito obrigado por compartilhar teu conhecimento e experiência conosco!
Exelente aula parabéns
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!
Muito obrigado Luis, nos acompanhe sempre!
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!
+Adriel Bigotto , valeu, que bom que consegue entender! Passe a dica do canal para todos seus amigos.
Excelente aula cara... nem parece que o vídeo tem 34min, de tão bacana que foi.
Leo Santos , valeu os elogios! Que bom que gostou do vídeo!
Parabéns pelos excelente nível dos seus tutoriais.
+Denilson Dias , obrigado pelo elogio!
VALEU MUITO!! ESSE CURSO ESTA ELEVANDO MEU NIVEL DE ENTENDIMENTO A OUTRO PATAMAR!!
+Bruno Migliorni , obrigado pelo elogio! Que bom que estamos contribuindo para o seu conhecimento!
Ótimo curso.
Aula excelente!Muito técnica e com métodos praticos!
Suas vídeo aulas são excelentes. Parabéns.
Mais uma aula show de bola, parabéns Wagner!
Ó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.
André Henrique , show, continue nos acompanhando sim!
Ótima explicação sobre interrupções.
Parabéns pelo vídeo.
Parabéns Wagner! Excelente trabalho! Muito didático, linguagem clara e aula cativante. Obrigado!
Muito obrigado Jacson! Nos acompanhe sempre e passe a dica do canal adiante.
Olá Wagner , encontrei esse assunto na sua vídeo aula 110 !!! , já ajudou bastante. Obrigado.
Abs.
+José Afonso Coura , que ótimo! Nos acompanhe sempre. abs
....viajei nesse counter ai pra entender, kkkkkkkk....mas realmente show de bola essa aula Wagner....Parabéns...
+Anderson Rezende , heheh, show valeu! Se tiver dúvidas, é só perguntar que tentaremos responder.
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
Valeu Jeferson! Estude sempre conosco. abraço
Muito boa aula, ficou bem clara e didática
Ótimo curso! Está me ajudando bastante na escola.
Que bom Gabriel! Passe a dica para os seus colegas!
Seus vídeos são show de bola.....
MUITO PROVAVELMENTE E ASSIM QUE E FEITA A FUNCAO MILIS NOS AVRS, AGORA SEI COMO ELA FEITA, VALEU MESMO!!
+Bruno Migliorni , valeu obrigado por assistir! Continue nos acompanhando!
Muito obrigado Wagner, excelente aula!!!
Excelente aula professor, ajudou muito!!
Olá Wagner....... vc é muito , cara sua aula é show..
aprendi muito detalhe que eu tia duvida ....
valeu mesmo, excelente explicação.
David Soares , muito obrigado pelos elogios! Que bom que conseguimos esclarecer suas dúvidas, continue nos acompanhando e passe a dica do canal adiante.
Excelente aula
Otima aula estou acompanhando ao maximo seus videos n.n
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!
Valeu Walter, bons estudos, acompanhe todos nossos cursos. abraços!
Que aula fantástica !!!! muitíssimo obrigado pela ajuda
muito show..pode ficar longo a vontade rs!
Que aula maravilhosa, muito obrigado!
como sempre exelente explicação
Parabéns pelo vídeo e pelo canal. Ótimas aulas!!!
+Ricardo Oliveira , valeu muito obrigado! Nos acompanhe sempre.
excelente explicaçao Wgner muito bom agora entedi!
Olha nos aí de novo dando uma observada.
Parabéns ... mais uma ótima aula...
Valeu, camarada! meus parabéns pela aula! sucesso!
Wagner muito boa a aula
Sebastião Alves Ferreira , valeu muito obrigado!
Estou achando este curso excelente. Não importa se o tempo das aulas é longo.
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!
+pauleiras , sim. No caso pode utilizar apenas intcon
INTCON = 0b11100000;
TMR0 = 0x00;
Obrigado, muito útil e didático.
Ficou sensacional !
Valeu Lucas!
Muito bom cara, parabéns, me ajuda muito.
+Gilmar Rocha , valeu!
Grande gênio seu canal e ótimo eu aprendi muito com voce meu broder ...
obrigado Flavio!
Bom demais!!!Muito boa a aula.
obrigado!
Muito bom, parabéns!
muy bien
Muito bom, excelente explicação, valeu!
SHOW DE BOLA.
torres almeida , valeu pelos elogios!!
Parabéns muito bom, vc é o cara :)
Valeu Francelino!
´pheuma dúvida:
também posso calcular o tempo inicial através da fórmula:
256-TMR0 = tempo desejado / prescaler
correto?
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
+Marcio Brandao , obrigado, nos acompanhe sempre e havendo dúvidas, vá assistindo as aulas de novo para fixar bem o conteúdo.
excelente video, parabens!
Olá Wagner valeu essa aula seria bom outros exemplos com o TMR0 se possivel
Jose carlos tavares ribeiro , obrigado pelos elogios! Certamente, trabalharemos muito com o TMR0, essa foi só uma breve introdução.
Cara muito obrigado! Você me ajudou muito..... E muito outros alunos do coltec UFMG
cole brenão
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?
Wagner como habilita os pull-up individuais dos pinos?
show de aula
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.
Excelente!!!!
obrigado Thiago!
Show de bola! 👍
Wagner, tú é professor ? rs , ensina muito bem !
+William Souza , valeu! Nunca trabalhei como professor.
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.
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.
Muito boa aula, parabéns Wagner. Essa linha de programação funciona no pic 18f4550?
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á!!
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).
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.
O prescaler é uma sequencia de 8 Flip-flops funcionando como divisor de frequencia? Então aguarda 4 ciclos para fazer um incremento?
Excelente
É 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...
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
Ó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?
Eu achei essa aula "muito massa"!!
S SOUZA , valeu, muito obrigado!
Wagner interessante programar o timer gostei, se colocar qualquer delay nesse programa vai inutilizar o timer é isso?
Diego Ribeiro , que bom que gostou. Não, o timer não será prejudicado pela ação de um delay. Ele sempre tem prioridade.
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?
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
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.
WR Kits Tentei fazer com switch e nao deu certo. se voce puder passar umas dicas, por favor, nos todos seriamos gratos!
gabriel monteiro , beleza, continue nos acompanhando.
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.
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.
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!
+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/
Seria legal ter vídeos ensinando com interfacear os HC 05/HC06 com pic.
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?
+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
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
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.
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 ?
+Victor Ramos , sim é possível. Confira nossas demais aulas sobre o timer0 para desenvolver seu projeto.
Nota 10.
obrigado Luciano!
Wagner posso colocar varios If em tempos diferentes ?
A função interrupt () não precisa ser chamada ? Obrigado! Otima didatica!!
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.
É possivel definir uma condição para que a interrupção comece, e não de cara quando liga o pic?
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 ?
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?
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á.
@@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.
Mestre!!!!!!
preciso de ajuda na minha programação, para acionar o sensor quando algo de metal se aproximar e em seguida acionar o motor para q o portao possa abrir
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!!
+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
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?