Mensajes recientes

Páginas: [1] 2 3 4 5 6 7 8 9 10
1
Todo en microcontroladores PIC / Re:Eleccion de segmentos de bits de un Puerto del uC
« Último mensaje por ALFREDOSKY en 10 de Diciembre de 2019, 18:47:49 »
Muchas gracias KILLERJC, voy a ir probando algunas opciones en base a lo que me has sugerido :-/ , saludos.
2
Hola una consulta, ¿como reseteas el pic? manualmente? cableas a cero voltios el pin de manera manual?
3
Todo en microcontroladores PIC / Re:Eleccion de segmentos de bits de un Puerto del uC
« Último mensaje por KILLERJC en 10 de Diciembre de 2019, 18:41:53 »
De la forma que pase el codigo sirve para lo que vos me mostraste el ejemplo.  Solo deberia dar vuelta los bits ya que considere el bit7 como RB0 en el array (_lo hice rapido sin mirar demasiado)

Citar
sino ver una alternativa de saar datos en paralelo a traves del puerto corriendo el inicio del pin del puerto.
Entonces no es un paralelo, el paralelo tenes una cantidad fija de lineas, por lo que si queres enviar otro dato simplemente cambias el dato.
5
Todo en microcontroladores PIC / Re:Eleccion de segmentos de bits de un Puerto del uC
« Último mensaje por ALFREDOSKY en 10 de Diciembre de 2019, 17:57:15 »
Hola KILLERJC, entiendo el concepto, me parece que el caso del codigo estas desplazando el elemento i-enesimo una posicion del arreglo, y lo que se debe realizar es el desplazamiento de los elementos del arreglo si no me equivoco; adicionalmente es lo que no deseo hacer, sino ver una alternativa de saar datos en paralelo a traves del puerto corriendo el inicio del pin del puerto. :mrgreen:
6
Todo en microcontroladores PIC / Re:Eleccion de segmentos de bits de un Puerto del uC
« Último mensaje por KILLERJC en 10 de Diciembre de 2019, 17:23:58 »
Eso es sencillo...

El array de la A estaria bueno que sea "vertical", es decir
Código: C
  1. char array[8] = {0b00000000,0b00111111,0b01111111,0b11011000,0b11011000,0b01111111,0b00111111,0b00000000};

Luego:

Código: C
  1. for(desplazamiento=0; desplazamiento<8; desplazamiento++)
  2. {
  3.    for(i=0;i < sizeof array; i++)
  4.    {
  5.         PORTB = array[i] >> desplazamiento;
  6.     }
  7. }  

La primera vuelta el desplazamiento es 0, por lo que  muestra la imagen como comienza, luego al mostrar todas las columnas , aumentamos el desplazamiento, de esa forma la proxima ves que le muestre vas a tener un 0 al frente (arriba). Y mientras mas lo desplaces mas 0 vas a tener.
7
Todo en microcontroladores PIC / Re:Eleccion de segmentos de bits de un Puerto del uC
« Último mensaje por ALFREDOSKY en 10 de Diciembre de 2019, 17:14:58 »
KILLERJC gracias por tu respuesta, los estados no usados deben ser ceros, lo que busco es desplazar una matriz hacia abajo, por ejemplo, uso un arreglo donde guardo la letra A

+++**+++
++****++
+**++**+
+******+
+******+
+**++**+
+**++**+
+**++**+

los * representan los 1's logicos, los + representan los 0's logicos, empezando desde arriba uso el puerto RB, desde RB0 hasta RB7; si deseo desplazar hacia abajo, el primer desplazamiento sería:

++++++++
+++**+++
++****++
+**++**+
+******+
+******+
+**++**+
+**++**+

otro desplazamiento:

++++++++
++++++++
+++**+++
++****++
+**++**+
+******+
+******+
+**++**+

el puerto B inicialmente se usa en su totalidad, en codigo sería: PORTB=array[k]

