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

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

Desconectado stk500

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4923
Re: EJEMPLITOS DE BASCOM AVR... ATMEGA8..
« Respuesta #45 en: 04 de Julio de 2008, 03:14:17 »
Un Saludo a las gente de AVR Bascom, esto por aqui esta algo abandonados y estoy abriendo mi Baul donde tengo muchas cosas para hacer con Bascom, esperando que nuestros amigo Olotill venga por aqui y me aclare muchas dudas, de momento estoy haciendo un teclado con LCD y es un Ejempo demo integrado en Bascom pero no consigo simularlo bien para que me salga los display
aqui esta el ejemplo
$regfile "m32def.dat"
 
$crystal = 8000000

$lib "Lcd_i2c.lib"                                          'Mi controlador para el LCD
$lib "Key_i2c.lib"                                          'Mi i2c teclados
$external _key_scan                                         'activa la routina

Config I2cdelay = 1

Const Pcf8574_lcd = &H40                                    'Define la direciones de los I/O expander para LCD
Const Pcf8574_kbd = &H42                                    'Define la direcion de los I/O expander para KBD
!rcall _Key_Init                                            'llamamos la inicializacion de la routina (necesario si int controla)

Config Scl = Portd.6                                        'Configura i2c SCL
Config Sda = Portd.7                                        'Configura i2c SDA
Dim _lcd_e As Byte                                          'Necesario para control de 4 line del LCD
Dim _key_scan As Byte                                       'Volvemos a la Tecla desde tecla Scan

Enable Interrupts
Config Int0 = Falling                                       'Int señal para PCF8574_KBD esta connectedo en INT0
'Enable Int0                                                 'Don't enable until it should be used (after LCD-test)
On Int0 _int0_label                                         'Procedure to call upon interrupt

'_lcd_e = 128 select E1, 64 select E2, 192 select both (for CLS or DefLCDChar etc.)
_lcd_e = 128                                                'Upper half of 4-line display is selected

'Here the LCD test program that is included in BASCOM follows
'and at the end there is a demo of the keyboard scan routine

Dim A As Byte
'Config Lcd = 40 * 4                                         'configure lcd screen
'other options are 16 * 4 and 20 * 4, 20 * 2 , 16 * 1a
'When you dont include this option 16 * 2 is assumed
'16 * 1a is intended for 16 character displays with split addresses over 2 lines

'$LCD = address will turn LCD into 8-bit databus mode
'       use this with uP with external RAM and/or ROM
'       because it aint need the port pins !
' Put your own strings here
Cls                                                         'clear the LCD display
Lcd "Hello world."                                          'display this at the top line
Wait 1
Lowerline                                                   'select the lower line
Wait 1
Lcd "Shift this."                                           'display this at the lower line
Wait 1
For A = 1 To 10
   Shiftlcd Right                                           'mover el texto a la derecha
   Waitms 250                                               'esperar un momento
Next

For A = 1 To 10
   Shiftlcd Left                                            'mover texto a la izquierdad
   Waitms 250                                               'esperar un momento
Next


Locate 2 , 1                                                'ponemos el Cursor en posicion set cursor position
Lcd "*"                                                     'display esta en
Wait 1                                                      'eperar un momento

Shiftcursor Right                                           'mover el cursor del display
Lcd "@"                                                     'display esta en
Wait 1                                                      'esperar un momento

Home Upper                                                  'selecionamos linea 1 y retornamos a home
Lcd "Replaced."                                             'replace el texto
Wait 1                                                      'esperamos un momento

Cursor Off Noblink                                          'escondemos el curso
Wait 1                                                      'esperamos un momento
Cursor On Blink                                             'mostramos el cursor
Wait 1                                                      'esperamos un momentos
Display Off                                                 'apagamos el cursor
Wait 1                                                      'esperamos un momentos
Display On                                                  'encendemos el cursor
'-----------------Support for line 3 and 4 is controlled via _lcd_e
_lcd_e = 64
Lcd "Line 3"
Lowerline
Lcd "Line 4"
Wait 1
_lcd_e = 192                                                'select both halfs for defining characters
'Now lets build a special character
'the first number is the characternumber (0-7)
'The other numbers are the rowvalues
'Use the LCD tool to insert this line
Deflcdchar 2 , 32 , 10 , 32 , 14 , 17 , 17 , 17 , 14        ' replace ? with number (0-7)
Deflcdchar 0 , 32 , 4 , 32 , 14 , 18 , 18 , 18 , 13         ' replace ? with number (0-7)
Deflcdchar 1 , 32 , 10 , 32 , 14 , 18 , 18 , 18 , 13        ' replace ? with number (0-7)
_lcd_e = 128
Cls                                                         'select data RAM
Rem it is important that a CLS is following the deflcdchar statements because it will set the controller back in datamode
Lcd Chr(0) ; Chr(1)                                         'print the special character

