Fórum Eletrônica2002 (Brasil)
Seja bem vindo ao fórum Eletrônica2002.

Para ter acesso a todo o conteúdo do fórum você precisa estar cadastrado e fazer o login!

Se não é cadastrado no fórum: aproveite e faça.

Para criar um tópico, você precisa se cadastrar e estar conectado.
Ao criar um tópico, vc deve colocar a marca/modelo/e defeito do aparelho no título do tópico. Isto é regra neste fórum!
http://eletronica2002.forumeiros.com/forum-de-reparacao-de-aparelhos-eletronicos-f1/regras-do-forum-t19731.htm

Falar com o administrador?
Mande um e-mail: valdeni@eletronica2002.com.br
.
Menu de navegação


Clique nas imagens abaixo para acessar os fóruns desejados.

Fóruns:





---------------------------

PARCEIROS

E PATROCINADORES

DO FÓRUM 2002:

================

Clique nos banners:




================

Quer ser um patrocinador do fórum?

Mande um e-mail para:

Valdeni@eletronica2002.com.br


_________________
Últimos assuntos
» Tv Toshiba Tv2159OFSH - U19 com imagem rosa.
Hoje à(s) 20:27 por MARIO Y. SEGAWA

» [Resolvido]Aparelho de Som Toshiba ms7310cd com som ruim
Hoje à(s) 20:19 por lasiluz

» Ducha Advanced Eletrônica Lorenzetti (127v) - Sem controle de temperatura
Hoje à(s) 19:44 por eliaspaim

» tv lenoxx modelo tv-2100b não liga totalmente parada
Hoje à(s) 18:51 por eletrônica souza

» arduino com vários projetos de Arduino muito bom!!
Hoje à(s) 15:29 por kir

» som som Sony mhc grx 55 não arma o relé
Hoje à(s) 13:03 por ANTRNIO09

» Tv semp modelo tv 2934 com imagem fraca,sem cores
Hoje à(s) 11:47 por paulorfbm

» Tv CCE 2118USP - Com Vertical Fechado
Hoje à(s) 11:30 por MARIO Y. SEGAWA

» SOM LG MCD504, TRAVADO NO RELOGIO
Hoje à(s) 10:45 por felixtec

» [Resolvido]Aparelho de Som Aiwa - CX-NSZ51LH com som muito grave
Ontem à(s) 22:10 por jailton da silva santos

» RADIO SANYO 3 FAIXAS SÓ CHIA.
Ontem à(s) 22:01 por Adelalon

» Som Sony hcd_zux9 em proteção (alt para transistores na saída)
Ontem à(s) 18:56 por Eduardo Toda

» TV-LG-20K40 não liga só em Standy by
Ontem à(s) 17:08 por OTONIEL FERREIRA DE SOUSA

» tv LCD LG 42lh20r Funciona depois fica sem imagem lâmpada ligada,
Ontem à(s) 07:57 por Nill

» tv pvt2150
Ter 19 Jun 2018, 23:08 por jailton da silva santos

»  Mini System Philips fwm6000x/78 baixando o audio
Ter 19 Jun 2018, 22:37 por tomate

» Tv Panasonic 14rm10l com linhas sem imagem nem som
Ter 19 Jun 2018, 20:15 por Morlan

» Nobreak APC UPS400 - não carrega bateria
Ter 19 Jun 2018, 19:17 por Alcides.Piracicaba

» Mini System - Samsung - MX-D750 - PROTECT
Ter 19 Jun 2018, 17:42 por Oficina do SOM

» reset tv semp 1031 acdc
Ter 19 Jun 2018, 09:17 por acsabo

» TV LG 20CD2R-LD com Horizontal aberto e Software travado
Ter 19 Jun 2018, 05:15 por Ralph Hinkley

» Som philips modelo FWM 582 sem som nas caixas e auxilares porem no fone sai o áudio
Seg 18 Jun 2018, 23:36 por francisco constantino

» Sony LBT-N355 não liga
Seg 18 Jun 2018, 13:10 por Roger Rodrigues

» som aiwa modelo nsx-s779 coloca na tomada nao liga so fica standby
Seg 18 Jun 2018, 10:44 por Oficina do SOM

» (Encerrado) SOM AIWA MODELO NSX V700 NÃO LIGA ( DEVOLVIDO )
Seg 18 Jun 2018, 10:41 por Oficina do SOM

» Sony MHC GTR 8 não faz funções pelos botões
Dom 17 Jun 2018, 20:09 por Oficina do SOM