RB0  +++**+++
RB1  ++****++
RB2  +**++**+
RB3  +******+
RB4  +******+
RB5  +**++**+
RB6  +**++**+
RB7  +**++**+

si desplazo para abajo seria:

RB0  ++++++++
RB1  +++**+++
RB2  ++****++
RB3  +**++**+
RB4  +******+
RB5  +******+
RB6  +**++**+
RB7  +**++**+

en esta caso RB0 es cero, el arreglo iría desde RB1 hasta RB7, se perdería el ultimo elemento del arreglo.

Asi de esta manera se recorre el puerto B, inicialmente se usan todos los bits, luego desde el RB1, despues desde el RB2, RB3  siempre hasta RB7 en todos los casos, con esto se lograría el efecto de desplazar la letra A hacia abajo. Sé que se puede lograr el mismo efecto manipulando el arreglo que contiene los datos, pero quiero evitar eso, espero haya quedado un poco mas claro de lo que prentendo lograr.

AleSeri gracias por tu respuesta, si he revisado informacion relacionada, pero parace que lo que deseo hacer no es posible hacerse, no encuentro en ningun lado.
8
Todo en microcontroladores PIC / Re:PIC Bajo Consumo para aplicaciones IOT
« Último mensaje por Simon21 en 10 de Diciembre de 2019, 15:48:44 »
Hola a todos !! Sigo aquí con el tema de los consumos.. Alguien conoce un regulador de tensión de 3.3 VDC con salida hasta 300 mA, con consumos en el orden de los uA, o nA en estado estacionario ???? Los reguladores conocidos de tipo LM consumen demasiada corriente, en el orden de los mA, lo que hace muy dificil perdurar la vida de una batería.

He encontrado el modelo MCP1755 en la línea Microchip con encapsulado 5/SOT-23, pero no puedo conseguirlo por ello busco alguna alternativa.

Agradecería una respuesta de quien conozca alguno para recomendar.

Saludos !!
9
C, C#, C++ / Re:Pasar puntero de otro tipo a una funcion
« Último mensaje por KILLERJC en 10 de Diciembre de 2019, 06:38:55 »
Ahora que explicas el problema es obvio que lo que te pase no va a funcionar, pero para hacer lo que prentendes es de la forma que lo hiciste al comienzo. Facil en C++ (con el function overloading), pero en C es un poco mas engorroso.

El problema de C es que vas a tener que crear otra funcion con otro nombre o usar una variable extra (como lo pensaste vos).

Creando otra funcion:
Código: C
  1. void Funcionuint32(uint32_t *a){
  2.     float f = (float)*a;
  3.     Funcion(&f);
  4.     //*a = (uint32_t)f;  //Esto en caso que necesites modificar el valor del entero.
  5. }

Sin crear otra funcion:
Código: C
  1.     float f = (float)Variable1;
  2.     Funcion(&f);
  3.     //Variable1 = (uint32_t)f;  //Esto en caso que necesites modificar el valor del entero.

Mas sencillo que eso no existe, ademas f es una variable local, por lo cual al salir de la funcion se eliminaria.
10
C, C#, C++ / Re:Pasar puntero de otro tipo a una funcion
« Último mensaje por juaperser1 en 10 de Diciembre de 2019, 04:16:10 »
Es para reutilizar una función que tengo de pintar por pantalla, que acepta punteros a float por que pueden ser variables con decimales o no.

Pero si quiero pintar otro valor, como por ejemplo un int, no quiero utilizar mas memoria creando otra función.

de momento lo he arreglado, creando un float y su puntero, aunque no me gusta por que ocupas la memoria de un float entero para nada.

Citar
Funcion( (float *)&Variable1);

No, eso lo probé pero no funciona, el compilador no me da warning ni nada, pero si por ejemplo en la variable hay un 12, a la función le llega un 1.90exp yo que se cuanto.
Páginas: [1] 2 3 4 5 6 7 8 9 10
anything