'----------------- Now use an internal routine ------------
_temp1 = 2                                                  'value into ACC
!rCall _write_lcd                                           'put it on LCD



'Display pressed key value on LCD

Do

Enable Int0                                                 'Now I could accept input from Keyboard
If _key_scan > 0 Then                                       'As the keyboard is interupt driven I could do like this!
   Disable Int0                                             'Disable Int0 during LCD output due to the fact
   Locate 2 , 10                                            'that _Key_Scan also uses i2c (garbled output is likely)
   Lcd _key_scan ; " "
   Enable Int0
End If

Loop
End

_int0_label:
!rcall _Key_Scan
Return

Desconectado K4NON

  • PIC10
  • *
  • Mensajes: 4
Re: EJEMPLITOS DE BASCOM AVR... ATMEGA8..
« Respuesta #46 en: 07 de Marzo de 2009, 18:27:10 »
una pregunta respecto al programa que usan

que diferencia existe entre avr- bascom y el avr studio
las instrucciones son las mismas ?
es lo mismo programar en uno que en otro
cabe resaltar que estoy iniciando en esto y estoy
en etapa de recolectando conocimiendo de micros

gracias

Desconectado stk500

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4923
Re: EJEMPLITOS DE BASCOM AVR... ATMEGA8..
« Respuesta #47 en: 08 de Marzo de 2009, 09:13:16 »
una pregunta respecto al programa que usan

que diferencia existe entre avr- bascom y el avr studio
las instrucciones son las mismas ?
es lo mismo programar en uno que en otro
cabe resaltar que estoy iniciando en esto y estoy
en etapa de recolectando conocimiendo de micros

gracias
No, no es los mismo, Bascom es Basic y AVRstudio es Assembla.

Saludo

Desconectado mixi

  • PIC10
  • *
  • Mensajes: 4
Re: EJEMPLITOS DE BASCOM AVR... ATMEGA8..
« Respuesta #48 en: 31 de Agosto de 2009, 13:30:28 »
ke paja jeje yo solo he programado atmega8 con assembler ahora me ha dado mucha curisosidad hacerlo en basic jejje diganme por favor  donde puedo encuentro mas infomacion y ejemplos  acerca de la programacion en basic para el micro atmeg8

Desconectado stk500

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4923
Re: EJEMPLITOS DE BASCOM AVR... ATMEGA8..
« Respuesta #49 en: 31 de Agosto de 2009, 13:33:53 »
Hola Mixi y Bienvenido al Foro todopic!
Si comienza desde el principios todos los mensaje te dara cuenta de muchas cosas
en bascom tambien se puede programar con Assembler.
Saludo

Desconectado mixi

  • PIC10
  • *
  • Mensajes: 4
Re: EJEMPLITOS DE BASCOM AVR... ATMEGA8..
« Respuesta #50 en: 31 de Agosto de 2009, 14:03:17 »
jeje gracias rafa,bueno ahora ire chekeando los progrmas ke pongan en basic.. dime en el bascom hay algun menu de ayuda que te explike las instrucciones bacic  ke se usan???   eske solo se assembler y  hace mucho tiempo ke no practiko c o basic

Desconectado stk500

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4923
Re: EJEMPLITOS DE BASCOM AVR... ATMEGA8..
« Respuesta #51 en: 31 de Agosto de 2009, 14:56:22 »
jeje gracias rafa,bueno ahora ire chekeando los progrmas ke pongan en basic.. dime en el bascom hay algun menu de ayuda que te explike las instrucciones bacic  ke se usan???   eske solo se assembler y  hace mucho tiempo ke no practiko c o basic
Pues claro que en Ayuda te explica todos, con la version DEMO puede programar micro hasta 4Kbi, por ejemplo el attiny2313, y hay muchos ejemplo en la web de bascom con el attiny2313.http://www.mcselec.com/
Saludos

