Preguntas y comentarios Software BASCOM
- Hellmut1956
- Miembro Leal
- Mensajes: 1305
- Registrado: Sab Nov 29, 2008 2:06 pm
- Ubicación: Mammendorf, Alemania
Preguntas y comentarios Software BASCOM
Hola amigos
Favor poner aquí toda pregunta, comentario, sugerencia o problema que enfrenten. est hilo es para hablar sobre lo que aprece en el hilo de la software en este foro!
Favor poner aquí toda pregunta, comentario, sugerencia o problema que enfrenten. est hilo es para hablar sobre lo que aprece en el hilo de la software en este foro!
--------------------
Saludos Hellmut
Saludos Hellmut
Re: Preguntas y comentarios Software BASCOM
Sé que te daré más trabajo, pero si quiero aprender no conozco otra forma.
En principio te diré que el código es más o menos entendible (partiendo de la base que desconozco el basic).
Has obviado que desconocemos el bascom avr y por lo tanto no sabemos ni como configurarlo para poder empezar (no me refiero a los fuses que si lo explicaste bien) , más bien al programa en general.
Echo de menos un esquema eléctrico de los circuitos que propones (no estaría de más, así nos familiarizaremos con las conexiones del micro)
Esto es solo el comienzo.
Saludos y a seguir que quiero aprender a programas los atmel.
En principio te diré que el código es más o menos entendible (partiendo de la base que desconozco el basic).
Has obviado que desconocemos el bascom avr y por lo tanto no sabemos ni como configurarlo para poder empezar (no me refiero a los fuses que si lo explicaste bien) , más bien al programa en general.
Echo de menos un esquema eléctrico de los circuitos que propones (no estaría de más, así nos familiarizaremos con las conexiones del micro)
Esto es solo el comienzo.
Saludos y a seguir que quiero aprender a programas los atmel.
- Hellmut1956
- Miembro Leal
- Mensajes: 1305
- Registrado: Sab Nov 29, 2008 2:06 pm
- Ubicación: Mammendorf, Alemania
Re: Preguntas y comentarios Software BASCOM
Adelante, que no hay mejor forma de aprender que preguntando!
Déjame empezar por los esquemas! Los esquemas son los de la "Tarjeta experimental" de la cual todos los esquemas están disponibles. Es que eso es la función de la tarjeta experimental, brindar una plataforma común en la cual podamos ejecutar los programas y que contenga todo aquello que se requiera para experimetar con las posibilidades del controlador y del compilador!
A diferencia del horror para novatos de configurar la "cedena de instrumentos", en inglés toolchain" que se conoce de los compiladores para el lenguage "C" por ejemplo.
Aquí es sencillísimo. Arranca el programa, entre el programa copiandolo del hilo, presiona el botón de compilación, y listo. Conecta el adaptador al ordenador y a la tarjeta experimental, selecciona el botón en el programa para grabar y listó est`´a. el resto lo encuentras en el hilo.
Déjame empezar por los esquemas! Los esquemas son los de la "Tarjeta experimental" de la cual todos los esquemas están disponibles. Es que eso es la función de la tarjeta experimental, brindar una plataforma común en la cual podamos ejecutar los programas y que contenga todo aquello que se requiera para experimetar con las posibilidades del controlador y del compilador!
A diferencia del horror para novatos de configurar la "cedena de instrumentos", en inglés toolchain" que se conoce de los compiladores para el lenguage "C" por ejemplo.
Aquí es sencillísimo. Arranca el programa, entre el programa copiandolo del hilo, presiona el botón de compilación, y listo. Conecta el adaptador al ordenador y a la tarjeta experimental, selecciona el botón en el programa para grabar y listó est`´a. el resto lo encuentras en el hilo.
--------------------
Saludos Hellmut
Saludos Hellmut
Re: Preguntas y comentarios Software BASCOM
Querido profesor ( no pensar que estamos de mariconeo ……….
).
Enterado que tendré que poner el esquema de la placa experimental como fondo de pantalla.
En parte tienes razón en cuanto a sacar el hex del compilador doy prueba de ello con esta simulación.
En cuanto a sacarle todo el jugo al programa no tanto, pero seguiré estudiando



