|
371
|
Informática / Electrónica / Manejar EEPROM interna
|
en: 7 Marzo 2013, 15:51 pm
|
Hola: Uso el PIC12F629 puedo leer un valor en la EEPROM interna pero no soy capaz de almacenarlo en la misma dirección. Este es el código. ;No olvidar que si GP2 detecta un un 0 en la entreda menor de 5 segundos, ;el PIC no actua, vuelve a lo suyo como si no pasara nada. ; ; Cuando detecte ;GP2|GP0 GP1 GP4 GP5 ;---+---------------- ;1) | 0 1 0 0 ;2) | 1 0 1 0 ;3) | 0 1 1 0 ;4) | 1 0 0 1 ; ;ZONA DE DATOS*****************************************************************
LIST P=12F629 ; Procesador usado. INCLUDE <P12F629.INC> ; Fichero que definen las etiquetas.
__CONFIG _CP_OFF & _CPD_OFF & _BODEN_OFF & _MCLRE_OFF & _WDT_OFF & _PWRTE_OFF & _FOSC_INTRCIO ERRORLEVEL -302
#DEFINE Pulsador GPIO,2 ; Pulsador. #DEFINE Leds GPIO ; Leds está conectado al GPIO.
VARIABLES UDATA_SHR ContadorEstado RES 1 RAM_ret RES 1 RAM_ret_1 RES 1 Contador RES 1
;ContadorEstado equ 20h ;RAM_ret equ 21h ;RAM_ret_1 equ 22h ;Contador equ 23h
; ORG 0x2100 ; Corresponde a la dirección 0 de la zona EEPROM de datos. ; DE 0x00 ; El contador en principio a cero.
;ZONA DE CÓDIGOS*************************************************************** ORG 0 ; El programa comienza en la dirección 0. goto Inicio
Inicio bsf STATUS,RP0 ; Selecciona banco 1. call 0x3FF ; Lo el valor de la calibración que sera almacenada en W. movwf OSCCAL ; Paso el valor de W a OSCCAL para calibrar el oscilador. movlw b'00000100' movwf TRISIO movlw b'00001111' movwf OPTION_REG ; Activa Pull Up. movlw b'0000100' movwf WPU ; Activada Pull Up del GP0. bcf STATUS,RP0 ; Selecciona banco 0. movlw b'00000111' ; Desactivar comparadores. movwf CMCON movlw .3 movwf Contador clrf GPIO ;***************************************************************************
Principal btfsc Pulsador ; ¿Pulsador presionado?, ¿(Pulsador)=0? goto Principal ; No. Vuelve a leerlo. ; call Retardo_20ms ; Espera que se estabilicen los niveles de tensión. btfsc Pulsador ; Comprueba si es un rebote. goto Principal ; Era un rebote y sale fuera. call IncrementaVisualiza ; Incrementa el contador y lo visualiza. EsperaDejePulsar btfss Pulsador ; ¿Dejó de pulsar?. ¿(Pulsador)=1? goto EsperaDejePulsar ; No. Espera que deje de pulsar. Fin goto Principal
;*************************************************************************** ; Subrutina "IncrementaVisualiza" ---------------------------------------------------------
IncrementaVisualiza call Lee_Dato_EEPROM incf Contador,F ; Incrementa el contador y comprueba si ha call Escribe_Dato_EERPOM movlw d'4' ; llegado a su valor máximo mediante una subwf Contador,W ; resta. (W)=(Contador)-4. btfsc STATUS,C ; ¿C=0?, ¿(W) negativo?, ¿(Contador)<4? InicializaContador clrf Contador ; No, era igual o mayor. Por tanto, resetea. Visualiza movf Contador,W call Tabla ; Lo pasa a siete segmento para poder ser movwf GPIO ; visualizado en el display. return
Tabla addwf PCL,F ; Sumo W al contador de programa. ; retlw b'00000010' ;1 retlw b'00010001' ;2 retlw b'00010010' ;3 ; Retorno con el valor correspondiente. retlw b'00100001' ;4 ;Subrutina EEPROM ******************************************************************
Lee_Dato_EEPROM bsf STATUS,RP0 ; Banco 1 movlw 0x00 ; Primera posición de la tabla movwf EEADR ; Apunta ahí ; movf Contador,W ; Coge el contador ; addwf EEADR ; Suma el contador para apuntar al dato que nos interesa bsf EECON1,RD ; Lee el valor de la tabla movf EEDATA,W ; Pasa el valor a W para trabajar con él. bcf STATUS,RP0 return
;Guarda en la EEPROM el valor del contador Escribe_Dato_EERPOM bsf STATUS,RP0 ; Banco 1. movlw 0x00 ; Elijo esta dirección de la EEPROM y movwf EEADR ; lo cargo en EEADR con el dato a escribir. movlw Contador movwf EEDAT ; Cargo el registro EEDAT con el dato a escribir. bsf EECON1,WREN ; Habilitar bcf INTCON,GIE ; Deshabilitar intercepciones. movlw 0x55 ; Desbloquear escritura. movwf EECON2 movlw 0xAA movwf EECON2 bsf EECON1,WR ; Inicie la escritura. bsf INTCON,GIE ; Habilitar INTS. bcf STATUS,RP0 return ;Subrutina Retardo_20ms ************************************************************ ; Retardo = 0.02 segundos. ; Frecuencia Reloj = 4 MHz. ; Retardo actual = 0.02 segundos = 20000 ciclos.
Retardo_20ms ;19993 ciclos. movlw 0x9E movwf RAM_ret movlw 0x10 movwf RAM_ret_1 Retardo_20ms_0 decfsz RAM_ret, f goto $+2 decfsz RAM_ret_1, f goto Retardo_20ms_0 ;3 ciclos. goto $+1 nop ;4 ciclos (incluyendo call). return
END Salu2.
|
|
|
373
|
Programación / .NET (C#, VB.NET, ASP) / No me funciona ejemplo de sobrecarga
|
en: 24 Octubre 2012, 03:10 am
|
Hola: Quiero hacer un mini ejemplo sobre Overloads y no me fucniona. Module Module1 Sub Main() Dim Ejemplo1 As String = "AAAA" Dim Ejemplo2 As Integer = 123445 testSub() testSub(Ejemplo1) testSub(Ejemplo2) testSub(Ejemplo1, Ejemplo2) End Sub Overloads Sub testSub() Debug. WriteLine("No pasa nada.") End Sub Overloads Sub testSub(ByVal i As String) End Sub Overloads Sub testSub(ByVal i As Integer) Debug. WriteLine(i. ToString) End Sub Overloads Sub testSub(ByVal i As String, ByVal j As Integer) Debug. WriteLine(i & " -- " & j. ToString) End Sub End Module
Error 2 Uso no apropiado de la palabra clave 'Overloads' en un módulo. C:\Users\Usuario\documents\visual studio 2010\Projects\Ejemplito\Ejemplito\Module1.vb 18 5 Ejemplito A pesar de leer por aquí sobre Overloads, no me guío. Salu2.
|
|
|
374
|
Foros Generales / Foro Libre / ¿Para qué estos cortos de películas hackers?
|
en: 23 Octubre 2012, 15:19 pm
|
Hola:  Viendo los capítulos del Cybergeddon, me ha gustado bastante para ser peli de hackers, más bien episodios, me he fijado hasta los códigos de lso programas que muestran, aunque a día de hoy, si sabes programación, esos sistemas operativos no se usan, más bien ningún mortal los conoces. Los códigos sin saber que lenguaje usan, he puesto pausa y e visto que tienen hasta IF, For, While... En cuanto a la acción e investigación de los policías está muy bien hecha y en castellano. La pregunta del millón. ¿Tienen intención de hacer una buena película hackers con fundamento?Ver capítulos.Un cordial saludo. PD: Disculpen si este tema no va aquí.
|
|
|
377
|
Informática / Hardware / Usar dos memorias RAM de diferentes marcas.
|
en: 5 Septiembre 2012, 14:53 pm
|
Hola:  He comprado una palca base ASRock G41C-CS. Luego me dio por cambiar de DDR2 a DDR3, no pueden estar las dos juntas. La marca de la RAM es ADATA, 4GB a 1333Mhz por 22€. Ahora vi otro módulo por 19€ KingSton 4GB a 1333 MHz, las características parece la misma. ¿Hay algún problema en usar la marca ADATA y KINGSTOM en la misma placa base?Bajo mi punto de vista me da que no, por si acaso pregunto si alguien se ha llevado el chasco y da problemas de algún tipo aunque sea pequeño y poco molesto. Un cordial saludo.
|
|
|
378
|
Informática / Electrónica / Saber de las clavijas de un portatil muy viejo
|
en: 4 Septiembre 2012, 15:29 pm
|
Hola:  Me regalaron un portatil viejo que no se si funciona hasta conseguir un cargador de baterías. El modelo es un Acer Aspire 1700. Concretamente el 1705SCi. Por debajo del portatil pone DC RATING: 19V, 7.9A. (España). El conector tiene 4 contactos. Por eso quiero saber como alimentarlo y sin l abatería del portatil. Al menos los portatiles de ahora, puedes tenerlo encendido sin batería con el cargador enchufado. El conector parece ser este. Compatibilidad:Acer Aspire 1700 Acer Aspire 1702 Acer Aspire 1702SC Acer Aspire 1703 Acer Aspire 1703ESC Acer Aspire 1703ESM Acer Aspire 1703S Acer Aspire 1703SC Acer Aspire 1703SCMe Acer Aspire 1705 Acer Aspire 1705SCi (El que tengo) Acer Aspire 1705SMi http://www.bateriasdigitales.com/cargador-portatil-acer/381-ac-19v-10090.htmlLo más barato que he visto son de 28€ y el más caro a 99€. Una diferencia de precio abismal. Quiero hacer una cosa, alimentar el portatil sea como sea, aunque sea con una fuente conmutada de un PC de sobre mesa. El origianl parace ser de 150W, el de sobre mesa es mucho más, es decir, que te lo aguanta. Quiero saber el conector hembra del portatil, para saber que tipo es cada pin ya que viene 4 y no se de que tensión es exactamente.  El conector hembra del portatil es así.  Cualquier información es bienvenido. Un cordial saludo.
|
|
|
379
|
Programación / Programación General / Capturar datos de la RAM
|
en: 3 Septiembre 2012, 04:26 am
|
Hola: Se que hay programas que puedes leer los datos que tienes en la memoria RAM de un PC, puedes ver procesos activos como la calculadora de Windows. Al ejecutar una operación de la calculadora de Windows 7, podemos hacer esta operación:  7 + 5 = 12 En alguna parte de la RAM del PC, puede manejar el 7 + 5 = 12, es decir, modificar el 7 por otro número como poner el 6 y el resultado ya es 11. También simplemente leo lo que hay en la RAM, lo que sea y lo guardo en el disco duro o SSD llamado .DAT por poner un ejemplo. ¿Es posible hacer esto? Un saludo.
|
|
|
380
|
Informática / Electrónica / Usar móviles sin tarjeta SIM
|
en: 30 Agosto 2012, 22:54 pm
|
Hola: Cuadno dejo de usar un movil porque ya es viejo y me compro el nuevo, quiero hacer experiemto con él. Los Nokia que tengo no hace falta tener la tarjeta SIM insertada para usar el movil, incluso para sacar foto con ella. Tengo un SamSung modelo SGH-L760V.  Este modelo no me deja hacer nada si no tiene una SIM insertada. ¿Existe alguna manera de saltar esta opción aunque sea usando un microcontrolador para emular una SIM? Un cordial saludo.
|
|
|
|
|
|
|