Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Meta

#951
GNU/Linux / Re: Mensajes de bienvenida sobre ssh
22 Octubre 2013, 23:17 PM
Hola:

Me ha servido y muchas gracias el del openSUSE 12.3, en cuanto al Ubuntu 13.04 y el 13.10 no encuentro el etc/motd.

Saludo.
#952
GNU/Linux / Mensajes de bienvenida sobre ssh
22 Octubre 2013, 18:38 PM
Hola:

Estoy con la máquina virtual virtual Box donde tengo instalado Ubuntu 13.04, 13.10 y el openSUSE 12.3.

Desde openSUSE al entrar en la máquina desde SSH me parece este mensaje:

Welcome to Ubuntu 13.04 (GNU/Linux 3.8.0-19-generic x86_64)

* Documentation: https://help.ubuntu.com

New release '13.10' available.
etc...................fecha y hora cuando entré la última vez.


Cuando entre desde Ubuntu a openSUSE 12.3 solo aparece el mensaje la fecha y hora de la últama vez que me conecté y esto: Have a lot of fun...

Quiero saber si desde openSUSE 12.3 se le puede cambiar o poner el mensaje de bienvenida cuando acceda por ssh desde cualquier máquina.

¿Es posible hacerlo?

Un cordial saludo.
#953
Electrónica / Portatil y su contador de batería
22 Octubre 2013, 03:46 AM
Hola:

Un portatil pequeño HP Mini la batería hay que cambiarla cada 1 a 1.5 años porque HP lo diseñó así. Para que te compres otra y ellos tener negocio. Así que comprar HP portátiles, PC de sobre mesa y impresoras, no valen la pena.


Ver imagen

Lo he desarmado rompiéndolo ya que está muy pegado. La batería pone en su plástico o carcasa que es de 10.8V / 27Wh. Comprobado con el tester tiene 4.9V. Veo que tiene una placa electrónica lo que controla la batería desde el portatil.

Sospecho que esconde algo más, ya que cuando cumpla unas condiciones como 300 cargas de la batería y un año y poco más, esta deja de dar orden a cargar la batería pero si la detecta.

Pensé en buscar una EEPROM facilonga como las impresoras, con la esperanza de encontrar una muy conocido como 93C66 o algo similar para resetearlo pero veo que no. Lo que tiene como laca en la placa hasta en los circuitos integrados y demás componente que me cuesta leerlo.

Si es posible, quiero más información de sus conectores, cuales son de carga y cuales con de descarga, pin a pin para hacer todo tipo de pruebas.

Cualquier información es útil.

Un cordial saludo.

PD: Esto de la absolescencia programada se están pasando.
#954
Hola:

Este es un ejemplo en asm y otro en C para el PIC16F886.

Código (asm) [Seleccionar]
Los módulos CCPx
;PWM mejorado. Se aplica sólo al generador PWM del módulo CCP1.
;
;El modo puente en H (Full-Bridge). Genera cuatro señales de salida para controlar las cuatro
;entradas típicas de un puente en H. En el modo directo la salida RC2/P1A se mantiene activa
;mientras que por RB4/P1D se obtiene la señal PWM. RB2/P1B y RB1/P1C se mantienen inactivas.
;En el modo inverso la salida RB1/P1C se mantiene activa mientras que por RB2/P1B se obtiene
;la señal PWM. RC2/P1A y RB4/P1D se mantienen inactivas.
;
;En el ejemplo se genera una señal PWM a partir de una tensión analógica por RA0/AN0. Mediante
;la entrada digital RA2 se controla el modo: a "0" modo directo, a "1" modo inverso del puente H.
;
;Con un osciloscopio de doble trazo podemos analizar las señales de salida: en RC2/P1A y RB4/P1D
;para el modo directo y en RB1/P1C y RB2/P1B para el modo inverso. También podríamos emplear un
;analizador lógico para visualizar simultáneamente las 4 señales. Nosotros hemos empleado el
;modelo PoScope Basic 2 en el modo analizador de funcionamiento.

List p=16F886 ;Tipo de procesador
include "P16F886.INC" ;Definiciones de registros internos