» SOM TOSHIBA MS7916MU - Sem audio nas caixas, mas tem som no fone de ouvido.
Dom 17 Jun 2018, 20:00 por Oficina do SOM

» Números grandes em LCD Alphanumérico com PIC como criar?
Dom 17 Jun 2018, 18:01 por CACÁ

»  Monitor AOC modelo E2243FWK liga e desligm
Dom 17 Jun 2018, 17:33 por celiaura

» PLACA RODUINO – UM ARDUINO FEITO EM CASA!
Dom 17 Jun 2018, 11:26 por kir

Quem está conectado
220 usuários online :: 14 usuários cadastrados, Nenhum Invisível e 206 Visitantes :: 2 Motores de busca

Adelalon, alsale, audio, Carlos Haroldo, eliaspaim, lasiluz, marcio.nardelli, MARIO Y. SEGAWA, ms.eletronica, Mário066, nilson alves, ofaztudo, vdldj, watila

O recorde de usuários online foi de 1034 em Sex 24 Jul 2015, 10:41

DUVIDAS com TMR0

Ir em baixo

DUVIDAS com TMR0

Mensagem por antgodoy em Sex 19 Maio 2017, 10:38

Pessoal,tenho estudado muito,mas infelizmente não consigo entender o carregamento do TMR0=39.
Gostaria muito que me ajudassem com isto.
Segue um pequeno bloco indicando isto:

