Autor Tema: EJEMPLITOS DE BASCOM AVR... ATMEGA8..  (Leído 205743 veces)

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

Desconectado olotill

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 249
EJEMPLITOS DE BASCOM AVR... ATMEGA8..
« en: 05 de Abril de 2006, 15:01:04 »
QUE TAL COMPADRES...

PUES COMO CASA NUEVA... ESTRENO NUEVO  :D .. ME HE PROPUESTO RETORMAR EL HILO DE LA PROGRAMACION DE MICROS ATMEL, ESPECIFICAMENTE A TRABAJAR CON EL ATMEGA8... Y EL ELNGUAJE DE PROGRAMACION SERA EN BASIC.... ASI QUE EL SOFT ES EL BASCOM AVR...

A MI PARECER ES UN EXCELENTE SOFT (A PESAR QUE NO SOY EXPERTO EN SU MANEJO) PERO QUE ME HA SACADO DE LOS APUROS EN PEQUEÑOS PROYECTOS QUE HE TENIDO...

PUES BIEN... PARA EMPEZAR DECIR QUE ESPERO SU COLABORACION Y SU APOYO... Y SOBRE TODO SUS DUDAS PARA IR APRENDIENDO JUNTOS, PORQUE COMO LES DIJE EXPERTO NO SOY, MAS BIEN SOY UN NOVATO CON GANAS DE APRENDER BIEN... Y PUES QUE MEJOR SI APRENDEMOS A LLEVAR DE LA MANO LOS PIC CON LOS AVR  :lol:..

OK BASTA DE PALABRAS, Y PARA EMPEZAR LES DEJO EL LINK DE UNA PAGINA SOBRE BASCOM AVR... QUE TIENE BUENA INFO Y EN LA CUAL ME BASARE PARA IR HACIENDO LOS EJEMPLITOS...( TRATARE DE SEGUIR LA LINEA DEL MAESTRO VSZENER Y DE REDPIC EN CCS PARA PIC) ... DE IGUAL FORMA DAR LAS GRACIAS AL COMPADRE HERNAN DOPPEL POR LA AYUDA PARA CONSEGUIR INFO...

MUY BIEN.. PUES POR AHORA ESO ES Y A TRABAJAR EN EL PRIMER EJEMPLITOS...

ACA EL LINK...

http://web.inter.nl.net/users/cpotma/


LISTO ASI Q DESDE AHORA EMPEZAMOS LA CARRERA, HAY MUCHOS EJEMPLOS QUE IGUAL A VSZENER Y REDPIC  :D ...

UN ABRAZO DESDE MI QUERIDA TIERRA... EL ECUADOR..
"La imaginación es más importante que el conocimiento"  A. Einstein..

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5552
    • Picmania by Redraven
Re: EJEMPLITOS DE BASCOM AVR... ATMEGA8..
« Respuesta #1 en: 05 de Abril de 2006, 15:47:06 »
¡¡¡ Bien por Olotill !!! Así se habla (o se escribe).

Te deseo mucha suerte en tu nueva singladura. Que usted lo postee bien, y yo que lo vea.  :D
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: EJEMPLITOS DE BASCOM AVR... ATMEGA8..
« Respuesta #2 en: 05 de Abril de 2006, 15:51:35 »
Hola:

Pues felicitarte por la iniciativa Fabian por los ejemplos que vas a ir subiendo, debido a que ahora ya cuento con el programador para AVR y a la espera de que el Maestro Sisco lance su nueva version del winpic, me he dedicado a jugar con AVR y simularlo en proteus, el lenguaje que estaba utilizando es el Mikrobasic para AVR, me parece interesante que se de  a conocer mas sobre estos compiladoresya que son sencillos de utilizar.

Yo me animo a proponer lo siguiente:

Para ir aprendiendo entre todos los amantes del basic y gente que se quiera iniciar en este lenguaje, que les pareceria si se abriera un nuevo subforo como lo hay en microcontroladores pic, en ese caso el subforo se llama Pic basic pro y protón, ya que esos dos son solo para PIC, y para AVR pues un subforo como Bascom AVR y Microbasic para AVR.

Claro que solo es una sugerencia, y en definitiva quien tiene el poder para decidir eso es Norberto, pero me pareceria una buena opcion para los que querramos iniciarnos con AVR y Basic, a ver que les parece a ustedes.

Aunque me sali de "foco" con el tema del post original de Fabian, pero es algo que queria comentar. :mrgreen:

Desconectado PAOLA09

  • Moderadores
  • PIC18
  • *****
  • Mensajes: 332
Re: EJEMPLITOS DE BASCOM AVR... ATMEGA8..
« Respuesta #3 en: 05 de Abril de 2006, 16:18:47 »
HOLA:

que iniciativa tan interesante Fabian. veamos si te logro seguir el paso ya que hay si sabes mas tu  :lol:. yo apenas empezaría con la cosa.

Desconectado vszener

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2395
Re: EJEMPLITOS DE BASCOM AVR... ATMEGA8..
« Respuesta #4 en: 05 de Abril de 2006, 17:02:53 »
Pues felicitar al amigo Olotill por la iniciativa de postear ejemplos con dicho y micro!!!me parece que un foro como este, lleno de ejemplos en 'casi' todas sus categorias(ya sea en c, en basic, en atmel...) lo hace aun mas genial!!! mucha suerte y ha postear muchos ejemplos!!!

PD: Ya nos animaremos ha trabajar algo el basic tambien....jeje


Suerte!!! :wink:
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado olotill

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 249
Re: EJEMPLITOS DE BASCOM AVR... ATMEGA8..
« Respuesta #5 en: 07 de Abril de 2006, 00:12:40 »
GRACIAS POR EL APOYO COMPADRES... ASI ES MAS FACIL SEGUIR ADELANTE

Pues bien ahora para retomar con fuerza el tema de AVR en BASIC con BASCOM AVR, vamos a empezar primero presentando a la estrella que sera usada como base de los ejemplos el micro ATMEL ATMEGA8… cuyo datasheets lo pueden descargar desde:

http://www.atmel.fi/dyn/resources/prod_documents/doc2486.pdf

Como caracteristicas rápidas…. El atmega8 posee 8kb de memoria flash, 512 bytes eçde EEPOM, y 1KB de SRAM, posee 2 timers, 2 de 8 bits y uno de 16 bits…Posee un reloj de tiempo real (RTC) con oscilador externo.. y 6 canales de ADC… y por supuesto comunicación serial…

Para realizar la programación del ATMEGA…. Vamos a utilizar por ahora el STK – 200 Programmer… que es un programador por puerto paralelo… en el help del BASCOM AVR, van a INDEX y luego buscan ISP Programmer, ahí les muestra el esquema del programador, que simplemente utiliza 5 lineas… la configuración del programador se las mostraré para futuros ejemplos…

Cuando tenga lista mis bases ZIF, y WINPIC800 tenga el soporte listo para el ATMEGA8 pues utilizare este programador que dicho sea de paso… es excelente tanto en funcionalidad como en acabados… Ya tengo el mio traido desde Argentina, gracias a Marcelo Marmatar, y no es por publicidad pero los animo a que hagan su inversión en este grandioso programador…

Ahora bien… empecemos con los ejemplitos sencillos, y el encendido de leds ..

Primero vamos a configurar el BASCOM AVR para trabajar con el ATMEGA 8...

ABRIMOS EL BASCOM AVR :


VAMOS AL MENU OPTION / COMPILER / CHIP PARA SELECCIONAR EL MICRO A TRABAJAR... EN ESTE CASO EL ATMEGA8


SELECCIONAMOS EL MICRO A UTILIZAR:



Bien, bien ahora si... pues vamos a escribir un pequeñito codigo... el cual esta expicado para su facil comprension...

