Autor Tema: Curso Básico AVR AT90S1200 Ensamblador  (Leído 49808 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado stk500

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4872
Re: Curso Básico AVR AT90S1200 Ensamblador
« Respuesta #30 en: 03 de Octubre de 2007, 02:54:40 »
 :mrgreen:
Hola Mig!
Un gran saludo!
desde hace tiempo sigo tu Curso en Assembler del Atmel 1200, pero el diablo aqui ni lo encuentros porque como sabe es Obsoleto aunque me he leido la hoja de Atmel del Attiny2313 que son en pin compartible, y no puedo nas mas que simularlo con el Studio4.
Como te explicaba en mis proximo projecto de una mesa de luces de 64 canales, este lleva el Attiny2313 y estoy aprendiendo muchos con el y lo que no tengo claro todavia es la UART de 250000 Baudrate y hacer este protocolo, por eso te pedia ayuda y espero cuando o ponga, estoy en los preparativo haciendo las traducciones de todos el projecto en Cristiano(Español)   :D para que la gente lo tenga claro.

Un gran saludo Migsantiago y muchas gracias por tu apoyo que mi deseo es que este Foro seamos mas y asi aportar mas experiencia
 :mrgreen:

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Curso Básico AVR AT90S1200 Ensamblador
« Respuesta #31 en: 03 de Octubre de 2007, 22:46:41 »
Hola Stk

No soy experto en AVRs pero en lo que pueda te ayudaré.

Gracias  :mrgreen:

Meta

  • Visitante
Re: Curso Básico AVR AT90S1200 Ensamblador
« Respuesta #32 en: 09 de Febrero de 2008, 23:08:50 »
Leyendo como es Atmel, la verdad parece mejor y más potente que los PIC de Microchip. La verdad de tanto oír a la gente que los Router nuestros para conectarnos a internet, usan AVR. Pues opino que AVR parece mejor que el PIC, eso si, el PIC al menos por ahora sigue siendo mi preferido. Por lo que veo, AVR parece más complicado para programar.

También he oído que Motorola es mucho mejor que los PIC al mismo tiempo es más DURO de programar de todos.

Por lo que veo, para gustos los colores. Funcionan y hacen de  todo.

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Curso Básico AVR AT90S1200 Ensamblador
« Respuesta #33 en: 10 de Febrero de 2008, 11:19:36 »
Cierto, pero una persona que viene de programar AVR's diría lo mismo de los PIC, que son complicados  :D

No solo se usan los AVR, sino todas las familias de Atmel en muchas aplicaciones.

Desconectado stk500

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4872
Re: Curso Básico AVR AT90S1200 Ensamblador
« Respuesta #34 en: 10 de Febrero de 2008, 12:06:25 »
Hola mi gente!
en mi opinion ni lo uno ni lo otro yo uso Atmel y Pic y encuentos los dos fabuloso ya que hay muchas aplicaciones en la Web, y muchas cosas compartible  :-) :-)

Desconectado Xavier25

  • PIC10
  • *
  • Mensajes: 12
Re: Curso Básico AVR AT90S1200 Ensamblador
« Respuesta #35 en: 14 de Julio de 2008, 16:16:13 »
Que tal, que bien, que bueno que hacen esto es muy util para comenzar principalmente en este lenguaje, recientemente tome un curso de avr pero en lenguaje c y quede fasinado, como dices es necesario conocer los micros mas "pobres" y que mejor que en asm, ya he estudiado los pics y casi los domino en asm recien estoy estudiandolos en c, estare estudiando, muchas gracias por compartir.


Desconectado pirate_x

  • PIC10
  • *
  • Mensajes: 24
    • Pirata, Inc Electronics
Re: Curso Básico AVR AT90S1200 Ensamblador
« Respuesta #36 en: 30 de Marzo de 2009, 00:37:02 »
Hola, me ha servido mucho tu ayuda, ya que necesito conocer un poco mas la estructura de estos micros y con assembler es mucho mas facil esa tarea( se puede hilar mas fino que en C).

Tengo una consulta, en C uno setea la frecuencia con que va a trabar (mas bien la frec del cristal que esta usando), mi duda es como se hace eso en assembler, o no es necesario???

saludos, y gracias

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Curso Básico AVR AT90S1200 Ensamblador
« Respuesta #37 en: 30 de Marzo de 2009, 13:07:58 »
Para el caso de ensamblador no es necesario declarar la velocidad del cristal ya que las rutinas de tiempo (ciclos anidados) y manejo de timers (desborde de timer e interrupción) son escritas por uno mismo. Uno controla el tiempo y ciclos conociendo previamente la velocidad del cristal.

Para el caso de C sí es necesario indicarle al compilador la velocidad ya que él generará rutinas de acuerdo al cristal de forma automatizada.

Para casos en donde el manejo de tiempos es irrelevante es innecesario declarar la velocidad del cristal, en ambos lenguajes, ensamblador y C.

Desconectado Capitana_de_tu_cora

  • PIC10
  • *
  • Mensajes: 1
Re:Curso Básico AVR AT90S1200 Ensamblador
« Respuesta #38 en: 22 de Abril de 2021, 14:51:20 »
Hola, soy nueva en esto y estoy buscando ayuda tengo que realizar un programa con dos contadores uno ascendente cuando el botón en el puerto PC0 y el otro descendente en el puerto PC1 y cuando  no  haya  nada presionado el contador debe mantenerse fijo. Por ahora tengo esto pero no sé cómo integrar los botones para que hagan esa función

.INCLUDE "M16DEF.INC"
.ORG 0


;PILA
LDI R16, HIGH(RAMEND)
OUT SPH, R16
LDI R16, LOW(RAMEND)
OUT SPL, R16

SER R16

OUT DDRB,R16; PUERTO B PARA LEDS

LDI R16, 0x00

CONTADORASCENDENTE:
   OUT PORTB, R16
   CALL DELAY25
   INC R16
   CALL DELAY
CONTADORDESCENDENTE:
   OUT PORTB, R16
   CALL DELAY25
   DEC R16
   CALL DELAY


DELAY:
   LDI R20, 104
   CICLO2:
      LDI R21, 255
   CICLO1:
      DEC R21
      BRNE CICLO1
      DEC R20
      BRNE CICLO2
      RET
DELAY250:
   LDI R22, 25
   CICLO3:
      CALL DELAY
      DEC R22
      BRNE CICLO3
      RET

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8092
Re:Curso Básico AVR AT90S1200 Ensamblador
« Respuesta #39 en: 23 de Abril de 2021, 07:14:48 »
Primero que nada esta faltando un loop infinito...

Segundo el delay deberia ser cortito de unos 10ms aprox para que no se note tanto.

De alli solo queda, dentro del loop principal

Citar
Inicio del loop principal
Bit test del boton ascendente, hay dos opciones:
PRESIONADO -> CALL/RCALL CONTADORASCENDENTE
NO PRESIONADO -> Continuo, es decir no es necesario poner nada.
Bit test del boton descendente
PRESIONADO -> CALL CONTADORDESCENDENTE
NO PRESIONADO -> No hago nada.
Termine el test de los botones comienzo de nuevo.. Fin del Loop principal

Hasta aca bien, el problema esta en que es necesario proteger que entre muchas veces entonces dentro de CONTADORASCENDENTE y CONTADORDESCENDENTE vamos a hacer una pequeña comprobacion.

Citar
CONTADORASCENDENTE:
   CALL DELAY25     ; Este delay entre las lecturas del boton por si hay algun rebote 10ms como te comentaba
   
   ;test del boton nuevamente, pero ahora espero que se suelte el botón (ya que para entrar acá estaba presionado)
   ;SI NO SE SOLTO-> JMP/RJMP CONTADORASCENDENTE, es decir lo encierro aca esperando que se suelte
   ;SE SOLTO-> Continuo

   INC R16
   OUT PORTB, R16
   RETURN         ;Uso el RETURN porque en el loop principal lo llame con un CALL



Por lo que veo es un solo display, pero eso deberia ser suficiente. Si tuvieras dos o mas esto no funcionaria, ya que necesitas cambiar las salidas y bloqueamos el programa al hacer lo de los botones (para que no lo tome varias veces)