if (!START && !Get_Input){
debounce();
switch (Timer_LIGA){
case 0:play_sound();
Timer_LIGA = 1;;
OPTION_REG = 0x07; //prescaler(1:256)is assigned to the timer TMR0
TMR0 =39 ; //timer to counts from 39 to 255
INTCON = 0xA0; // Enable interrupt TMR0 and GLOBAL interrupts
INTCON.T0IF = 0;
Mode_Select = 0;
Blink = 0;
Disp_Time();
break;

A duvida é :
Contara 39 vezes o 255
Sendo que estou usando cristal de 4 Mhz e esta funcionando corretamente.Só que estou alterando para trabalhar com 8 Mhz e estou apanhando para configura-los.
Agradeço muito pela explicação do TMR0 referente ao 39
Abraço a todos
avatar
antgodoy
NOVATO
NOVATO

DESCRIÇÃO: : Técnico em Eletrônica
TEMPO DE EXPERIÊNCIA : 10 anos
Sexo : Masculino
Número de Mensagens : 2
Idade : 60
Cidade/Estado: : Rio Claro SP
Data de inscrição : 28/11/2016

Voltar ao Topo Ir em baixo

Re: DUVIDAS com TMR0

Mensagem por nagkiller em Sab 20 Maio 2017, 00:14

Na verdade ele conta de 39 até 255 e não conta de 0 - 39 255 vezes ou de 0 - 255 39 vezes!!!
Ou seja, ele vai contando 40,41,42,...,254,255 (valor máximo, por ser de microcontrolador de 8bits)... neste momento há um estouro (Overflow) no TIMER0 ((T0IF) (ele fica em nível logico 1, é necessário realizar a limpeza desse registrador por software (T0IF = 0;) e atribuir novamente o valor de TMR0 (TMR0 = 39;) para continuar a contagem)). Se não fizer estes passos acima, ele continuará contando 0, 1, 2, 3, 4...

Existe um cálculo em que se utiliza dados de prescaler.
Um PIC utiliza um divisor por 4 em seu ciclo de máquina... sendo assim, ele rodando a 4MHz, estará rodando a exatos 1 / ( Frequência do XTAL / 4) = 1/4000000/4 = 0.000001 = 1us = 1 microssegundo, ou seja, cada ciclo de máquina equivale a 1us.

O prescaler divide o ciclo de maquina por um valor fixo (veja os valores do prescaler de seu PIC no datasheet), com isso há uma demora na contagem, seria um divisor de frequência. Em OPTION_REG há os bits responsáveis pelo precaler (PS2, PS1 e PS0). O valor do prescaler pode ser, de acordo com o microcontrolador, 1:1, 1:2, 1:4, 1:8, 1:16, 1:32, 1:64, 1:128 e 1:256.

Exemplo com prescaler de 1:256 e 4MHz de frequência:
Use a conta para saber o ciclo de maquina 1/(4000000/4) = 0.000001 = 1us
Para calcular o valor do periodo de Timer0 (Overflow)  = 1/(4000000/4/256) =  0,000256 = 256us
Então dividindo 1/(4000000/4)/0,000256 = 0,0039063s ou ± 4ms
Então TIMER0 recebe o valor de 256-39 = 217
0,000256*217= 0,055552s = 56ms.

Em seu exemplo A cada ±56ms há um evento de estouro do TIMER0!!!

Exemplo em XC8 PIC16F629 @ 4MHz:

Código:

/*
* File:   mainc.c
* Author: Clodoaldo Souza
*
* Created on 20 de Maio de 2017, 00:14
*/

#include <xc.h>

// CONFIG
#pragma config FOSC = INTRCIO   // Oscillator Selection bits (INTOSC oscillator: I/O function on GP4/OSC2/CLKOUT pin, I/O function on GP5/OSC1/CLKIN)
#pragma config WDTE = OFF       // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = OFF      // Power-Up Timer Enable bit (PWRT disabled)
#pragma config MCLRE = OFF      // GP3/MCLR pin function select (GP3/MCLR pin function is digital I/O, MCLR internally tied to VDD)
#pragma config BOREN = OFF      // Brown-out Detect Enable bit (BOD disabled)
#pragma config CP = OFF         // Code Protection bit (Program Memory code protection is disabled)
#pragma config CPD = OFF        // Data Code Protection bit (Data memory code protection is disabled)

void interrupt
timer0_isr(void) // Serviço de interrupção do timer0
{
T0IF = 0; // limpando a flag de estouro...
   TMR0 = 39;                  // TIMER0 recebe 39
   GPIO0 = !GPIO0;             // Inverte estado do pino
}

void main(void)
{
   OPTION_REG = 0b0111; // prescaler de 256
T0CS = 0; // seleciona clock interno
T0IE = 1; // habilita as interrupções de timer0
T0SE = 0;
GIE = 1; // habilita as interrupções globais
TMR0 = 39;                  // Timer 0 recebe valor 39
OSCCAL = 0x3ff;             // Calibracao oscilador interno
GPIO = 0x00;                // Limpa os bits GPIO
CMCON = 0x07;
TRISIO = 0b00001000;        // GP3 SEMPRE ENTRADA!!!
   for (;;)
   {
       // Aqui faz-se algo em loop
   }
   return;
}

Com 8MHz, já não será possível realizar o cálculo como acima, pois as frequências e tempos são diferentes, o TIMER0 máximo será de 0,032768s (0.000128*256). No caso terá que inserir uma variável que calcule a metade de 56ms e que conte duas vezes essa metade, por exemplo.

Fontes:
[Você precisa estar registrado e conectado para ver este link.]
[Você precisa estar registrado e conectado para ver este link.]
[Você precisa estar registrado e conectado para ver este link.]

Flw...


Última edição por nagkiller em Dom 21 Maio 2017, 11:49, editado 1 vez(es)

_________________
No mundo só existem 10 tipos de pessoas: as que conhecem binário e as que não conhecem!!!
avatar
nagkiller
Moderador do fórum
Moderador do fórum

DESCRIÇÃO: : Técnico em Eletrônica e informática
TEMPO DE EXPERIÊNCIA : Desde 1990
Sexo : Masculino
Número de Mensagens : 1743
Idade : 37
Cidade/Estado: : Garça - São Paulo
Humor : Depende
Data de inscrição : 23/11/2011

Voltar ao Topo Ir em baixo

Re: DUVIDAS com TMR0

Mensagem por antgodoy em Sab 20 Maio 2017, 06:27

Valeu nagkiller
Agora eu entendi de onde saiu este 39.
Nossa eu fiquei 2 semana pesquisando isto,encontrava mas não entendia.
Isto tudo,porque eu fabriquei uma PCB e compilei no mikroc,gravei o PIC 16F628A ,ficou perfeito,só que o projeto é de 4Mhz e na hora de finalizar eu não tinha o cristal e acabei montando com 8Mhz.
Só que 1 minuto esta executando em 0,5 minuto,claro que é devido ao dobro da frequência.
Vou alterar o programa para corrigir e você me deu a dica onde pesquisar.
O meu mais sincero OBRIGADO
avatar
antgodoy
NOVATO
NOVATO

DESCRIÇÃO: : Técnico em Eletrônica
TEMPO DE EXPERIÊNCIA : 10 anos
Sexo : Masculino
Número de Mensagens : 2
Idade : 60
Cidade/Estado: : Rio Claro SP
Data de inscrição : 28/11/2016

Voltar ao Topo Ir em baixo

Re: DUVIDAS com TMR0

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum