TODOPIC
Otros Microcontroladores / Dispositivos programables => Microcontroladores 8 bits => Mensaje iniciado por: Illi206 en 15 de Febrero de 2006, 13:47:00
-
Buenas!!
Tengo un proyecto realizado con un atmega8L con un cristal de 8 Mhz. El caso es que todo me va muy bien pero el tiempo de ciclo es muy largo, necesitaria aumentar la velocidad de ciclo.
Alquien sabe como puedo hacerlo.
El ATmega8L soporta un cristal de 16 Mhz?
Tendria que modificar mi codigo? o solo con decirle que el cristal es de 16 ya valdria?
Muchas gracias
-
Hola
Cuando haces subrutinas de tiempo, éstas siempre están basadas en la velocidad del micro. Si haces una subrutina de tiempo de 1ms mediante ciclos en los que el procesador no hace nada y quieres aumentar la velocidad del procesador, esa subrutina se ejecutará en menos tiempo, es decir, 0.5ms en tu caso.
Si haces una subrutina mediante el timer que incluyen los AVR, también cambiará el tiempo resultante, esta vez dependiendo de que datos hayas cargado al contador del timer.
Definitivamente debes modificar tu programa si aumentas o disminuyes la velocidad a la que corre el micro. Pero ahora usando como base los 16MHz.
Si el tiempo que esperas que tarde tu ciclo es grande y aumentas la velocidad del micro, entonces el ciclo será más corto.
-
MUchas gracias por la respuesta. Pero tengo una cosa que no tengo clara.
Yo por ejemplo he programado con el winAvr.
Si ahora con 8 MHz tengo una intruscion como:
delay_ms(1000)
me espera 1 segundo.
Al poner el cristal de 16 Mhz le tengo que decir que tiene el cristal de 16, pero si pongo la intruccion
delay_ms(1000)
me espera 1 seg o 0,5?
Gracias
-
Ahh, ahora que mencionas que usas lenguaje c...
Una vez que le hayas dicho al compilador que ahora tu AVR correrá a 16MHz, el compilador al compilar (
) tu programa creará una nueva subrutina considerando la nueva velocidad, la hará de 1000ms pero contemplando 16MHz. Se creará un nuevo archivo HEX que tendrás que cargar de nuevo en tu AVR.
Si el programa lo escribieras en ensamblador tú tendrías que recalcular saltos y códigos para generar una de 1000ms para esa nueva velocidad.
Eso es lo bueno del lenguaje C, él hace todo lo difícil.
-
Hola, che estoy buscando un programador para el atmega8L. Por lo q vi no es el mismo que para el atmega8. Y aca no consigo ninguno. Tenes algun modelo o sabes donde conseguir uno.
Saludos
-
En internet hay un monton. el otro dia improvise con el PonyProg y anda barbaro. Sino tenes el STK500 de Atmel que lo venden en Buenos Aires.
suerte