Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

09/03/2012 #341

Avatar de Ajna

Oye Javisco si estar usando un reloj de 1Mhz una instruccion dura 1 us entonces no vas a poder obtener 6.4 uS, en toda caso prueba un cristal mas grande por ejemplo 10Mhz asi cada instruccion o incremento en el TCNT sera de 0.1uS asi si podras obtener los 6.4uS, dejame buscar yo lo hice igual para dispara un triac

---------- Actualizado después de 20 minutos ----------

No se como le vallas a hacer para dispara el pulso de 6.4uS, yo lo haria con la interrupcion INT0, por ejempl asi.

Código:
F_CPU 1000000
void configurar_interrupcion()
{
	MCUCR |= (1<<ISC01)|(1<<ISC00); //Interrupcion por INT0 con el filo de subida
	GIMSK |= (1<<INT0);			//Habilitamos interrupcion por INT0
}
ISR(INT0_vect)					//Cuando flanco de subida en INT0 
	OCR1A = 60;	//Valor al cual se debe llegar y generar interrupcion 60 cuentas = 60uS @ 1Mhz
	TCNT1 = 0x00;   //Habilita interrupcion por igualacion de OCR1A con TCNT1
	GIMSK |= (0<<INT0);		//deshabilitamos interrupcion por INT0
	TIMSK |= (1<<OCIE1A);        //Habilitamos interrupcion cuando TCNT1 = OCR1A
         salida_on                  //Salida encendida
	sei();
}
ISR(TIMER1_COMPA_vect)	//Cuando se halla cumplido el retardo entonces desactivamos la salida
{	cli();				
	salida_0ff;
	TIMSK |= (0<<OCIE1A);
	GIMSK |= (1<<INT0);	//Habilitamos interrupcion por INT0 para empezar de nuevo
	sei();
}
void configurar_modo_CTC()
{	
	//Modo CTC comparado con OCR1A, sin prescala por tanto se incremente en uno cada microsegundo
	TCCR1B |= (1<<WGM12)|(1<<CS10);
}

void main()
{
   void configurar_interrupcion();
   configurar_modo_CTC();
while(1);
}
12/03/2012 #342

Avatar de hamster

Hola....
Me apunto a lo del tutorial... acá dejo las mismas librerias XLCD para PIC18, nada más que modificadas para que funcionen en AVR, creo que es buena idea que las librerias sean bastantes parecidas, asi es fácil andar de micro en micro.
13/03/2012 #343


yo quisiera saber como realizo un retardo en C .... o en su defecto si lo tengo en asm como hago para citar dichas instrucciones, tengo entendido que es algo como:
asm (ldi R18, $09
WGLOOP0: ldi R19, $BC
WGLOOP1: ldi R20, $C4
WGLOOP2: dec R20
brne WGLOOP2
dec R19
brne WGLOOP1
dec R18
brne WGLOOP0 )

pero al compilarlo me resulta un error... tengo entendido que cambia segun el compilador que este usando, por lo que adviero que uso el AVR Studio 5.0
Gracias por su ayuda
14/03/2012 #344

Avatar de Ajna

Porque no usas las funciones _delay_us(); o delay_ms() o _delay_loop()

La verdad mi asm esta muy pobre.
14/03/2012 #345

Avatar de cosmefulanito04

Ajna dijo: Ver Mensaje
Porque no usas las funciones _delay_us(); o delay_ms() o _delay_loop()

La verdad mi asm esta muy pobre.
Dependiendo de la familia (suponé un Atmega8), esas funciones pesan mucho en código.
14/03/2012 #346

Avatar de Ajna

No tanto como uno imagina, ademas facilitan mucho la tarea, aun con 2k te van bien, y nunca menciono nada respecto al tamaño, y en su defecto _delay_loop() es casi casi como una macro para asm, bueno nomas era una sugerencia
14/03/2012 #347

Avatar de Meta

Hola:

¿Nadie para traducir un datasheet de un AVR al castellano o español?

Por ejemplo, escoger un AVR que le interese a la mayoría. Luego las personas se ponen de acuerdo y traducimos nuestra parte.

En su día se intentó con el PIC16F628A, luego con el PIC16F88. Aquí se hizo uno al español del 12F629/675 y bien hecho. Esta es la primera parte de seis.

http://www.micropic.es/mpforo/index.php?topic=792.0

Es una sugerencia.
14/03/2012 #348

Avatar de cosmefulanito04

Yo no tengo problemas en dar una idea de como funcionan casi todos los periféricos de un Atmega8/16 (y no se que otro se le parece) y poner ejemplos de código, creo que es la mejor forma de aprender a programarlos, con ejemplos concretos.
14/03/2012 #349