PROGRAMA LED-FLASH
Código: [Seleccionar]
$crystal = 1000000                                          'CRISTAL INTERNO DE  1 MHZ

Config Portb = Output                                       'CONFIGURAR PORTB COMO SALIDAS EN 0 LOGICO

Do                                                          'LAZO INFINITO
   Portb = 255                                              'ENCENIENDO LOS LEDS EN EL PORTB
   Waitms 150                                               'ESPERA DE 150 MS
   Portb = 0                                                'APAGO LOS LEDS EN EL PORTB
   Waitms 150                                               ' ESPERA 150 MS
Loop

End                                                         ' FIN DEL PROGRAMA


Muy bien, para compilar y obtener el HEX de este archivo pues simplemente con F7...

Ahora, este ejemplito solo lo voy a simular en Proteus los proyectos un poquito màs complejos los iremos probando in real...

Aca el esquema en Proteus....



Y pues para mayor facilidad aca los archivos necesarios para este ejercicio..



Ok compadres espero que les sirva y les guste el primer y sencilllo ejemplito... aun tengo mucho por aprender con uds... asi que llevaremos de la mano al PIC CCS con el AVR BASIC  :lol:...

Nos vemos en el proximo ejemplito







"La imaginación es más importante que el conocimiento"  A. Einstein..

Desconectado doppel

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1536
Re: EJEMPLITOS DE BASCOM AVR... ATMEGA8..
« Respuesta #6 en: 07 de Abril de 2006, 00:52:59 »
Ke Grande FABIAN! buenisimo lo que estás haciendo! me parece que voy a tener que aprender varias cosas!!jejjee  de donde bajo la demo de BASCOM?

saludos

" Para ser exitoso no tienes que hacer cosas extraordinarias. Haz cosas ordinarias, extraordinariamente bien "

Desconectado olotill

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 249
Re: EJEMPLITOS DE BASCOM AVR... ATMEGA8..
« Respuesta #7 en: 07 de Abril de 2006, 01:14:28 »
QUE TAL BROTHER HERNAN...

PUES POR ACA PUEDEN CONSEGUIR LA VERSION DEMO DE BASCOM AVR, QUE NOS PERMITE CREAR HASTA 2K DE CODIGO QUE PUES VA BIEN...

http://www.mcselec.com/index.php?option=com_docman&task=cat_view&gid=99&Itemid=54


CON TODO PARA LOS AMIGOTES.. PUES YA SABEN PONGANSE EN CONTACTO VIA MAIL... PARA PASARLES LA VERSION DEMO  :wink: 8)  :lol:  :mrgreen:

UN ABRAZO COMPADRES... MAÑANA OTRO EJEMPLITO MAS
"La imaginación es más importante que el conocimiento"  A. Einstein..

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: EJEMPLITOS DE BASCOM AVR... ATMEGA8..
« Respuesta #8 en: 11 de Abril de 2006, 15:15:53 »
Pondré una chincheta en este tema para que sea una guía más con la que cuenta el subforo Atmel.

Buen trabajo olotill.  :)

Desconectado olotill

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 249
Re: EJEMPLITOS DE BASCOM AVR... ATMEGA8..
« Respuesta #9 en: 11 de Abril de 2006, 22:16:50 »
Compadre Migsantiago...

Gracias por el apoyo, y perdon a los compadres por no subir ejemplitos estos dias pero es que he estado modificando los modulos de mi entrenador para tener un modulo para AVR tambien  :lol: ....  En estos dias me pongo al filo con los ejemplitos que aunque sencillos pueden ser utiles para queines iniciamos

Un abrazo compadres
"La imaginación es más importante que el conocimiento"  A. Einstein..

Desconectado olotill

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 249
Re: EJEMPLITOS DE BASCOM AVR... ATMEGA8..
« Respuesta #10 en: 13 de Abril de 2006, 11:49:49 »
Que tal compadres...