;Ajusta los valores de las palabras de configuración durante el ensamblado.Los bits no empleados
;adquieren el valor por defecto.Estos y otros valores se pueden modificar según las necesidades

__config _CONFIG1, _LVP_OFF&_PWRTE_ON&_WDT_OFF&_EC_OSC&_FCMEN_OFF&_BOR_OFF ;Palabra 1 de configuración
__config _CONFIG2, _WRT_OFF&_BOR40V ;Palabra 2 de configuración

Periodo equ .200 ;Valor para el periodo de 3200uS (200*Preescaler de 16)

Duty_H equ 0x20
Duty_L equ 0x21 ;Variable para la anchura de pulso

org 0x00 ;Vector de RESET
goto Inicio
org 0x05

;Programa principal

Inicio     bsf STATUS,RP0
bsf STATUS,RP1 ;Banco 3
movlw b'00000001'
movwf ANSEL ;RA0/AN0/C12IN0- entrada analógica, resto digitales
clrf ANSELH ;Puerta B digital
bcf STATUS,RP1 ;Banco 1

;RC2/P1A, RB2/P1B, RB1/P1C y RB4/P1D salidas PWM para el puente en H ("Full-Bridge")
movlw b'11101001'
movwf TRISB
movlw b'11111011'
movwf TRISC

;Configuración del ADC
clrf ADCON1 ;Alineación izda. Vref= VDD para el convertidor
bcf STATUS,RP0 ;Banco 0

;El periodo se determina según el valor de la constante "Periodo". Este se carga sobre el
;registro PR2.
movlw Periodo-1
bsf STATUS,RP0 ;Selecciona página 1
movwf PR2
bcf STATUS,RP0 ;Selecciona página 0

;Trabajando con un preescaler 1:16 y a una frecuancia de 4MHz, el TMR2 evoluciona cada 16 uS.
movlw b'00000111'
movwf T2CON ;TMR2 en On

;Se activa el ADC y se selecciona el canal RA0/AN0. Frecuencia de trabajo Fosc/32
Loop movlw b'10000001'
movwf ADCON0 ;ADC en On, seleciona canal AN0
bcf PIR1,ADIF ;Restaura el flag del conversor AD
bsf ADCON0,GO ;Inicia la conversión

;Esperar el final de la conversión y leer el resultado
ADC_Wait_0 btfss PIR1,ADIF ;Fin de conversión ??
goto ADC_Wait_0 ;Todavía no
movf ADRESH,W
movwf Duty_H ;Registra valor actual para el periodo
bsf STATUS,RP0 ;Selecciona página 1
rrf ADRESL,F
rrf ADRESL,W
bcf STATUS,RP0 ;Selecciona página 0
andlw b'00110000'
movwf Duty_L ;Salva parte baja de la conversión

;El módulo CCP1 se configura en modo PWM en puente en H (Full-Bridge) con salidas por RC2/P1A,
;RB2/P1B, RB1/P1C y RB4/P1D. Los bits LSB se obtienen de la variable Duty_L

movlw b'01001100'
iorwf Duty_L,F
movwf CCP1CON ;Modo PWM directo para el módulo CCP1

;Si RA2=1 se selecciona el modo inverso
btfsc PORTA,2
bsf CCP1CON,P1M1

;La anchura del pulso o "Duty" se determina según el valor con que se cargue el registro
;CCPR1L concatenado con los bits 4 y 5 de CCP1CON. Dichos valores se obtiene de las varia-
;bles Duty_H y Duty_L respectivamente.

movf Duty_H,W
movwf CCPR1L

goto Loop

end ;Fin del programa fuente