Avatar de Ajna

Ya por ahi un usuario subio una semi traduccion, fue de una tesis y sobre un atmega8215, la verdad Meta llegue a la conclusion que no tiene sentido traducir las hojas datos y que lo mejor aunque nos duela es aprender ingles, aleman y en un futuro chino.
14/03/2012 #350

Avatar de cosmefulanito04

Ajna dijo: Ver Mensaje
Ya por ahi un usuario subio una semi traduccion, fue de una tesis y sobre un atmega8215, la verdad Meta llegue a la conclusion que no tiene sentido traducir las hojas datos y que lo mejor aunque nos duela es aprender ingles, aleman y en un futuro chino.
Es que la hoja de datos normalmente tiene la información básica necesaria para saber que registros usar y algún que otro consejo, el resto dependerá de uno.
14/03/2012 #351


Ajna dijo: Ver Mensaje
Ya por ahi un usuario subio una semi traduccion, fue de una tesis y sobre un atmega8215, la verdad Meta llegue a la conclusion que no tiene sentido traducir las hojas datos y que lo mejor aunque nos duela es aprender ingles, aleman y en un futuro chino.
De acuerdo con esto, hay que usar el sentido común en lo relacionado con la tecnología. Porque perder el tiempo traduciendo data sheet, es como querer traducir las sentencias de programación: if, else, while switch, for, etc. al español.
15/03/2012 #352

Avatar de Ajna

foxil dijo: Ver Mensaje
if, else, while switch, for, etc. al español.
Yo las tradusco.

if ---> Si
else --> de otro modo
while --> mientras
switch --> "No le veo sentido como traduccion pero si a la analogia con un interruptor"
for --> para



Un cosa rapida en AVR al puerto "x" le llaman PORTx ej. PORTA
en PIC le llaman igual PORTA entonces para que traducimos si ya sabemos que vamos encontrar algo parecido

---------- Actualizado después de 3 minutos ----------

Esto es lo que yo hago mejor, por ejemplo si quiero usar el ADC anoto esto. que es muy parecido a por ejemplo los PICs

Código:
Si 50Khz<fosc<200Khz, resolucion del ADC = 10bits

ADPS2 	ADPS1 	ADPS0 	PRESCALAR
0 		0 		0 		2
0 		0 		1 		2
0 		1	 	0 		4
0 		1 		1 		8
1 		0 		0 		16
1 		0 		1 		32
1 		1 		0 		64
1 		1 		1 		128

ADMUX3	ADMUX2	ADMUX1	ADMUX0	INPUT ADC
0		0		0		0 		ADC0
0		0		0		1 		ADC1
0		0		1		0		ADC2
0		0		1		1 		ADC3
0		1		0		0	 	ADC4
0		1		0		1	 	ADC5
0		1		1		0 		ADC6
0		1		1		1 		ADC7

REFS1	REFS0	REFERENCIA
0 		0 		AREF, Internal Vref turned off
0 		1 		AVCC with external capacitor at AREF pin
1 		0 		Reserved
1 		1 		Internal 2.56V Voltage Reference with external capacitor at AREF pin

Configuracion ADMUX
	REFSx	Referencia interna, con capacitor externo en AREF
	ADELAR	Ajuste a la derecha
	MUX		Canal de conversion PC4
		
Configuracion ADCSRA
	ADEN	Habilito modulo
	ADSC	Inicio conversion
	ADFR	Modo no-free running
	ADIE	Habilito interrupciones
	ADPSx	Preescala
*/
15/03/2012 #353

Avatar de cosmefulanito04

Ajna dijo: Ver Mensaje
....
Código:
Si 50Khz<fosc<200Khz, resolucion del ADC = 10bits

ADPS2 	ADPS1 	ADPS0 	PRESCALAR
0 		0 		0 		2
0 		0 		1 		2
0 		1	 	0 		4
0 		1 		1 		8
1 		0 		0 		16
1 		0 		1 		32
1 		1 		0 		64
1 		1 		1 		128

ADMUX3	ADMUX2	ADMUX1	ADMUX0	INPUT ADC
0		0		0		0 		ADC0
0		0		0		1 		ADC1
0		0		1		0		ADC2
0		0		1		1 		ADC3
0		1		0		0	 	ADC4
0		1		0		1	 	ADC5
0		1		1		0 		ADC6
0		1		1		1 		ADC7

REFS1	REFS0	REFERENCIA
0 		0 		AREF, Internal Vref turned off
0 		1 		AVCC with external capacitor at AREF pin
1 		0 		Reserved
1 		1 		Internal 2.56V Voltage Reference with external capacitor at AREF pin