Desconectado egofrn

  • PIC10
  • *
  • Mensajes: 3
Re: EJEMPLITOS DE BASCOM AVR... ATMEGA8..
« Respuesta #52 en: 15 de Noviembre de 2009, 20:57:48 »
Hola a todos.... estoy iniciandome en la programacion de microcontroladores atmega.
Actualmente me encuentro realizando un termometron digital... La programacion la realice en basic y uso el Bascom-AVR..
Hasta el momento realizo el sensamiento con el sensor LM35, los datos los convierto internamente en el atmega48 usando el ADC y visualizo los datos en displays de 7 segmentos.
Ahora, lo que yo quiero es saber como puedo enviar la informacion de la temperatura del micro al computador usando el puerto serial DB9.
ya tengo la parte del hardware, uso el max232 y el conector db9...
Lo que no se es como programar al micro (Que instruccion usar) para enviar la informacion...
Les agradezco toda su ayuda..
Saludos

Desconectado stk500

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4923
Re: EJEMPLITOS DE BASCOM AVR... ATMEGA8..
« Respuesta #53 en: 16 de Noviembre de 2009, 05:28:06 »
Hay varias forma de implementarlo, si pusiera tu codigo aqui talvez te pueda ayudar en lo que pueda, no olvide que puede implementar los dos lenguaje con el Bascom (Basic y Assembler) .

Desconectado egofrn

  • PIC10
  • *
  • Mensajes: 3
Re: EJEMPLITOS DE BASCOM AVR... ATMEGA8..
« Respuesta #54 en: 16 de Noviembre de 2009, 15:54:35 »
Hola esta es la programacion del atmega.... Solo necesito la instruccion para enviar los datos por el db9
tengo entendido que puedo usar el print pero no se como espicificar el dato a enviar
Espero me puedan ayudar

$regfile = "m48def.dat"                                    
$crystal = 8000000                                        
$baud = 19200                                              
$hwstack = 32                                              
$swstack = 10                                              
$framesize = 40                                          

Config Portb = Output                                      
Config Portd.2 = Output                                  
Config Portd.3 = Output                                    
Config Portd.4 = Output                                    
Config Portd.5 = Output                                    
Config Adc = Single , Prescaler = Auto , Reference = Avcc   'configuracion ADC 10bits

Dim Lectura As Word                                         'variable guarda la lectura del ADC
Dim Temperatura As Single                                   'conversion a milivoltios de la lectura (10mV/ºC)
Dim Temp_entero As Integer                                  'valor entero de la temperatura
Dim Temp_decenas As Word                                    'decenas de la temp a mostrar
Dim Temp_unidades As Word                                   'unidades de la temp a mostrar
Dim Temp_simbolo As Byte                                  
Dim Digito As Byte                                          
Dim Indice As Byte                                        


Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
Config Serialout = Buffered , Size = 254



Start Adc                                              

Do



   Lectura = Getadc(0)                                      'leer el ADC canal 0 pin 23 sensor de temperatura
   Temperatura = Lectura * 0.49                             'convertir a milivoltios
   Temp_entero = Temperatura                                'convertir a entero
   Temp_decenas = Temp_entero / 10                          'calcular las decenas
   Temp_unidades = Temp_entero Mod 10                       'calcular las unidades


   Temp_simbolo = &H46                                    

   For Indice = 1 To 64                                     'enviar los digitos a los display usando multiplexacion
      Portd.2 = 0                                        
      Portd.3 = 0
      Digito = Lookup(temp_decenas , Patrones)            
      Portb = Digito                                        
      Portd.4 = 1
      Waitus 600

      Digito = Lookup(temp_unidades , Patrones)          
      Portd.4 = 0
      Portd.2 = 0
      Portb = Digito
      Portd.3 = 1                                          
      Waitus 600

      Portd.3 = 0
      Portd.4 = 0
      Portb = Temp_simbolo                                
      Portd.2 = 1                                          
      Waitus 500
      Portd.2 = 1
   Next Indice





Loop                                                        

Patrones:                                                   'tabla con los patrones que forman los numeros del 1 al 9
Data &H40 , &H79 , &H24 , &H30 , &H19 , &H12 , &H02 , &H78 , &H00 , &H10
« Última modificación: 17 de Noviembre de 2009, 01:23:33 por egofrn »

