|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - jaumegs
26
« en: Miércoles 18 de Enero de 2006, 00:02 »
Que libreria incluye funciones para leer y escribir el disco flexible sector por sector?, es decir, especificando cara, pista y siector.
P.D.- Para dev-c++ o borland cpp compiler 5.
SALUDOS
27
« en: Martes 17 de Enero de 2006, 23:58 »
Cómo puedo compilar un archivo binario "puro"?, es decir, que no saque un .exe, sino un .bin o sin extensión y que se comporte como tal.
Un archivo de este tipo puede ser ejecutado, por ejemplo, como un programa de arranque? Me refiero a si crearia conflictos al no encontrar las interrupciones. Imagino que si, pero, sería posible compilar desde el GCC (por ejemplo) archivos binarios que no utilicen interrupciones ni características específicas de un SO?
SALUDOS
28
« en: Lunes 16 de Enero de 2006, 00:13 »
Hola,
Si en vez de crear un sistema de archivos coges uno ya creado como FATFAT12 crearás compativilidad con DOS/windows, y esto motivará mucho mas, a parte de ahorrar tiempo en diseñar un buen sistema de archivos.
Estaría muy bien poder editar los archivos del SO tanto desde el propio SO como desde otro, en este caso DOS o windows.
SALUDOS
29
« en: Jueves 12 de Enero de 2006, 22:33 »
Bueno, aunque un poco retrasado, por si les interesa ya conseguí mi proposito. Lo solucioné modificando un transformador de un horno microondas. Corté el bobinado secundario y puse un cable grueso, de 2mm, dándole unas cuantas vueltas (8 creo). El transformador inicialmente con una entrada de 230v tenía una salida de 2100v. Después de la modificación con la misma entrada, tiene una salida de 6v, pero según los cálculos de unos 400Amperios. En cuanto al alambre, se coloca directamente en la salida del transformador. Para controlar el voltage de salida, y así la intensidad, se coloca un dimmer de una lámpara misma en la toma de corriente. El transformador apenas se calienta. He conseguido poner incandescente alambres de hasta 1mm de grosor. Al poner mas grosor la intensidad aumenta rápidamente, lo que calienta el transformador. Bueno, no hay fórmulas pero almenos funciona SALUDOS
30
« en: Miércoles 11 de Enero de 2006, 23:53 »
OK. Lo acabo de ver revisando los mensajes eso pasa por no usar el buscador... SALUDOS Y GRACIAS
31
« en: Miércoles 11 de Enero de 2006, 18:53 »
Bueno... creo que nos hemos desviado un poquito del tema, pero al crearse estas discusiones siempre da gusto leerlas Creo que la elección de programar en ASM o C es algo que debe realizar uno mismo. El ASM te hace tomar un contacto mayor con el micro, programar en C (no he programado en C nunca para un microcontrolador... para PC si) es mejor para optimizar el tiempo y no pasarte horas con algo que no te sale, o si quieres un programa para un PIC y otro tipo de micro y canviar unas cuantas lineas de código, no un programa entero (no se si eso es posible, pero si se sigue la misma teoria que en los computadores...). Todo es cuestión de uno mismo, si uno es un poco masoca, como yo, y le gusta decirle al micro lo que ha de hacer en cada preciso instante sin importarle el tiempo que gasta en ello... pues adelante, ASM. Si uno prefiere pasarse mucho menos tiempo, le da igual que el programa ocupe unos bits mas, y quiere que su programa sea mas portable, pues C. Yo cuando le coja mas práctica al ASM me gustaria aprender C para PIC, alomejor resulta que me gusta mas ... no que va, creo que nunca se ha de perder el contacto con el ASM, programes en lo que programaes. SALUDOS P.D.- Bueno, a lo que íbamos, me estoy volviendo loco en canviar de micro... del 16f84 hay mucha documentación (en castellano) sobre sus registros, para que sirven, como usarlos,... en cambio con los 16f876 y otros no encuentro nada, escepto los documentos de Microchip en ingles, que por desgracia no es idioma que domino, y menos para aprender algo de programación, aunque mi interés por reforzarlo no desaparece. NO existe por alli algo que te explique como usar la UART en un 16f876, el bus I2C, y esas cosas? (en ASM)
32
« en: Lunes 9 de Enero de 2006, 18:12 »
Bueno, realmente yo también estoy deacuerdo... pero me interesaba practicar un poco... Definitivamente utilizare el 16f876. Pero ahora el problema está en que solo he programado el 16f84... y desconozco los registros del 16f876 y como realizar tareas tales como la utilización de la UART. Alguien podría recomendarme un lugar que explique esto? SALUDOS
33
« en: Domingo 8 de Enero de 2006, 17:34 »
Hola, Se que esto se pide mucho por aqui, pero no me queda otro remedio... Miren, este codigo (sacado del FTP del foro, un poco modificado) teóricamente tocaría funcionar para la transmisión y recepción serie... Lo alucinante es que antes me funcionaba, bueno, me explico... HAce unos dias formatee el ordenador... y me olvidé de guardar todos los programas para los PIC. Entre ellos, un programa que me funcionaba muy bien, era este mismo código(un poco mas modificado). Este código funcionaba bien, pero no se porque ahora no hay forma... Lo he probado en simuladores y funciona bien, no da ningún error. Puedo pensar que es el hardware... pero estoy mas que arto de montarlo y desmontarlo... ;------------------------------------------------------------------------------ ; DECLARACIÓN DE VARIABLES ;------------------------------------------------------------------------------ #Define RxD PORTB,4 ; Receive Data #Define TxD PORTB,5 ; Transmit Data tempData1 EQU 0x44 counter2 EQU 0x45 counter1 EQU 0x46 ;------------------------------------------------------------------------------ RS232_setUp: bsf STATUS,RP0 ; Segundo banco bsf RxD ; Configura la entrada bcf TxD ; Configura la salida bcf STATUS,RP0 ; Primer banco return ; Retorna donde fue llamada ;------------------------------------------------------------------------------ RS232_readData: movlw 0x08 movwf counter1 waitBegin btfsc RxD ; Bit de START? goto waitBegin ; No, sigue esperando ; Si, sigue el programa call wait_mc100 ; Espera a que termine el bit de START call wait_mc50 ; Espera medio bit para leer el primer bit de ; datos medio bit retrasado readBit bcf STATUS,C ; Supone que es "0" btfsc RxD ; Es "0" realmente? bsf STATUS,C ; No, es "1" rrf tempData1,F call wait_mc100 decfsz counter1,F; Ha leido todos los bits de datos? goto readBit ; No, lee el próximo bit call wait_mc200 ; Si, espera al bit de STOP movf tempData1,W; Pone el resultado en el acumulador return ; Retorna donde fue llamada ;------------------------------------------------------------------------------ RS232_sendAsciiNumber: addlw '0' RS232_sendData: movwf tempData1 ; Guarda el contenido del byte a trans- ; mitir movlw 0x08 ; Número de bits a transmitir movwf counter1 bcf TxD ; Bit de START call wait_mc100 sendBit ; Comienza a enviar tempData1s rrf tempData1,F ; Lleva el bit que se quiere enviar al btfss STATUS,0 ; Carry para deducir su valor. ¿Es un ; "1" el bit a transmitir? goto sendZero ; No, pues envía un "0" sendOne bsf TxD ; Transmite un "1" goto endSendBit sendZero bcf TxD ; Transmite un "0" endSendBit call wait_mc100 ; Este es el tiempo que estará en alto ; o bajo decfsz counter1,1; Comprueba que es el último bit goto sendBit ; Como no es el último bit repite la ; operación bsf TxD ; Envía dos bits de stop call wait_mc200 return ; Retorna donde fue llamada ;------------------------------------------------------------------------------ wait_createMc: movwf counter2 ; Aporta 1 ciclo de máquina waitLoop decfsz counter2,1; Aporta 1 c.m. cuando no se salta, y ; 2 c.m. si se salta. goto waitLoop ; Aporta 2 ciclos de máquina return ; Aporta 2 ciclos de máquina ;------------------------------------------------------------------------------ ; RETARDOS ;------------------------------------------------------------------------------ wait_mc50: ; La llamada "call" aporta 2 c.m. nop ; Aporta 1 ciclo de máquina movlw 0Eh ; Aporta 1 ciclo de máquina goto wait_createMc; Aporta 2 ciclos de máquina wait_mc100: ; La llamada "call" aporta 2 c.m. movlw 1Fh ; Aporta 1 ciclo de máquina goto wait_createMc; Aporta 2 ciclos de máquina wait_mc200: ; La llamada "call" aporta 2 c.m. nop ; Aporta 1 ciclo de máquina movlw 40h ; Aporta 1 ciclo de máquina goto wait_createMc; Aporta 2 ciclos de máquina
Bueno, aquí les dejo el código haber si me pueden hechar una mano. SALUDOS
34
« en: Miércoles 28 de Diciembre de 2005, 22:10 »
Creo que lo enfoco desde un mal punto de vista.
Yo he intentado calcular la potencia desarroyada por el alambre, pero esto no es lo que lo hace calentarse realmente.
Si un circuito por el que circula una corriente de 1A le añado un alambre de un diametro de unos 2mm, que pasa? nada, la corriente circula perfectamente y no se calienta nada.
Ahora bien, si al circuito anterior añado un alambre de 0,1mm de diámetro que pasa? Que el alambre no soportaria esa corriente y se fundiria.
Pero si calculo su resistencia me daría como resultado 0,001ohms (por ejemplo).
Imagino que el factor que hace calentarse el alambre es que si su diámetro es pequeño y se le aplican grandes tensiones su resistencia aumenta drásticamente.
Que opinan?
SALUDOS
35
« en: Miércoles 28 de Diciembre de 2005, 00:03 »
bueno, leyendo un buen rato he llegado a varias conclusiones: I = Q/t V = W/Q
Q = I·t -> V = W/(I·t) -> V·I = W/t ..... W/t = P ... P = V·I ------------------- I - intensidad, V - voltaje, W - trabajo, Q - carga, P -potencia
I = V/R P = (I·R)·I = I^2·R Ahora si calculo la resistencia de el alambre de 60cm de largo(0,6m), diámetro 0,4(radio 0,2) y de acero (resistividad = 12,30·10^-8 ). R = ((12,3·10^-8)·0,6)/pi·(0,2)^2 = 5,873·10^-7 ohms
Hasta este punto llego, pero... el problema mas serio seria la parte del calor que puede disipar el alambre... Si tuviera esto con aplicarle una intensidad mayor a la necesaria para llegar hasta el calor maximo que puede disipar, asi iria incrementando su temperatura i al aumentar la temperatura aumentaria la resistencia, disminuyendo así el voltaje, quedando en un estado de equilibrio... Bueno... asusta un poco todo esto. Gracias SALUDOS
36
« en: Martes 27 de Diciembre de 2005, 13:37 »
Hola,
Esta pregunta no está relacionada con la programación, pero ya que alguno de ustedes sabe electrónica me atreveré a preguntarlo.
Miren, yo quiero alguna fórmula o el método de cálculo para averiguar a que augmento de temperatura tiene un conductor de diámetro D, longitud x, resistencia R, material (alambre, supongo que acero galvanizado) al hacer correr una corriente I atraves de él.
Bueno, supongo que si existe tal fórmula tendra estas variables, sino simplemente expondré mi caso.
Tengo un transformador con salida de 24V 2,5A, quiero calentar a unos 200º-300º un alambre de 0,4mm y 60cm de largo.
Lo que necesito saber es la corriente que he de hacer circular por el alambre para que suba a esa temperatura sin llegar a ponerse incandescente.
P.D- Esto no tiene nada que ver con el tema de estos foros, pero les agradeceria respuestas.
SALUDOS
37
« en: Viernes 23 de Diciembre de 2005, 18:54 »
Saludos, Estoi iniciandome en C++, con el compilador DevCpp. Al compilar, crea ejecutables del orden de 450Kb, cosa que no me pasaba cuando compilaba en C... y si compilo el mismo programa en otro compilador, me crea ejecutables muchisimo mas pequeños. Como puedo hacer que no me cree esos ejecutables tan grandes? SALUDOS
38
« en: Jueves 22 de Diciembre de 2005, 17:05 »
Confirmado, si que lo es. Bueno, mas precisamente es el diagrama de los pines para proceadores i486 DX2, que es precisamente el que tengo yo Bueno, gracias por su ayuda. SALUDOS.
39
« en: Jueves 22 de Diciembre de 2005, 16:54 »
MAs o menos esa era mi intención. Mi idea era empezar con los 8086, pero no encuentro por ningún lado, asi que... me regalaron un 486... y por probar. He visto sites donde hacen ordenadores basicos, yo no pretendo nada mas... procesador, ram, un controlador para los puertos, otro para las INT... y claro esta... una rom. Algo sencillo... MUY sencillo. Con un fin educativo... no pretendo hacer nada útil, y no creo que lo consiga hacer funcionar... antes tendré que cargarme algunos prcesadores... SALUDOS
40
« en: Miércoles 21 de Diciembre de 2005, 15:10 »
Muchas gracias!
41
« en: Miércoles 21 de Diciembre de 2005, 00:49 »
Bueno, esta no es exactamente una pregunta sobre un tema de ensamblador, pero va ligada. He estado buscando por la red y no he encontrado por ningún lugar alguna web que de un datasheet o simplemente que función desempeña cada uno de los pines de un 486(DX2, por lo que he encontrado, hay pequeñas variaciones según el modelo). Eso de que no he encontrado nada no es del todo cierto, pues he encontrado esto: http://home.wtnet.de/~akstiefler/486/knifflig.htmlpero como podeis ver está en alemán. Solo observando el título se ve que se refiere a AMD, y a los procesadores 5x86. Yo he interpretado que esto se debe tratar de un 486, una razón es que me apareció al buscar "486" en el google, y otra es porque coincide en el número de pines. Bueno, la pregunta es: Es esto realmento lo que ando buscando? SALUDOS
42
« en: Domingo 11 de Diciembre de 2005, 00:55 »
OK, muchas gracias.
Despues de un buen rato buscando ya he encontrado cosas en español.
SALUDOS
43
« en: Sábado 10 de Diciembre de 2005, 23:03 »
Desde el momento en que uno sabe alguna cosa que otro no, puede tomar el papel de maestro de eso, de igual modo, que el otro también lo puede ser en otros campos.
Bueno, quizás no haya formulado bien mis preguntas, en la pregunta anterior con razón podrias haber dicho que buscara por la web, realmente pregunté antes de buscar.
Esta nueva pregunta pido otra cosa, acerca de la misma materia, pero yo no le encuentro similitud. Pido si es posible hacer una interrupción, y si ese es el caso, cómo?. No obligo a nadie a contestar, o a pasarse una hora escribiendo para mi, solo pido si alguien sabe algo acerca de ello, o alguna web.
Te agradezco la dirección que me has dado, pero no me ha servido de mucho, imagino que es porque no se por donde empezar con ella. Allí ay muchisimo mas de lo que pregunto, diria que todo sobre los procesadores intel.
SALUDOS
44
« en: Sábado 10 de Diciembre de 2005, 21:53 »
Tranquilidad. Primero, antes de preguntar nada intento contestar a mis preguntas desde otras fuentes. Se que son las interrupciones, simplemente he expuesto como las veo yo (las interrupciones por software)...
Y porfavor, no cuestiones mi forma de aprender, simplemente me interesa mas la programación a bajo nivel, y por lo tanto acceder al hardware como tal. Si lo que quisiera fuera meter cuatro parametros i dejar que un "algo" haga el resto, programaria en C. Yo lo único que quiero es entender como se comunican el hadware y el procesador, me da igual si hay unas cositas llamadas interrupciones de la BIOS que hacen la vida mas facil, para eso estan los lenguajes de alto nivel.
Desde mi punto de vista prefiero aprender a manejarlo todo a bajo nivel, y apartir de este punto, ya manejar las interrupciones de la BIOS o crear mis propias interrupciones.
No me meto con las interrupciones de la BIOS, son muy útiles, pero creo que debe ser una opción el utilizarlas, no una obligación.
Siento parecerte pesado, que no hago nada por mi mismo y lo que pienses de mi. Es mi forma de ver las cosas.
Y ademas, los foros están para preguntar cosas, da igual la estupidez de la pregunta, así, si alguien tiene una de estas dudas estúpidas, al buscarla por el buscador del foro la encontrará y así no tendra que romperse la cabeza buscandola por la red... O almenos eso entiendo yo por foro... sino, si todo son preguntas la leche de complejas... a parte de que solo recibirian dos o tres respuestas, nadie llegaria nunca a preguntarselas mas que nada porque no ha aprendido lo básico...
Bueno, intentaré preguntar menos... Pero mi problema es que mi nivel de ingles es bastante bajo, y no me da para mucho... se que deberia aprender mas ingles si quiero moverme en este mundo, pero, si en webs como esta se respondiera a este tipo de preguntas, gente como yo que no sabemos ingles, encontrariamos la respuesta sin necesidad de aprender mas idiomas.
SALUDOS
45
« en: Sábado 10 de Diciembre de 2005, 20:27 »
Que son exactamente las interrupciones? Bueno, entiendo su función, como se usan... Tienen un cierto parecido con las llamadas "call" a una función, pero como que ya estan cargadas en memoria, no pueden ser llamadas por un "call" al no ser que sepas su posición en memoria... Bueno, eso es lo que entiendo yo de ellas Puedo hacer yo una interrupcion? Por ejemplo... crear una interrupcion (0x34) cargarla en memoria y al introducirla en mi programa que ejecute esa funcion... Cómo puedo hacerlas?Cuanta mas información mejor SALUDOS
46
« en: Sábado 10 de Diciembre de 2005, 01:49 »
Y en que parte de la memoria estan situadas?
En las funciones de la BIOS están numeradas, que patron sigue esa numeración?
(Hoy estoy preguntón)
SALUDOS
47
« en: Sábado 10 de Diciembre de 2005, 01:44 »
jejej, ok. Cuando he dicho la ram de la bios me referia a el código de la bios cargado en la ram, que efectivamente esta en la f000:0000(por eso he añadido la PD)... SALUDOS
48
« en: Sábado 10 de Diciembre de 2005, 00:27 »
0040:0050 16 Bytes Cursor Positions on all pages No entiendo esto :-S esto que es, que la posición del cursor se encuentra en el segmento 0x0040 offset 0x0050 de la RAM? SALUDOS PD- He visto que al hablar de esta posición de memoria se refieren a la RAM de BIOS. Quiere decir esto que 0x0040:0x0050 se encuentra en 0xF040:0x0050?
49
« en: Viernes 9 de Diciembre de 2005, 23:59 »
He estado mirando i no encuentro por ningún lugar el esquema de un circuito de ultrasonidos. El circuito ha de incluir un transmisor y un receptor, controlados por un PIC (16f84 si puede ser). Mi intención es crear un "radar" de corta distancia de ultrasonidos, movido por un motor PaP para así poder hacer una imagen de 360º, para eso necesitaria que el programa del PIC cronometre, lo mas preciso posible, el tiempo que tarda en recibir un eco después de transmitirlo. Bueno... el programa puedo hacerlo yo, pero no se como conectar dos módulos de ultrasonidos a un PIC, ni tampoco su funcionamiento. SALUDOS P.D.-perdón por el rollo que os he contado...
50
« en: Viernes 9 de Diciembre de 2005, 23:50 »
Hola, Qué es eso de las páginas de video (no los modos...) ? (Lo pide como parámetro en varias funciones de video de la BIOS) SALUDOS
|
|
|