Configuracion ADMUX
	REFSx	Referencia interna, con capacitor externo en AREF
	ADELAR	Ajuste a la derecha
	MUX		Canal de conversion PC4
		
Configuracion ADCSRA
	ADEN	Habilito modulo
	ADSC	Inicio conversion
	ADFR	Modo no-free running
	ADIE	Habilito interrupciones
	ADPSx	Preescala
*/
Eso que haces está muy piola para ver la configuración rápidamente en el mismo código y no tener que estar con la hoja de datos encima, ..... me parece que voy hacer un copiar y pegar
15/03/2012 #354

Avatar de Moyano Jonathan

Yo hace poco migré del WinAVR a la versión integrada del AVRSTUDIO 5 y me parece una suite excelente. El único problema fue configurar el programador que tenía...USBtinyISP para integrarlo con la IDE.
Para eso les hice un videotutorial por si alguno de ustedes tenía ese problema:
15/03/2012 #355

Avatar de COSMICO

Gracias amigo Moyano.
Ojalá pronto acaben mis problemitas, y pueda dedicarle tiempo a este tema.
Espero poder contar con tu ayuda.
Un saludo.
16/03/2012 #356

Avatar de StrySG

Hace poco pude compilar un codigo escrito con WINAVR de windows desde linux ubuntu, no tuve que usar wine encontré una herramienta similar al Programmer's Notepad pero para Linux, se llama -Anjuta- Y es software libre solo que tambien tuve que descargar las librerias avr-gcc para linux... funciona muy bien y es muy similar al programer's notepad aunque aun tengo algunas dudas.También pude simular AVRs usando proteus con wine. Me pregunto si ustedes conocen algunas otras herramientas para Ubuntu.
17/03/2012 #357

Avatar de Meta

Muy bueno.

En Microchip está el MPLAB v8.84 y el MPLAB X 1.10 por el momento. También los C18, C32 etc en el lenguaje C.

En Atmel.
¿Cuál es el IDE oficial?
He visto varios y son del C.

Otra pregunta.
El PIC para aprender es el 16F84A y tiene su propio libro dedicado a ello y es de los mejores. El 16F886 también con su libro en ASM y C, se que hay mejores que este.

En Atmel. ¿Cuáles son los AVR más usados para aprender?
Se que en PIC se usa mucho los 12F629, 16F84A/628A/88, 16F886/887, 18F2550/4550 y algunos más. Es para hacer referencia.

Un cordial saludo.
17/03/2012 #358

Avatar de Moyano Jonathan

En Atmel.
¿Cuál es el IDE oficial?
He visto varios y son del C.
AVR Studio 5.1 es la IDE oficial. Se puede programar en C o ASM, es totalmente free y soporta micros de 8 y 32 bits.

Tiene el compilador de C integrado, es estandar y está muy optimizado.

En Atmel. ¿Cuáles son los AVR más usados para aprender?
Se que en PIC se usa mucho los 12F629, 16F84A/628A/88, 16F886/887, 18F2550/4550 y algunos más. Es para hacer referencia.
No hay libros en español sobre ATMEL propiamente dichos, pero hay muchisimos libros de AVR en inglés muy bien explicados.

Te invito a que comiences a investigar del tema de AVR y te armes algún programador. Ya sea serial o USB para hacer las primeras prácticas, te vas a dar cuenta que no te va a hacer falta un libro para aprender...
17/03/2012 #359

Avatar de Meta

Gracias por responder, haber libros en Inglés de AVR es un primer paso.
Lo de que si me doy cuenta que no hace falta libro, me imagino que lo dirás por el tema que tengo algo de conocimento de PIC, ya que el cambio sería más fácil.
22/03/2012 #360


che moyano que debo estar haciendo mal?

command: D:\compiladores\SinaProg_2.0\data\avrdude.exe
arguments: -c usbtiny -p t2313 -u flash:w:$(ItemFileName)
initial directory: D:\compiladores\programas en GCC\attiny2313\pwm_motordc\PWM_MOTORDC\PWM_MOTORDC \Debug


me sale esto:


avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude.exe: Device signature = 0x1e910a
avrdude.exe: NOTE: FLASH memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude.exe: erasing chip
avrdude.exe: reading input file "PWM_MOTORDC"
avrdude.exe: error opening PWM_MOTORDC: No such file or directory
avrdude.exe: input file PWM_MOTORDC auto detected as invalid format
avrdude.exe: can't open input file PWM_MOTORDC: No such file or directory
avrdude.exe: write to file 'PWM_MOTORDC' failed

avrdude.exe: safemode: Fuses OK

avrdude.exe done. Thank you.
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.