PIC10F2XX Velocidade de relógio

Z

zeuter

Guest
Todos oi, eu tenho procurado por dia para encontrar uma maneira de reduzir a velocidade do clock em dispositivos 10F. Fiquei com a impressão de que isso poderia ser feito usando o prescaler e TMR0, mas agora eu não tenho tanta certeza. Eu sou bastante novo para a programação uC, então qualquer ajuda seria muito apreciada. Obrigado antecipadamente.
 
Oi, não familiarizados com esse chip, mas uma leitura rápida dos estados folha de dados que é apenas o oscilador 4Mhz interna e pronto. Timer0 leva os pulsos Fosc / 4 para criar suas temporizações com o Prescaler para produzir atrasos precisa de até 500ms ou assim, mas não pode ver como sua saída pode ser alimentado de volta como a freqüência de operação principal se isso é o que você está tentando fazer? Qual é a velocidade que você está tentando atingir e por quê?
 
Isso é correto, a série 10F2xx não têm ligação de relógio externo e deve correr a partir da uma interna 4MHz. A velocidade pode ser ajustada ligeiramente usando o registo OSCCAL mas destina-se para cortar a exatamente 4MHz ao invés de ser usado como uma maneira de selecionar freqüências de clock diferentes. TMR0 eo prescaler pode ser usado para contagem ou intervalos de tempo mais longo, mas não para ajustar a velocidade de funcionamento do núcleo. Brian.
 
Obrigado por sua resposta rápida. Eu pensei que pode ser possível para o relógio na 4MHz/256 usando o prescaler, mas não consegue encontrar uma maneira de usar TMR0 como o sinal de clock. Minha razão para querer retardar o relógio é para reduzir o calor dissipado a partir do 10F222. Eu tenho um MCP9701A sensor de temperatura que funcionou bem quando eu breadboarded do circuito. Na aplicação real, o sensor é soldada diretamente para Vss, Vdd & GP1 (definido como ADC) em um pacote DIP8 e fiquei sem entender por que o sensor estava lendo muito alta (mais de 4 graus C) e então a ficha caiu. A aplicação tem que ser preciso para + -1 º C e tenho um espaço muito limitado no recinto. Eu também quero evitar a montagem do sensor de temperatura externa, como a coisa toda tem de ser impermeável. A aplicação só precisa ser executado para um mS poucos a cada 10 segundos, por isso estou agora pensando em usar o WDT para despertar o PIC do sono, em vez de tê-lo churning afastado em atraso loops contribuindo para o aquecimento global! Novamente, porém, eu não consigo descobrir uma maneira de começar um atraso de mais de 2,3 segundos que o PICs linha de base começam sempre a partir do início do programa após um despertar do sono. Quaisquer outras idéias seriam muito bem-vindos e obrigado novamente.
 
Você está fazendo errado! Você não quer para retardar o relógio, que também lenta quaisquer outras operações que está fazendo, tudo que você precisa fazer é criar longos atrasos. Não use o watchdog para este ou use a instrução SLEEP como causa do PIC para saltar para o vetor de reset. A maneira mais fácil de criar o atraso é um loop de software simples. Desligue o ADC enquanto espera para reduzir o consumo de energia e não contam com o relógio interno TMR0 como esta também puxa força extra. Independentemente destas estar no ou não, o PIC só deve dissipar uma quantidade muito pequena de calor, é sentir algo quente está errado e 4 graus é mais do que eu teria de esperar. Eu uso uma combinação de DS18S20 e 6-pin SMT PIC10F200 dispositivos encapsulados no mesmo blob de epoxy para medir temperaturas e converter os resultados e eu não vejo nenhum aumento de temperatura em todos devido ao PIC. O consumo atual deve ser um tempo uA poucos em um loop software. Brian.
 
Oi, Se você pode obter Timer 0 a contagem regressiva um atraso, uma vez que sua conclusão, (verificação e, em seguida, redefinir a bandeira TImer0IF) que você acabou de adicionar um a um balcão, quando o contador = 4 ou o que quer seus 10 segundos é para cima. Paramenters seu projeto está Eu afaid, falho. - Um C não pode ser alcançado com os sensores como o são apenas avaliado em - 2 C. No entanto é tudo relativo, o seu 4 graus lá fora é improvável que seja o aquecimento de um dos chips já estão extremley baixo. Provavelmente a sua combinação do termômetro que você está usando para verificar as coisas com, como exato é? Também de acordo com a folha de dados você pode precisar adicionar algum pequeno ajuste para o seu software para calibrar o sensor. Também o que você está usando o poder dos chips? ele usa um regulador de tensão são-as todas as partes que geram calor.
 
Problema - o 10F2xx não tem interrupções do timer. TMR0 é apenas um contador nestes dispositivos, você tem para pesquisar e verificar de zero a usá-lo como faria com interrupções T0IF. Na verdade, esses dispositivos não têm um sistema de interrupção em tudo! Brian.
 

Welcome to EDABoard.com

Sponsor

Back
Top