Enterado que tendré que poner el esquema de la placa experimental como fondo de pantalla.
En parte tienes razón en cuanto a sacar el hex del compilador doy prueba de ello con esta simulación.
En cuanto a sacarle todo el jugo al programa no tanto, pero seguiré estudiando
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
- Hellmut1956
- Miembro Leal
- Mensajes: 1305
- Registrado: Sab Nov 29, 2008 2:06 pm
- Ubicación: Mammendorf, Alemania
Re: Preguntas y comentarios Software BASCOM
Hola amigo
Aquí estoy para ayudar y para aprender yo mismo! Tomemos la acción de "sacarle el jugo" a todos los prógramas que he e hiré surtiendo en el hilo correspondiente!
Com se puede ver muy bien en tu esquema, un "1" en la salida del pin pone una tensión de 5V por sobre el LED, la resistencia debería ser de 110 Ohm limita la corriente a algo menos de 20mA, un valor alto pero dentro de los límites del LED y un valor tolerable para el controlador! Yo le pondría mínimo una resistencia de 1k, lo que reduce la luminosidad del LED por muy poco, pero reduce la corriente que debe ser suministrada por el controlador. Esto es importante por varias razones. La una es que no se pierde función en forma relevante, la luminosidad del LED, y segundo es que se reduce el estrés térmico del controlador y del circuito detras del pin en el controlador. Es buena práctica limitar el flujo de corriente por cualquier componente. Flujo de corriente es generar calor, y calor acelera el envejecimiento y el estrés de una componente.
Un cordial saludo
Hellmut
Aquí estoy para ayudar y para aprender yo mismo! Tomemos la acción de "sacarle el jugo" a todos los prógramas que he e hiré surtiendo en el hilo correspondiente!
Com se puede ver muy bien en tu esquema, un "1" en la salida del pin pone una tensión de 5V por sobre el LED, la resistencia debería ser de 110 Ohm limita la corriente a algo menos de 20mA, un valor alto pero dentro de los límites del LED y un valor tolerable para el controlador! Yo le pondría mínimo una resistencia de 1k, lo que reduce la luminosidad del LED por muy poco, pero reduce la corriente que debe ser suministrada por el controlador. Esto es importante por varias razones. La una es que no se pierde función en forma relevante, la luminosidad del LED, y segundo es que se reduce el estrés térmico del controlador y del circuito detras del pin en el controlador. Es buena práctica limitar el flujo de corriente por cualquier componente. Flujo de corriente es generar calor, y calor acelera el envejecimiento y el estrés de una componente.
Un cordial saludo
Hellmut
--------------------
Saludos Hellmut
Saludos Hellmut
Re: Preguntas y comentarios Software BASCOM
Hola de amigo, aquí de nuevo para molestar un poquito.
Empiezo.
Una curiosidad si ves la simulación de arriba, se puede observar que el pin reset tiene valor 1, como puede ser?....igual es problema del proteus.
Una sugerencia (ya sé que es trabajo extra para ti), podrías poner las sentencias que vamos utilizando en el otro hilo (junto con la sintaxis y un breve ejemplo).
Un comentario como profesor en bascom avr no te puedo evaluar ahora mismo, ya que es mi segundo día de clase, pero como persona creo que sí, ya que hasta el día de hoy y después he haber seguido todos tus hilos y comentarios que haces en torno a nuestro hobby , veo que siempre intentas ayudar sin esperar nada a cambio y eso solo lo hace las BUENAS PERSONAS (que conste que esto no lo digo para que me subas la nota…..jajajaj)
Balance de mi segundo día.
Creo que avanzo paso a paso (aunque hay poca información del bascom en castellano y esto me limitara).
Hoy he creado mi primer programa basándome en las pocas “sentencias que se” y por supuesto en el primer ejemplo.
Lo título: SEMAFORO .como su propio nombre indica lo que hace es apagar y encender tres led en una secuencia semafórica.
Quiero que veas el código y me digas como lo puedo mejorar, ya que todo código es susceptible de ser mejorado.
Funciona ya que lo simule en proteus dejo video para quien lo quiera ver.
" onclick="window.open(this.href);return false;
PD desde aquí pido a todos los que tenga información de BASCON AVR en castellano que por favor se ponga en contacto con este hilo.
Saludos a todos y por supuesto al profe.
Empiezo.
Una curiosidad si ves la simulación de arriba, se puede observar que el pin reset tiene valor 1, como puede ser?....igual es problema del proteus.
Una sugerencia (ya sé que es trabajo extra para ti), podrías poner las sentencias que vamos utilizando en el otro hilo (junto con la sintaxis y un breve ejemplo).
Un comentario como profesor en bascom avr no te puedo evaluar ahora mismo, ya que es mi segundo día de clase, pero como persona creo que sí, ya que hasta el día de hoy y después he haber seguido todos tus hilos y comentarios que haces en torno a nuestro hobby , veo que siempre intentas ayudar sin esperar nada a cambio y eso solo lo hace las BUENAS PERSONAS (que conste que esto no lo digo para que me subas la nota…..jajajaj)
Balance de mi segundo día.
Creo que avanzo paso a paso (aunque hay poca información del bascom en castellano y esto me limitara).
Hoy he creado mi primer programa basándome en las pocas “sentencias que se” y por supuesto en el primer ejemplo.
Lo título: SEMAFORO .como su propio nombre indica lo que hace es apagar y encender tres led en una secuencia semafórica.
Quiero que veas el código y me digas como lo puedo mejorar, ya que todo código es susceptible de ser mejorado.
Funciona ya que lo simule en proteus dejo video para quien lo quiera ver.
" onclick="window.open(this.href);return false;
PD desde aquí pido a todos los que tenga información de BASCON AVR en castellano que por favor se ponga en contacto con este hilo.
Saludos a todos y por supuesto al profe.
Código: Seleccionar todo
'Proyecto: Semaforo por un novato
'
'Controlador: ATMega 8-16
'Bascom-Versión: 1.11.9.0
'
'Programa 1: semaforo
'
'Hardware:
'
'LED Rojo conectado a Port D.0
' LED Amarillo conectado a Port D.1
' LED Verde conectado a Port D.2
'
'
'
'15-04-2010 Carptroya
'
'******************************************************
'======================================================
'Configuración del sistema
'======================================================
'Definiciones para el Mega 8
$regfile "m8def.dat"
'Definición del la frecuencia (1Mhz)
$crystal = 1000000
'======================================================
'Configuraciones
'======================================================
Config Portd.0 = Output
Config Portd.1 = Output
Config Portd.2 = Output
'======================================================
'Declaraciones
'======================================================
Rojo Alias Portd.0
Amarillo Alias Portd.1
Verde Alias Portd.2
'======================================================
'Inicialización
'======================================================
Rojo = 1
Amarillo = 0
Verde = 0
'======================================================
'Bucle principal del Programa
'======================================================
Do
Verde = 0
Rojo = 1
Wait 5
Rojo = 0
Amarillo = 1
Wait 1
Amarillo = 0
Verde = 1
Wait 3
Loop
'Fin del programa
End
- Hellmut1956
- Miembro Leal
- Mensajes: 1305
- Registrado: Sab Nov 29, 2008 2:06 pm
- Ubicación: Mammendorf, Alemania
Re: Preguntas y comentarios Software BASCOM
Empecemos con lo bueno. El programa lo verifiqué con el compilador BASCOM y no tiene errores sintácticos.
Segundo, es bueno que uses el esquema que proporcioné, pues esto facilita la lectura y ayuda a no olvidarse de nada.
Se pueden definir todos los pines de un portal como salidas, lo que acorta el código escrito.
Config Portd = Output
Puesto en tu programa funciona.
Lo siguiente, que es puramente formal. Asignas valores a las variables en la inicialización y en el programa nunca vuelves a utilizar ese combinación. El resultado es, que prácticamente la configuración de la inicialización nunca será visible. Es buena práctica inicializar las variables, pero yo las pondría en tu caso a todas en "0" y sumaría la combinación de la inicialización a la lista debajo.
Usando la sentencia Wait significa que el controlador debe esperar sin acción alguna durante el número de milisegundos indicado por el dígito. Tener un LED encendido por 1ms o 5 ms es un tiempo tan corto que prácticamente no es perceptible. La impresión visual será que los 3 LEDs están encendidos permanentemente.
Favor, pública la lista de sentencias que deseas tener traducida y con mucho gusto así lo haré. Has leído los programas que he publicado en el hilo de software? Allí estoy mostrando paso a paso como usar diferentes funciones del controlador y las instrucciones de BASCOM correspondientes.
Tomando el formato de las sentencias traducidas me imagino que se podrá deducir por analogía la información de otras sentencias usando el manual de referencia de BASCOM en inglés.
Segundo, es bueno que uses el esquema que proporcioné, pues esto facilita la lectura y ayuda a no olvidarse de nada.
Se pueden definir todos los pines de un portal como salidas, lo que acorta el código escrito.
Config Portd = Output
Puesto en tu programa funciona.
Lo siguiente, que es puramente formal. Asignas valores a las variables en la inicialización y en el programa nunca vuelves a utilizar ese combinación. El resultado es, que prácticamente la configuración de la inicialización nunca será visible. Es buena práctica inicializar las variables, pero yo las pondría en tu caso a todas en "0" y sumaría la combinación de la inicialización a la lista debajo.
Usando la sentencia Wait significa que el controlador debe esperar sin acción alguna durante el número de milisegundos indicado por el dígito. Tener un LED encendido por 1ms o 5 ms es un tiempo tan corto que prácticamente no es perceptible. La impresión visual será que los 3 LEDs están encendidos permanentemente.
Favor, pública la lista de sentencias que deseas tener traducida y con mucho gusto así lo haré. Has leído los programas que he publicado en el hilo de software? Allí estoy mostrando paso a paso como usar diferentes funciones del controlador y las instrucciones de BASCOM correspondientes.
Tomando el formato de las sentencias traducidas me imagino que se podrá deducir por analogía la información de otras sentencias usando el manual de referencia de BASCOM en inglés.
--------------------
Saludos Hellmut
Saludos Hellmut
Re: Preguntas y comentarios Software BASCOM
Respondo:
WAIT según manual = espera en segundos.
WAITMS “ =espera en milisegundos
WAITUS “ =espera en microsegundos.
Te lo digo para todo aquel que lea no se confunda.
El código que puse anteriormente está basado en el primer post de tu hilo “Tarjeta Experimental – Software”.
En cuando a traducidas me refería a las que pones en los distintos código, que aunque están bien explicadas no estaría de mas para tener un manual de consulta.
Ahora estoy estudiando el segundo ejemplo que es leer el interuptor , ya te comunicare mis dudas al respecto.
saludos
WAIT según manual = espera en segundos.
WAITMS “ =espera en milisegundos
WAITUS “ =espera en microsegundos.
Te lo digo para todo aquel que lea no se confunda.
El código que puse anteriormente está basado en el primer post de tu hilo “Tarjeta Experimental – Software”.
En cuando a traducidas me refería a las que pones en los distintos código, que aunque están bien explicadas no estaría de mas para tener un manual de consulta.
Ahora estoy estudiando el segundo ejemplo que es leer el interuptor , ya te comunicare mis dudas al respecto.
saludos
Re: Preguntas y comentarios Software BASCOM
Esta sentencia la utilizaste en los dos primeros ejemplos.
Entiendo corrígeme si estoy equivocado.
TOGGLE invierte el valor de un bit o variable numérica.
Ejemplo A=0 …………..A=1
Ejemplo variable motor =00000001 (binario)…………..motor=11111110
Sé que esta no es la sintaxis en bascom que habrá que definir con la sentencia DIM por eso ya te pido que me diga como poder hacerla y que me ponga un ejemplo para comprender mejor.
Continuara….
Entiendo corrígeme si estoy equivocado.
TOGGLE invierte el valor de un bit o variable numérica.
Ejemplo A=0 …………..A=1
Ejemplo variable motor =00000001 (binario)…………..motor=11111110
Sé que esta no es la sintaxis en bascom que habrá que definir con la sentencia DIM por eso ya te pido que me diga como poder hacerla y que me ponga un ejemplo para comprender mejor.
Continuara….
Re: Preguntas y comentarios Software BASCOM
cuando me refiero a la variable numerica , queria decir un registro.
Re: Preguntas y comentarios Software BASCOM
IF THEN…………..ELSE
END IF
Pregunto:
Es una sentencia condicional si se cumple la condición de IF continua el programa, y si no es así salta a la línea ELSE ¿? Y para termina con la sentencia se utiliza END IF………..continuando con el programa peincipal?
saludos
END IF
Pregunto:
Es una sentencia condicional si se cumple la condición de IF continua el programa, y si no es así salta a la línea ELSE ¿? Y para termina con la sentencia se utiliza END IF………..continuando con el programa peincipal?
saludos
- Hellmut1956
- Miembro Leal
- Mensajes: 1305
- Registrado: Sab Nov 29, 2008 2:06 pm
- Ubicación: Mammendorf, Alemania
Re: Preguntas y comentarios Software BASCOM
Así es! Tengo un trabajo de traducción que me tendrá ocupado este fin de semana, pero después continuo con la labor de apoyo.
--------------------
Saludos Hellmut
Saludos Hellmut
Re: Preguntas y comentarios Software BASCOM
Te planteo un ejercicio al respecto.
Será el que desarrolle con los servo pero ahora con este micro atmega8.
Serán dos pulsadores. Si ninguno esta pulsado pondrá el servo en el centro si pulsamos uno hacia la izquierda y si pulsamos otro a la derecha.
Para esto con la sentencia IF THE creo que es suficiente (igual hay otra mas efectivas).
No sé si lo que digo es una burrada pero preguntando se aprende.
Paso a continuación a ponerte el programa principal , se supone que tenemos definido todo lo demás.
La idea es esta :
D0
IF pulsador1=1 THE
servo a la derecha
ELSE
END IF
IF pulsador2=1 THE
Servo izquierda
ELSE
END IF
Servo centro
LOOP
END.
Espero tus respuestas saludos.
Será el que desarrolle con los servo pero ahora con este micro atmega8.
Serán dos pulsadores. Si ninguno esta pulsado pondrá el servo en el centro si pulsamos uno hacia la izquierda y si pulsamos otro a la derecha.
Para esto con la sentencia IF THE creo que es suficiente (igual hay otra mas efectivas).
No sé si lo que digo es una burrada pero preguntando se aprende.
Paso a continuación a ponerte el programa principal , se supone que tenemos definido todo lo demás.
La idea es esta :
D0
IF pulsador1=1 THE
servo a la derecha
ELSE
END IF
IF pulsador2=1 THE
Servo izquierda
ELSE
END IF
Servo centro
LOOP
END.
Espero tus respuestas saludos.
- Hellmut1956
- Miembro Leal
- Mensajes: 1305
- Registrado: Sab Nov 29, 2008 2:06 pm
- Ubicación: Mammendorf, Alemania
Re: Preguntas y comentarios Software BASCOM
Entre el "ELSE" y "ENDIF" pones el servo centro.
Es buena práctica de programación darle a un programa una acción definid para el caso "otros", que es lo que hace "ELSE".
Como sentencia para poner el servo en la posición deseada usas la sentencia "PULSEOUT".
Lo que falta es la repetición de esta acción cada 20ms, lo que se haria fuera de la sentencia "IF ... Then ... ELSE ... ENDIF" . Para esto podrías usar un contador!
Es buena práctica de programación darle a un programa una acción definid para el caso "otros", que es lo que hace "ELSE".
Como sentencia para poner el servo en la posición deseada usas la sentencia "PULSEOUT".
Lo que falta es la repetición de esta acción cada 20ms, lo que se haria fuera de la sentencia "IF ... Then ... ELSE ... ENDIF" . Para esto podrías usar un contador!
--------------------
Saludos Hellmut
Saludos Hellmut
Re: Preguntas y comentarios Software BASCOM
Amigo hellmut este código seguro que no es muy ortodoxo, pero me funciono.
Cuando tengas tiempo me gustaría que lo simulases.
Por otro lado me gustaría que tu hicieses el mismo programa con las sentencias correctas.
Espero tus criticas, saludos
Cuando tengas tiempo me gustaría que lo simulases.
Código: Seleccionar todo
'******************************************************
'Projekt: Atmel-Tarjeta Experimental
'
'Prozessor: ATMega 8-16
'Bascom-Version: 1.11.9.8
'
'Programm 2: comprobador servo
'
'Hardware:
'
' Interuptor derecho Pin portd.0
'
' interuptor izquierdo Pin portd.1
'
' interuptor centro Pin portd.2
'
' servo Pin portd.7
'
'
' 17-04-2010 Carptroya
'
'******************************************************
'======================================================
'Konfiguración de Sistema
'======================================================
'Definición del Mega 8
$regfile "m8def.dat"
'Indicación de la frecuencia de operación del controlador (1Mhz)
$crystal = 1000000
'======================================================
'Configuraciones
'======================================================
Config Portd.0 = Input
Config Portd.1 = Input
Config Portd.2 = Input
Config Portd.7 = Output
'======================================================
'Declaraciones
'======================================================
Derecho Alias Pind.0
Izquierdo Alias Pind.1
Centro Alias Pind.2
Servo Alias Portd.7
'======================================================
'Inicialisaciones
'======================================================
Derecho = 1
Izquierdo = 1
Centro = 1
Servo = 0
'======================================================
'Programa principal
'======================================================
Do
If Derecho = 0 Then
Servo = 1
Waitms 2
Servo = 0
Waitms 18
Else
End If
If Izquierdo = 0 Then
Servo = 1
Waitms 1
Servo = 0
Waitms 19
Else
End If
If Centro = 0 Then
Servo = 1
Waitus 1500
Servo = 0
Waitus 18500
Else
End If
Loop
'Fin del programa
End
Espero tus criticas, saludos