Pues bien ahora que estoy un poquito mas libre, retomo mis ejemplitos y pues veamos si llego a los diez en estos dias,...  :D..

El ejemplo de hoy se basa en el EJ1, ya que hace lo mismo pero utilizando un control mas preciso del puerto de salida, ya que nos explica como podemos configurar Bit a Bit los pines de un puerto...

Decir que como dije antes los ejemplos se basaran en la metodologia seguida por el gran maestro VsZener en sus grandes ejemplos de pic en C..

Bueno vamos al ejemplo...

Código: [Seleccionar]
$crystal = 1000000                                          'CRISTAL INTERNO DE  1 MHZ

'*******************************************************************
'*** ENE STE EJEMPLO VAMOS A REALIZAR EL PARPADEO DE LOS LEDS... PERO VAMOS
'*** VAMOS A VER COMO SE PUEDE CONFIGURAR BIT A BIT EL I/O DE UN PUERTO....
'*** PARA ESTO VAMOS A USAR EL COMANDO DDR.... EL CUAL DEBE IR ACOMPAÑADO DEL
'*** COMANDO PORT......
'*** ACA UNA BREVE DESCRIPCION DE ESTOS COMANDOS..


'*** DDBn   PORTBn     I/O    Pull up        Comment
'*** 0         0     Input       No       Tri-state    (Hi-Z)
'*** 0         1     Input       Yes      PBn will source current if ext. pulled low.
'*** 1         0     Output      No       Push-Pull Zero Output
'*** 1         1     Output      No       Push-Pull One Output

'*** DECIR BREVEMENTO QUE DEPENDIENDO DE LOS VALORES QUE DEMOS A ESTOS PARAMETROS
'*** OBTENDREMOS SALIDAS O ENTRADAS EN UN PUERTO...
'*** PARA ESTE EJEMPLO VAMOS A CONFIGURAR BIT A BIT EL PORTB PARA QUE SEAN SALIDAS EN 0 LOGICO
'*** POR LO QUE LOS VALORES DEBEN SER DDRn 1 Y PORTn 0..


Ddrb.0 = 1
Portb.0 = 0
Ddrb.1 = 1
Portb.1 = 0
Ddrb.2 = 1
Portb.2 = 0
Ddrb.3 = 1
Portb.3 = 0
Ddrb.4 = 1
Portb.4 = 0
Ddrb.5 = 1
Portb.5 = 0
Ddrb.6 = 1
Portb.6 = 0
Ddrb.7 = 1
Portb.7 = 0

Dim Count As Byte

Count = 0

Do                                                          'LAZO INFINITO
   Portb = 255                                              'ENCENIENDO LOS LEDS EN EL PORTB
   Waitms 300                                               'ESPERA DE 150 MS
   Portb = 0                                                'APAGO LOS LEDS EN EL PORTB
   Waitms 300
   Incr Count                                               ' ESPERA 150 MS
Loop Until Count = 255

End



Recordar q para la congifuracoin del micro a usar en bascom se siguen los pasos del ejemplo 1...

Una breve explicacion adicional sobre el comando DDr...

Asi como vemos se puede especificar bit a bit el control pero la manera como esta hecha el ejemplo no es la mas practica, lo mejor seria especificar en valores decimales, hexadecimales o binarios las salidas aqui un ejemplo de cada uno...

Por ejemplo

DECIMAL:

Ddrb = 255
Portb = 0

HEXADECIMAL:

Ddrb = &HFF
Portb = &H00

BINARIO:  LA Q MAS ME GUSTA

Ddrb = &B11111111
Portb = &B00000000


DE ESTA MANERA AHORAMOS ESPACIO..

OK ACA LOS ARCHIVOS DEL EJEMPLO..
"La imaginación es más importante que el conocimiento"  A. Einstein..