En C de CCS:
/*
Los módulos CCPx
PWM mejorado. Se aplica sólo al generador PWM del módulo CCP1.

El modo puente en H (Full-Bridge). Genera cuatro señales de salida para controlar las cuatro
entradas típicas de un puente en H. En el modo directo la salida RC2/P1A se mantiene activa
mientrás que por RB4/P1D se obtiene la señal PWM. RB2/P1B y RB1/P1C se mantienen inactivas.
En el modo inverso la salida RB1/P1C se mantiene activa mientrás que por RB2/P1B se obtiene
la señal PWM. RC2/P1A y RB4/P1D se mantienen inactivas.

En el ejemplo se genera una señal PWM a partir de una tensión analógica por RA0/AN0. Mediante
la entrada digital RA2 se controla el modo: a "0" modo directo, a "1" modo inverso del puente H.

Con un osciloscopio de doble trazo podemos analizar las señales de salida: en RC2/P1A y RB4/P1D
para el modo directo y en RB1/P1C y RB2/P1B para el modo inverso. También podríamos emplear un
analizador lógico para visualizar simultáneamente las 4 señales. Nosotros hemos empleado el
modelo PoScope Basic 2 en el modo analizador de funcionamiento. */

#include <16f886.h>

/* Ajusta los valores de las palabras de configuración durante el ensamblado.Los bits no empleados
adquieren el valor por defecto.Estos y otros valores se pueden modificar según las necesidades */

#fuses NOLVP,PUT,NOWDT,EC_IO,NOFCMEN,NOBROWNOUT //Palabra 1 de configuración
#fuses NOWRT,BORV40 //Palabra 2 de configuración

/* Con estas directivas las funciones "input" y "output_bit" no reprograman
el pin de la puerta cada vez que son utilizadas. Si no se indica el
modo fast_io se asume por defecto standard_io el cual reprograma el pin
siempre antes de ser utilizadas estas funciones. */

#use fast_io (B)
#use fast_io (C)

#define CCP_DELAY 100

int periodo=200; //Valor para el periodo de 3200uS (200*Preescaler de 16)

main()

//RC2/P1A, RB2/P1B, RB1/P1C y RB4/P1D salidas PWM para el puente en H ("Full-Bridge")
set_tris_b(0b11101001);
set_tris_c(0b11111011);

//Configura el ADC
setup_adc_ports(sAN0); //RA0 entrada analógica
setup_adc(adc_clock_div_32); //Ajusta frecuencia de muestreo del ADC

//El TMR2 trabaja con un preescaler 1:16 por lo que con una frecuencia de 4MHz evoluciona
//cada 16uS ((4*Tosc)*16)

setup_timer_2(T2_DIV_BY_16,periodo-1,1); //Carga el periodo y TMR2 en ON

while(1)
{
/* El módulo CCP1 se configura en modo PWM en puente en H (Full-Bridge) con salidas por RC2/P1A,
RB2/P1B, RB1/P1C y RB4/P1D. El modo directo o inverso se selecciona en función del estado de RA2 */

if(input(PIN_A2)==0)
setup_ccp1(CCP_PWM_FULL_BRIDGE|CCP_PWM_H_H); //RA1=0, Modo directo
else
setup_ccp1(CCP_PWM_FULL_BRIDGE_REV|CCP_PWM_H_H);//RA1=1, Modo inverso

//Se activa el ADC y se selecciona el canal RA0/AN0.

set_adc_channel(0); //Selección del canal 0 (RA0)
CCP_1_LOW=read_adc(); //Inicia la conversión y carga la anchura del pulso
}
}


Espero que te de algo de ideas.

Un saludo.
#955
Hola:



Se me atasca el PIC tanto en el simulador Proteus y físicamente, no graba en la su EEPROM interna del PIC16F88.

Lo que hace el PIC del programa principal es, con un pulsador en RA0 enciende y apaga un LEd en la salida RB0.

Hasta ahí todo bien. Solo que no es capaz de grabar nada en la EEPROM, cuando está encendido el Led o apagado, la EEPROM la función que hace es esa, mantener lo últimos valores del Led.

Siempre se me atasca por aquí.
;Guarda en la EEPROM el valor de la salida.
Escribe_Dato_EERPOM
    BANKSEL EEADR
    movlw   0x00                    ; Dirección.
    movwf   EEADR                   ; Carga registro EEADR con la dirección a escribir.
    movf   Dato,W
    movwf   EEDATA                  ; Carga el registro EEDATA con el dato a escribir.
    BANKSEL EECON1
    bcf     EECON1,EEPGD            ; Selecciona acceso a memoria EEPROM de datos.
    bsf     EECON1,WREN             ; Permiso de escritura.
    movlw   0x55
    movwf   EECON2
    movlw   0xAA
    movwf   EECON2                  ; Secuencia de escritura según Mirochip.
    bsf     EECON1,WR               ; Inicio del ciclo de escritura.
