elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


  Mostrar Mensajes
Páginas: 1 ... 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 [76] 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 ... 161
751  Programación / Programación C/C++ / Re: problema al imprimir el resultado en un programa en C en: 16 Junio 2017, 07:00 am
Parece que tienes un problema de desbordamiento de memoria.
Básicamente opcion es un char, y así la tratas en los case, pero cuando la capturas lo haces como una cadena en el scanf. El compilador captura una cadena, que en tu caso serán 2 caracteres, el segundo un 0. pero como solo tienes espacio para uno así que ese 0 tiene que ir a algun sitio y, tal como tu compilador ha dispuesto las variables en memoria, va a sobrescribir b.
752  Programación / Programación C/C++ / Re: problema al imprimir el resultado en un programa en C en: 16 Junio 2017, 02:22 am
¿Qué te sale y qué esperabas?

Muy mal por el return main();
En su lugar usa bucles infinitos, si quieres, como el while(1) o for(;;)
753  Programación / Programación C/C++ / Re: duda máscara de bits. ATmega en: 16 Junio 2017, 01:11 am
!(PINB&(1<<PB1))

Sencillo.
Primero, paréntesis interiores:
Desplazar el número 1 tantos bits a la izquierda como marque PB1, rellenando con 0 las posiciones vacías que queden a la derecha. Por ejemplo, 1<<3 = 1000 binario = 8 decimal.
Segundo, paréntesis externos:
Se opera AND a nivel de bits el valor PINB con el valor conseguido en el resultado anterior. Por ejemplo, 12 & 8 = 8. Visto en binario 1100 & 1000 = 1000.
Por último la negación: Si un número es diferente de 0 devolverá 0. Si un número es 0 devolverá un número diferente de 0. O dicho lógicamente: si el argumento es FALSE devolverá TRUE, si el argumento es TRUE devolverá FALSE.

Por tanto la sentencia entera dice: mira en PINB si el bit PB1 está a nivel bajo.




EICRA &= ~(_BV(ISC00) | _BV(ISC01))

Es lo mismo que
EICRA = EICRA & ~(_BV(ISC00) | _BV(ISC01))

Antes de nada ¿qué es _BV?
_BV es una macro codificada de esta forma:
Código:
#define _BV(bit) \
(1 << (bit))
Lo hemos visto más arriba que hace esto, fácil.
Paréntesis.
| es el operador OR a nivel de bits. Por ejemplo: 8 | 4 = 12. Visto a nivel de bits 1000 | 0100 = 1100
~ es el operador NOT lógico a nivel de bits o, también se le puede llamar, complemento a 1. Por ejemplo: Supongamos una palabra de 4 bits sin signo. ~10 = 5. Visto a nivel de bits ~1010 = 0101.
El operador & ya hemos visto que hace.
Todo junto dice: Pon a 0 los bits ISC00 e ISC01 a EICRA.
754  Programación / Programación C/C++ / Re: utilizar hilos y al compilar no utilizar -l pthread en: 13 Junio 2017, 08:58 am
Haz un makefile, así solo tendrás que escribir make.
755  Programación / Programación C/C++ / Re: Conexión de lenguaje en C a Arduino en: 13 Junio 2017, 08:56 am
Aclarando lo que quiere decirte engel lex: tiene que construir el código para el arduino y subírselo.
756  Programación / Programación C/C++ / Re: NVMND en: 12 Junio 2017, 19:13 pm
Gracias por aclarar.
Por eso mismo había intentado recuperar el mensaje inicial, para que no quedara esto en un sin sentido.
En verdad esta gente que cuándo han solucionado su historia, o no, borran toda huella dejando el hilo cojo me dan coraje.
757  Programación / Programación C/C++ / Re: Comunicación a Arduino mediante lenguaje en c (puerto Serial) en: 12 Junio 2017, 07:56 am
¿Entonces el programa sería del lado del Arduino? Necesitarás un real time clock RTC ya que arduino no dispone de reloj.
758  Programación / Programación C/C++ / Re: NVMND en: 12 Junio 2017, 07:48 am
La pregunta, ahora borrada era como se podía conocer desde un form el estado de unos radio buttons ubicados en otro.
759  Programación / Programación C/C++ / Re: Sistema de 4 variables y 4 ecuaciones. en: 11 Junio 2017, 04:09 am
Especifica un poco más.
760  Programación / Programación C/C++ / Re: [?] Volcado del output al usar system en una variable en: 9 Junio 2017, 01:48 am
Una respuesta esta aquí: https://stackoverflow.com/questions/7292642/grabbing-output-from-exec

Adaptando el código:
Supongamos un programa llamado 'd', que será el llamado que está en el mismo directorio que el programa principal 'c', quien recibe la salida del primero.

d
Código
  1. #include <stdio.h>
  2. #include <limits.h>
  3.  
  4. int main() {
  5. for(unsigned i = 0; i < UINT_MAX; ++i)
  6. printf("%u\n", i);
  7. }

c
Código
  1. #include <stdio.h>
  2. #include <unistd.h>
  3. #include <sys/wait.h>
  4. #include <stdlib.h>
  5. #include <unistd.h>
  6.  
  7. int main() {
  8.    int link[2];
  9.    pid_t pid;
  10.    char salida[4096];
  11.  
  12.    pipe(link);
  13.    pid = fork();
  14.  
  15.    if(pid) {
  16.        int status;
  17.        int nbytes;
  18.  
  19.        close(link[1]);
  20.        printf("Salida del hijo:\n");
  21.  
  22.        do {
  23.            nbytes = read(link[0], salida, sizeof(salida));
  24.            printf("%.*s", nbytes, salida);
  25.            waitpid(-1, &status, WNOHANG);
  26.        } while(WIFEXITED(status));
  27.        printf("Fin del hijo\n");
  28.    }
  29.    else {
  30.        dup2 (link[1], STDOUT_FILENO);
  31.        close(link[0]);
  32.        close(link[1]);
  33.        execl("./d", "d", (char*)NULL);
  34.    }
  35. }
Páginas: 1 ... 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 [76] 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 ... 161
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines