Necesito con el ATmega8535

#1
Hola Necesito hacer un programa en el cual me cuente una entrada y al paso de un minuto me muestre la cuenta en un display, y que eso se repita cada minuto, el programa del incremento esta bastante sencillo, pero no se utilizar los timers, ya lei mas o menos como funcionan, pero no entiendo como hacer el codigo, me imagino que es con una interrupcion o algo por el estilo. Ojala puedan ayudarme.
 
#2
Que tipo de entrada?
Porque con esto definirias el modo de utilizar el contador: 8 bits o 16 bits (TCNT=TCNTnH + TCNTnL y contas cada entrada por interrupción TOVn)

Saludos
 
#4
Primero que nada, hay que determina el tipo de pulso, y analizar en que momento se realiza el recuento, ya sea flanco ascendente o flanco descendente.

Al pareces, se trata de un proyecto de electromedicina, por lo que, en el caso de realizar muestreos y capturas de los flancos sistólicos y diastólicos generados, tendremos que partir de una base precisa:

Pulsos equivalentes a BRADICARDIA
Pulsos equivalentes a NORMOCARDIA
Pulsos equivalentes a TAQUICARDIA

por citar sólo algunos parámetros, aunque lo podemos hacer mucho mas sofisticados si incluimos la media de edad promedio y la masa muscular.

Saludos
 
#5
Hola:

Utilizar un timer no es nada complejo, pero depende de varios factores y de que pretendas hacer. Si la memoria no me falla, el micro que tienes no tiene timer para hacer un reloj en tiempo real.

Eso obliga a gastar uno de los que tienes para contar ciclos de reloj. Espero que tengas puesto un cristal externo, ya que el reloj interno no es muy preciso, que digamos.

Entonces, lo que se debe hacer es mirar el reloj que tienes. Supongamos que es de 8MHz. Entonces, hay que mirar que timer tienes. Te recomiendo uno de 16 bits si es posible. Si no, seguramente tendrás más trabajo de programación.

Con estos datos, supongamos que quieres que el timer te salte cada 10 milisegundos. Para tal efecto, pones el prescaler que te divida por ocho el reloj del sistema. Así el temporizador te contara microsegundos (uno cada 8 ciclos de reloj, y como hay 8 ciclos de reloj por microsegundo, o lo que es lo mismo, divides los 8 MHz por ocho y tienes que cuenta MHz).

Como esto no basta, necesitas algun otro contador que te cuente períodos de 10 ms, es decir 10000 us. Para ello, la manera habitual es poner uno de los registros de comparación el valor de 10000, usar el modo de CTC que básicament pone a cero el contador de manera automática cuando se alcanza el valor del registro de comparación (por ejemplo, el registro OCRA), y configurar el funcionamiento para que te genere una interrupción cuando esto se produzca.

Entonces, en la rutina de servicio de la interrupción pones un contador (una variable) que te cuente las veces que se genera dicha interrupción. Cuando esta variable te llegue a 100 (suponiendo un periodo de 10ms), ha pasado un segundo. Entonces se puede poner un contador que te cuente segundos. Y uno que te cuente minutos. Y uno que te cuente horas, etc.

Para poder ayudarte más, necesitaría saber que compilador usas, etc.

Espero haber sido de ayuda...
 
#7
Hola tengo otra duda, instale el aStudio4b452 en mi lap, pero es esta maquina tengo el windows vista, se instalo correctamente, pero al momento de querer abrir el programa me dice que windows ha detectado alguna falla y que buscara la solucion y me notificara, tienen idea de como puedo solucionar esto
 

Temas similares

Arriba