[COLOR="red"]Espera
    btfsc   EECON1,WR
    goto    Espera                  ; Esperar que finalice (WR=0).
[/COLOR]
    bcf     EECON1,WREN             ; Retira el permiso de escritura.
   return



; Cada vez que presiona el pulsador conectado a la línea RA0 conmutará el estado de
; un LED conectado a la línea RB0.
;
; ZONA DE DATOS **********************************************************************

    LIST        P=16F88
    INCLUDE     <P16F88.INC>
    __CONFIG    _CONFIG1, _CP_OFF & _CCP1_RB0 & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _MCLR_ON & _PWRTE_ON & _WDT_OFF & _FOSC_EC
    __CONFIG    _CONFIG2, _IESO_OFF & _FCMEN_OFF
ERRORLEVEL -302

    CBLOCK 0x20
RAM_ret
RAM_ret_1
    ENDC

    CBLOCK 0x110
Dato
    ENDC

#DEFINE Pulsador   PORTA,0        ; Pulsador conectado a RA0.
#DEFINE Led        PORTB,0        ; Línea donde se conecta el diodo LED.


; ZONA DE CÓDIGOS ********************************************************************

    ORG     0
Inicio
clrw
    clrf    PORTB               ; Borra los latch de salida.
    BANKSEL ANSEL
    clrf    ANSEL               ; Puerto A digital.
    BANKSEL TRISA
movlw b'11111111'
    bsf     Pulsador           ; Pulsador activado como entrada.
clrf TRISB
    bcf     Led                ; Activar como salida Led.
call Lee_Dato_EERPOM_2
    BANKSEL PORTA               ; Vuelve al banco 0.
Principal
    btfsc   Pulsador            ; ¿Pulsador presionado?, ¿(Pulsador)=0?
    goto    Fin                    ; No. Vuelve a leerlo.
;    call    Retardo_20ms        ; Espera que se estabilicen los niveles de tensión.
    btfsc   Pulsador            ; Comprueba si es un rebote.
    goto    Fin                    ; Era un rebote y sale fuera.
    btfsc   Led                ; Testea el último estado del LED.
    goto    EstabaEncendido
EstabaApagado
    bsf     Led                ; Estaba apagado y lo enciende.
;movlw b'00000001'
BANKSEL Dato
movf Led
movwf Dato
call Escribe_Dato_EERPOM_2
BANKSEL PORTA ; Banco 0.
    goto    EsperaDejePulsar
EstabaEncendido
    bcf     Led                ; Estaba encendido y lo apaga.
;movlw b'00000000'
movf Led
movwf Dato
call Escribe_Dato_EERPOM_2
BANKSEL PORTA ; Banco 0.
EsperaDejePulsar
    btfss   Pulsador            ; ¿Dejó de pulsar?. ¿(Pulsador)=1?
    goto    EsperaDejePulsar    ; No. Espera que deje de pulsar.
Fin
    goto    Principal

;Subrutina EEPROM ******************************************************************
Lee_Dato_EEPROM
    BANKSEL EEADR
    movlw   0x00                    ; Dirección.
    movwf   EEADR                   ; Carga el registro EEADR con la dirección que se desea leer.
    BANKSEL EECON1
    bcf     EECON1,EEPGD            ; Selecciona el acceso a memoria EEPROM.
bsf    EECON1,RD               ; Inicia el ciclo de lectura.
    BANKSEL EEDATA
    movf    EEDATA,W                ; Carga en W el dato recuén leído.
    return