Desconectado olotill

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 249
Re: EJEMPLITOS DE BASCOM AVR... ATMEGA8..
« Respuesta #11 en: 13 de Abril de 2006, 12:31:27 »
Que tal brothers...

Pues bien ya que hoy tengo dia libre.... pues voy a trabajar en mis ejemplitos... veamos hasta donde llego...

Bien una vez entendido el manejo y configuracion de puertos... hoy vamos a hacer el ejemplito de las luces del auto fantastico......

Este tercer ejemplo usara un comando interno del Bascom (como muchos otros lo tienen) que sirve para rotar bit a bit el valor de una variable....

El Comando tiene la estructura:

ROTATE var , LEFT/RIGHT[ , shifts]

en la cual se pone la variable y la direccion hacia donde se quiere rotar los valores de los bits...

Una explicacion rapida del comando, pues por ejemplo si tengo una variable A, cuyo valor es 8 (1000 en binario) al colocar una sentencia ROTATE A, LEFT
lo que obtendria seria 16.... si se rotara asi ROTATE A, RIGHT el valor que obtendriamos seria 4...

Pues bien aqui el ejemplito...


Código: [Seleccionar]
$crystal = 1000000                                          'CRISTAL INTERNO DE  1 MHZ


'*** DDBn   PORTBn     I/O    Pull up        Comment
'*** 0         0     Input       No       Tri-state    (Hi-Z)
'*** 0         1     Input       Yes      PBn will source current if ext. pulled low.
'*** 1         0     Output      No       Push-Pull Zero Output
'*** 1         1     Output      No       Push-Pull One Output

'*** DECIR BREVEMENTO QUE DEPENDIENDO DE LOS VALORES QUE DEMOS A ESTOS PARAMETROS
'*** OBTENDREMOS SALIDAS O ENTRADAS EN UN PUERTO...
'*** PARA ESTE EJEMPLO VAMOS A CONFIGURAR BIT A BIT EL PORTB PARA QUE SEAN SALIDAS EN 0 LOGICO
'*** POR LO QUE LOS VALORES DEBEN SER DDRn 1 Y PORTn 0..

Config Portb = Output

Dim I As Byte

Portb = 1
Waitms 300

Do                                                          'LAZO INFINITO
   For I = 1 To 7                                           'ESTRUCTURA FOR
      Rotate Portb , Left                                   'SENTENCIA ROTATE QUE MUEVE BIT A BIT
      Waitms 300                                            'IZQUIERDA COMO PORTB INICIA EN 1 DESPUES DE O VECES
   Next                                                     ' SU VALOR SERA 128
   For I = 1 To 7                                           'VICEVERSA A KA ESTRUCTURA ANTERIOR
      Rotate Portb , Right
      Waitms 300
   Next
Loop                                                        'LAZO INFINITO

End


Muy bien compadres, aca los archivos y se viene otro configuracion para hacer las luces del autofantastico...

Aca una imagen de la simulacion..





« Última modificación: 13 de Abril de 2006, 12:50:38 por olotill »
"La imaginación es más importante que el conocimiento"  A. Einstein..

Desconectado olotill

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 249
Re: EJEMPLITOS DE BASCOM AVR... ATMEGA8..
« Respuesta #12 en: 13 de Abril de 2006, 13:10:04 »
Que hay brothers

Pues bien aca jugando con las subrutinas de bascom podemos ver lo sencillo que se va haciendo programar como si se tratase de un flujograma...

Muy bien... este ejemplito aunque hace los mismo que el anterior, es de una confuguracion diferente y nos permite ver como usar Subrutinas dentro de Bascom.... en este caso son subrutinas vacias, en ejemplos posteriores utilizaremos parametros y luego trambien funciones....

En este ejemplo una forma no tan practica de hacer las luces del autofantantisco pero para aprender va bien.....


Código: [Seleccionar]
$crystal = 1000000                                          'CRISTAL INTERNO DE  1 MHZ

Config Portb = Output

Dim I As Byte