Desconectado stk500

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4923
Re: EJEMPLITOS DE BASCOM AVR... ATMEGA8..
« Respuesta #55 en: 16 de Noviembre de 2009, 18:45:25 »
pues bien he estado buscando en mis archivo una forma facil y que lo comprenda, primero deberia Dimensionar las variables que va usar, aqui te dejo una pagina de ejemplo como se podria hacer  http://www.qsl.net/pa3ckr/bascom%20and%20avr/multitemp/index.html        ahi trae su correspondiente codigo.
cualquier cosas que no comprenda estaremos en contacto.

Desconectado egofrn

  • PIC10
  • *
  • Mensajes: 3
Re: EJEMPLITOS DE BASCOM AVR... ATMEGA8..
« Respuesta #56 en: 17 de Noviembre de 2009, 01:20:32 »
Hola, gracias por la informacion, pero lastimosamente no me sirve... En esa pagina solo habla de la funcion que realiza cada componente del circuito, mas no de programacion.
Ademas, si te fijas en la programacion que publique, ya tengo dimensionadas las variables (Temperatura)
Lo que quiero saber es como enviar la informacion al PC y que programa utilizar para ver los datos en forma grafica...
Segun la ayuda que posee el bascom, me dice que se envian los datos usando la instruccion "Print", pero no se como usarla especificamente para enviar los datos del adc (temperatura)
Saludos
« Última modificación: 17 de Noviembre de 2009, 01:23:59 por egofrn »

Desconectado stk500

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4923
Re: EJEMPLITOS DE BASCOM AVR... ATMEGA8..
« Respuesta #57 en: 17 de Noviembre de 2009, 04:01:55 »
hay no solamente habla de cada funcion sino el codigo como esta hecho, yo ahora mismo no estoy trabajando con serial, pero si usara la ayuda que pone en bascom y viendo que si tu realizaste ese programa tambien lo puede realizar con la ayuda, para ver los datos puede usar el Terminal de window y claro deberia hacer tu mismo el programa con Visual Basic, pero te aconsejo, que si instala la platina y el sensor a larga distancia va a tener problema, hay varios factores que debe tener en cuenta al enviar datos por la UART ,  claro si lo que quiere solo es leer la temperatura no te serviria programar nada en Visual basic, solo te serviria configurar tu la Uart de tu PC (Baudrate)
aqui te pongo otros link mas claro http://members.home.nl/bzijlstra/software/examples/AVRIO.htm
me gustaria ayudarte pero yo no tengo ningun sensor de temperatura para ayudarte, aunque pensandolo bien puede servir cualquier ejemplo de explicacion que trabaje con la Uart de envio de datos. en este mismo hilo escribi yo algo sobre envio de la Uart , mejor que te lo lea tambien.
Saludos

Desconectado cristian_elect

  • PIC18
  • ****
  • Mensajes: 453
Re: EJEMPLITOS DE BASCOM AVR... ATMEGA8..
« Respuesta #58 en: 18 de Noviembre de 2009, 14:29:19 »
Aqui tengo un ejemplo pequeño de LM35 salida por UART en un atmega8.

$regfile = "M8DEF.DAT"
$crystal = 8000000
$baud = 9600
$hwstack = 32
$swstack = 10
$framesize = 40

Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0

Dim Temp_adc As Word , Valor_temp As Single , Valor As String * 5
Config Adc = Single , Prescaler = Auto
Start Adc
do
Temp_adc = Getadc(1)
Valor_temp = Temp_adc * 0.49
Valor = Fusing(valor_temp , "###.##")
Print Valor
loop
end

En bascom siempre el print finalisa en "ENTER" 10 y 13 al final de la cadena.

Desconectado Jesulin

  • PIC10
  • *
  • Mensajes: 15
Re: EJEMPLITOS DE BASCOM AVR... ATMEGA8..
« Respuesta #59 en: 09 de Marzo de 2010, 14:29:47 »
Hola foreros!

Una pregunta, necesito hacer la conexion entre un ATMEGA2560 y un MMC card, pero no tengo idea de como se hace la programacion! Alguien ha visto algun ejemplo en BASCOM?

Muchas gracias!