Escolar Documentos
Profissional Documentos
Cultura Documentos
h>
void main() {
TRISB = 0; //todas os pinos da porta B s�o sa�das
PORTB = 0; //todas os pinos da porta B come�am em 0
/* Fazendo
* (256-TMR0)*Prescaler*Ciclo de m�quina = Novo ciclo
*
* Tomando o novo ciclo em 0,001 segundos ent�o e a frequ�ncia de opera��o
* em 8MHz
*
* Ciclo de m�quina = 4/8000000
*
* (256-TMR0)*Prescaler = 0,001*8000000/4 = 2000
*
* � importante escolher o valor de prescaler para que o lado direito da
* equa��o seja inteiro e menor que 256. Fazendo uma divis�o de frequ�ncia
* 1:8 � o suficiente, nesse caso.
*
* (256-TMR0)=2000/8
* TMR0 = 256 - 250
*
* TMR0 = 6;
*/
while(1){
if (T0IF){ //se o temporizador gerou overflow
T0IF = 0; //reinicia o temporizador
TMR0 = 6;
c++; //contagem do n�mero de overflows
if (c==500){ //500 x 0,001 = 0,5 segundos - tempo desejado de delay
PORTB++;
c=0; //reinicia o contador
}
}
}
}