Declare Sub Izq()                                           'declaracion subrutinas
Declare Sub Dere()


Do                                                          'LAZO INFINITO
   Call Izq()                                               'ir a subrutina izquierda
   Call Dere()                                              'ir a subrutina derecha
Loop                                                        'LAZO INFINITO


Sub Izq()
   Portb = 1
   Waitms 150
   Portb = 2
   Waitms 150
   Portb = 4
   Waitms 150
   Portb = 8
   Waitms 150
   Portb = 16
   Waitms 150
   Portb = 32
   Waitms 150
   Portb = 64
   Waitms 150
   Portb = 128
   Waitms 150
End Sub

Sub Dere()
   Portb = 64
   Waitms 150
   Portb = 32
   Waitms 150
   Portb = 16
   Waitms 150
   Portb = 8
   Waitms 150
   Portb = 4
   Waitms 150
   Portb = 2
   Waitms 150
End Sub

End                                                         ' FIN DEL PROGRAMA



Decir que aca estan los archivos de este ejemplo...

"La imaginación es más importante que el conocimiento"  A. Einstein..

Desconectado olotill

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 249
Re: EJEMPLITOS DE BASCOM AVR... ATMEGA8..
« Respuesta #13 en: 13 de Abril de 2006, 13:38:53 »
QUE TAL COMPADRES, PUES BIEN ACA LA VERSION FINAL DE LAS LUCES DEL AUTO FANTASTICO...

QUE NO ES MAS QUE LA UNION DE LAS PRACTICAS ANTERIORES PARA OBTENER UN CODIGO REDUCIDO (NO SE SI EN MEMORIA PERO SI EN LINEAS DE PROGRAMACION  :D )...

BUENO SIN MAS PREAMBULOS ACA EL CODIGO Y LOS ARCHIVOS..

Código: [Seleccionar]

$crystal = 1000000                                          'CRISTAL INTERNO DE  1 MHZ

Config Portb = Output

Declare Sub Izq()                                           'declaracion subrutinas
Declare Sub Dere()

Portb = 1
Waitms 150

Do                                                          'LAZO INFINITO
   Call Izq()                                               'ir a subrutina izquierda
   Call Dere()                                              'ir a subrutina derecha
Loop                                                        'LAZO INFINITO


Sub Izq()
   Local I As Byte
   For I = 1 To 7
      Rotate Portb , Left
      Waitms 150
   Next
End Sub

Sub Dere()
   Local J As Byte
   For J = 1 To 7
      Rotate Portb , Right
      Waitms 150
   Next

End Sub

End                                                         ' FIN DEL PROGRAMA




ACA LOS ARCHIVOS...

"La imaginación es más importante que el conocimiento"  A. Einstein..

Desconectado olotill

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 249
Re: EJEMPLITOS DE BASCOM AVR... ATMEGA8..
« Respuesta #14 en: 13 de Abril de 2006, 14:40:03 »
Pues bien...

Luego de luchar contra Bascom buscando una manera nueva (no tipica) de usar arreglos y eso, me he encontrado con los manejos de etiquetas Data que ahorran el espacio al no consumir memoria RAM...... que por lo que veo me va a ser muy util..

bien aca dejarles el ejemplo del juego de LUCES del ejemplo del maestro VSZener...

Código: [Seleccionar]
$crystal = 1000000                                          'CRISTAL INTERNO DE  1 MHZ

Config Portb = Output

Dim I As Byte

Do
   For I = 0 To 3
      Portb = Lookup(i , Luces)
      Waitms 250
   Next
   For I = 2 To 1 Step -1
      Portb = Lookup(i , Luces)
      Waitms 250
   Next

Loop

End                                                         ' FIN DEL PROGRAMA


Luces:
Data &B10000001 , &B01000010 , &B00100100 , &B00011000


Aca una imagen lo lo obtenido..



Y pues aca los archivos...

"La imaginación es más importante que el conocimiento"  A. Einstein..