;Guarda en la EEPROM el valor de la salida.
Escribe_Dato_EERPOM
    BANKSEL EEADR
    movlw   0x00                    ; Dirección.
    movwf   EEADR                   ; Carga registro EEADR con la dirección a escribir.
    movf Dato,W
    movwf   EEDATA                  ; Carga el registro EEDATA con el dato a escribir.
    BANKSEL EECON1
    bcf     EECON1,EEPGD            ; Selecciona acceso a memoria EEPROM de datos.
    bsf     EECON1,WREN             ; Permiso de escritura.
    movlw   0x55
    movwf   EECON2
    movlw   0xAA
    movwf   EECON2                  ; Secuencia de escritura según Mirochip.
    bsf     EECON1,WR               ; Inicio del ciclo de escritura.
Espera
    btfsc   EECON1,WR
    goto    Espera                  ; Esperar que finalice (WR=0).
    bcf     EECON1,WREN             ; Retira el permiso de escritura.
return

     END


¿Alguna idea?

Saludo.
#956
Cita de: Firos en 26 Marzo 2013, 21:32 PM

Cuando comprobamos si un interruptor está a "1" o a "0" hay que eliminar rebotes.


Ejemplo de antirebores de un pulsador. Este antirebores es por software y funciona de maravilla, es para ahorrar más electrónica.

Código (asm) [Seleccionar]
; Cada vez que presiona el pulsador conectado a la línea RA4 conmutará el estado de
; un LED conectado a la línea RB1.
;
; ZONA DE DATOS **********************************************************************

LIST P=16F84A
INCLUDE <P16F84A.INC>
__CONFIG _CP_OFF &  _WDT_OFF & _PWRTE_ON & _XT_OSC

CBLOCK 0x0C
ENDC

#DEFINE Pulsador PORTA,4 ; Pulsador conectado a RA4.
#DEFINE LED PORTB,1 ; Línea donde se conecta el diodo LED.

; ZONA DE CÓDIGOS ********************************************************************

ORG 0 ; El programa comienza en la dirección 0.
Inicio
bsf STATUS,RP0 ; Acceso al Banco 1.
bsf Pulsador ; La línea RA4 se configura como entrada.
bcf LED ; Se configura como salida.
bcf STATUS,RP0 ; Acceso al Banco 0.
bcf LED ; En principio diodo LED apagado.
Principal
btfsc Pulsador ; ¿Pulsador presionado?, ¿(Pulsador)=0?
goto Fin ; No. Vuelve a leerlo.
call Retardo_20ms ; Espera que se estabilicen los niveles de tensión.
btfsc Pulsador ; Comprueba si es un rebote.
goto Fin ; Era un rebote y sale fuera.
btfsc LED ; Testea el último estado del LED.
goto EstabaEncendido
EstabaApagado
bsf LED ; Estaba apagado y lo enciende.
goto EsperaDejePulsar
EstabaEncendido
bcf LED ; Estaba encendido y lo apaga.
EsperaDejePulsar
btfss Pulsador ; ¿Dejó de pulsar?. ¿(Pulsador)=1?
goto EsperaDejePulsar ; No. Espera que deje de pulsar.
Fin
goto Principal

INCLUDE <RETARDOS.INC>
END


Saludo.
#958
Hola:

Si a vale 5 y b vale 7. Lo almacena en c, el resultado.

a x b = c

Sumas 5 veces 7. Sumas a veces b. Luego lo almacena en c como resultado.

5 + 5 + 5 + 5 + 5 + 5 + 5 = 35


a + a + a + a + a + a + a = c

c = 35

¿Se entiende?

Saludo.
#959
Electrónica / Re: ¿Que arduino comprariais?
19 Abril 2013, 00:11 AM
Hola:

Para empezar se recomienda PIC de www.microchip.com donde hay más documentación y ejemplos de todo tipo. Si optas por Arduino, el más usado parace ser este.


http://www.msebilbao.com/tienda/product_info.php?products_id=691

Hasta hay libros en español sobre Arduino.
http://www.msebilbao.com/tienda/product_info.php?products_id=721

El kit completo con libro ty todo, por ahora el libro en Inglés, si tiene mucha demanda, lo sacarán al español.
http://www.msebilbao.com/tienda/images/arduino-starter-kit.jpg

Repito que con PIC para empezar está mejor, ya dirá el autor.

Saludo.
#960
Ahora no estoy metido en ello.