Autor Tema: lecturas y salidas (digitales y analogicas) en lengua c para pic  (Leído 13066 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado nuevo mundo

  • PIC16
  • ***
  • Mensajes: 108
hola compañeros estoy practicando con programas de leer pulsadores (en varios pin pero solo cambia es estado entre 0y1) y dar salidas en otros pines (0,1 con retardos y salidas fijas) y me gustaria que me comentaran como leer al mismo tiempo varios pines con (condiciones if, else o "case" o  "//" o "&&" )para darme idea de como realisar diferentes condiciones al mismo tiempo en espera de un cambi de un pulsador o barios

Desconectado w3-sistemas

  • PIC12
  • **
  • Mensajes: 89
Re:lecturas y salidas (digitales y analogicas) en lengua c para pic
« Respuesta #1 en: 14 de Marzo de 2016, 00:51:40 »
hola aca te paso unas tareas en "c" que le pase a un colega mexicano para una alarma, la tarea A sensa el interruptor encendiendo o apagando tanto la alarma como la tarea B
y la B es la tarea que sensa 7 interruptores y si alguno se activa se enciende el led correspondiente y hasta que no pulsas el interruptor 1 no se apaga la alarma, mas datos me consultas

saludos

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:lecturas y salidas (digitales y analogicas) en lengua c para pic
« Respuesta #2 en: 14 de Marzo de 2016, 01:34:13 »
nuevo mundo:

Solo corregirte que es || y no //, normalmente en un teclado español lo podes poner con el "Alt Gr" (el que se encuentra a la derecha ) y el 1.

Desconectado nuevo mundo

  • PIC16
  • ***
  • Mensajes: 108
Re:lecturas y salidas (digitales y analogicas) en lengua c para pic
« Respuesta #3 en: 16 de Marzo de 2016, 02:31:45 »
gracias  w3-sistemas por tu ayuda la agradezco de corazón y veo que gracias a las personas como tu que ya an caminado más en el mundo del lenguaje de programación de los pic tienen la experiencia, el conocimiento de por de ayudar y que nuevas personas puedan crecer poco a poco en este mundo tan maravilloso del los pic un servidor se llama Raúl Pérez acosta soy de tabasco México y hace algún tiempo me di a la tarea de realizar una alarma para mi hogar porque a mis dos vecinos le vaciaron la casa y eso me dio mucho miedo de perder lo que por muchos años uno a podido tener y dije que los pic me ´podían dar una para que esto no me sucediera a mi
por eso estoy aquí tratando de realizar la alarma empecé con lo básico leí e investigue  y pedí ayuda en este foro me apoyo de gran manera KILLERJC en mis primeras preguntas pero vi que lo que yo quería lo plantie quizás de la manera más difícil de hacer puse un tema llamado insertar una condicion mientras se ejecuta un while esto me iso despertar mas mucho más las bondades del lenguaje c para pic y aun sigo en la lucha dia a dia en tratar de realizar la idea de la alarma pero e buscado en internet ejemplos de como leer pulsadores y que den salida en algún pin pero solo e encontrado el básico 1 pulsadr y un led pero no en donde se censen barios y que den salida en otro pin como el que me diste gracias lo analizare lo pondré en proteus para simularlo y luego adaptarlo gracias   

Desconectado nuevo mundo

  • PIC16
  • ***
  • Mensajes: 108
Re:lecturas y salidas (digitales y analogicas) en lengua c para pic
« Respuesta #4 en: 16 de Marzo de 2016, 02:59:45 »
Gracias KILLERJC por tu ayuda ya encontré la tecla te comente que me sentía frustrado por lo difícil que se me puso el querer programar un pic para una alarma pero tengo que tener paciencia y seguir luchando hasta lograrlo sigo investigando asta muy altas horas de la noche para lograrlo y e aumentado los conocimiento y por eso realice esta pregunta por qué vi que se podía hacer más fácil con otras sentencia que tenía el lenguaje c para pic y me gustaría que en el foro existieran ejemplos que con anterioridad otros compañeros hayan hecho y lo compartan con todos para aprender de lo que ya pasaron creo que el que pregunta algo aquí es porque no lo puede hacer sin la ayuda del foro y si lo logra ese programa debería de quedar aquí para ejemplo y enriquecer mas a todo pic veo la capacidad que tiene muchos a qui y es extraordinaria ya me imagino los logros que an obtenido muchas personas gracias asu ayuda   bueno esa es solo una opinión saludos y si existe algo a si me comentas saludos desde Comalcalco mexico tierra del chocolate jejejeje  :P
« Última modificación: 16 de Marzo de 2016, 04:14:33 por nuevo mundo »

Desconectado w3-sistemas

  • PIC12
  • **
  • Mensajes: 89
Re:lecturas y salidas (digitales y analogicas) en lengua c para pic
« Respuesta #5 en: 17 de Marzo de 2016, 00:19:51 »
bueno nuevomundo comentame como te fue con lo que te mande, saludos

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:lecturas y salidas (digitales y analogicas) en lengua c para pic
« Respuesta #6 en: 17 de Marzo de 2016, 01:01:05 »
Solo decirte que lo que le pasaste esta un poco fuera de los alcances de nuevo mundo, el recien comienza con C y no conoce ni los operadores, ni siquiera usar if para preguntar por las entradas, y en tus ejemplos estas poniendo enum, struct, y defines que ni siquiera estan en el texto, switch / break. Lo cual me parece a mi que lo va a marear mas.

El simplemente necesita primero un tutorial de C, pero no hay de CCS, sino solo de XC8 en el foro, pero podria buscar por internet cualquier tutorial hasta aprender lo principal, que es el control de flujo, loops, tipos, funciones, etc.

Desconectado nuevo mundo

  • PIC16
  • ***
  • Mensajes: 108
Re:lecturas y salidas (digitales y analogicas) en lengua c para pic
« Respuesta #7 en: 22 de Marzo de 2016, 18:55:41 »
Hola  KILLERJC ya e leído mucho mi buen lo que pasa es que no hay muchos ejemplos palpables ya desarrollados solo sentencias básicas pero no en ejemplos saludos y si gustas apoyarme de antemano gracias por orientarme

Desconectado nuevo mundo

  • PIC16
  • ***
  • Mensajes: 108
Re:lecturas y salidas (digitales y analogicas) en lengua c para pic
« Respuesta #8 en: 22 de Marzo de 2016, 19:00:54 »
Gracias mi buen w3-sistemas a raíz de lo que me mandate me dedique a leer más para entender por competo la lógica de las dos rutinas que me mandaste y copiare la primera y de hay le pondré a un costado lo que le entiendo para que me orientes ti estoy por buen camino para leer de manera correcta el código saludos

Desconectado nuevo mundo

  • PIC16
  • ***
  • Mensajes: 108
Re:lecturas y salidas (digitales y analogicas) en lengua c para pic
« Respuesta #9 en: 22 de Marzo de 2016, 20:55:43 »
Operaciones Matemáticas
 Se  tienen  la  suma,  resta  multiplicación  y división,  división  entera  más  las  operaciones  de  incremento  y decremento.

char i,j, k;
void main()
{
i=10;
j=20;

k=i+j; //suma de 2 enteros
k=i-j; // resta de 2 enteros
k=i*j;  // multiplicación de 2 enteros
k=i%j;// Division entera
(debe dar el resto)
k++;  // incremento k=k+1
k--;  // decremento k=k-1;
}
Operaciones Lógicas
Se  realizan  con  variables  enteras  y  afectan  directamente  al  bit  del  dato,  se  tienen  los  operadores  lógicos y los desplazamientos a la Izquierda y ala derecha.

char i,j, k;
void main()
{
k=i&j; // operación AND entre i y j bit a bit
k=i|j; // operación OR entre i y j bit a bit
k=~i;  // operación negación de i asignado a k
k=i<<1; // i desplazado en un bit a izquierda
k=i<<2; // i desplazado en 2 bit a izquierda
k=i>>1; // i desplazado en un bit a la derecha
k=i<<2; // i desplazado en 2 bit a la derecha
}

Sentencias de control

Permiten  definir  las  funciones a  ejecutar  dependiendo  de  ciertas  condiciones  que  se  deben  evaluar.  Estas condiciones  pueden  ser  tipo lógicas, tipo mayor, menor o igual o ambas .  Por  lo  general  se  agrupan  entre paréntesis para definir la prioridad de la evaluación de la condición.
Tabla 3.
Operador de condición                 Descripción

          ==                                         Igual
          !=                                         Distinto
          > <                                       Mayor, menor
          >=  =<                                  Mayo o igual, Menor o igual
          &&                                        Operador Y
           ||                                         Operador O


Desconectado nuevo mundo

  • PIC16
  • ***
  • Mensajes: 108
Re:lecturas y salidas (digitales y analogicas) en lengua c para pic
« Respuesta #10 en: 22 de Marzo de 2016, 21:11:58 »
La condición verdadera puede ser también de la siguiente forma: Si se quiere preguntar por una variable que es  mayor  que  cero  solo  se  coloca  la  variable  si  se quiere  preguntar  si  es falsa  entonces se  niega,  usando el operador !.
Sentencia if-else Puede  usarse el if solo  o el if-else. Si  la  condición  es  verdadera  entonces  se  ejecuta  una instrucción o un grupo de instrucciones en caso contrario se ejecuta la que sigue

char i,j,k,h;
void main()
{

i=10;
j=20;

if(i==j) k=1; // si i=j entonces k=1 sino k=2
else k=2;
// si=10 entonces k=20,j=10 sino k=40,j=20,h=60
if(i==10) {
                  k=20;
                  j=10;
}
else
        {
                  k=40;
                  j=20;
                  h=k+j;
         }
// Si i=10 y j=20 entonces...
if((i==10) && (j==20)) {
                                       k=20;
                                       j=10;
                                     }
if(i) k=20; // si i es mayor que cero
if(!i) k=20; // si i es cero
}

Desconectado nuevo mundo

  • PIC16
  • ***
  • Mensajes: 108
Re:lecturas y salidas (digitales y analogicas) en lengua c para pic
« Respuesta #11 en: 22 de Marzo de 2016, 21:36:32 »
Sentencia while
Esta  evalúa  la  condición  al  inicio,  si  ésta  es  verdadera,  entonces  se  ejecuta  el bloque  que  viene acontinuación en caso contrario lo salta.

El formato es el siguiente:

while(condición) instrucción;                                                                   while(condición) {
                                                                                                                                             instrucción_1;
                                                                                                                                             ...
                                                                                                                                             instrucción_n;
                                                                                                                                             }
En el siguiente código fuente se muestra que el ciclo while se realiza ya que i siempre sea mayor que 0. Sin embargo en algún momento i será menor que 0, dado que k se va decrementando y se hace igual a i dentro del ciclo. 

char i,j,k,h;
void main()
{
   i=1;   k=40;   j=10;
   while(i>0) // Solo mientras i>0 hace lo que viene a cont.
   {
      h=k+j;
      k--i=k;
    }
}
En el ejemplo sólo se evalúa la condición verdadera, pero nunca sele del ciclo.
char i,j,k,h;

void main()
{
   i=1;
   // Solo mientras i mayor que cero hace lo que viene a cont.
   while(i)   // Puede usarse while(1)
    {
       k=40;
       j=20;
       h=k+j;
     }
}
Para  salir  de  un  ciclo  donde  no  existe  posibilidad  de  que  la  condición  sea alterada,  se  puede  usar  la sentencia break.

char i,j,k,h;

void main()
{
   i=0;
   while(1)   
    {
       i++;
       if(i==5)break; // Sale cuando i=5
     }
}
La  sentencia do while se  evalúa  la  condición  al  final,  por  ejemplo  “ Hágalo  mientras  se  cumpla  la condición”.

void main()
{
  char i;
  i=10;
  do
  {
  i--;
  }while(i!=5);// Sale cuando i=5
}

Desconectado nuevo mundo

  • PIC16
  • ***
  • Mensajes: 108
Re:lecturas y salidas (digitales y analogicas) en lengua c para pic
« Respuesta #12 en: 22 de Marzo de 2016, 21:45:09 »
Sentencia switch -case
Esta instrucción se  usa  cuando  se  deben  seleccionar  entre  varias  opciones  tipo  numéricas.Es  básicamente un selector.

char c;
void main()
{
   // se le debe asignar el valor a la var. c
   switch(c)
  {
    case 1: // debe saltar a función
    break;
    case 2: // debe saltar a función
    break;
    case
    3: // debe saltar a función
    break;
   }
}

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:lecturas y salidas (digitales y analogicas) en lengua c para pic
« Respuesta #13 en: 22 de Marzo de 2016, 21:49:23 »
Todo eso lo podes encontrar en cualquier tutorial de C, me refiero a que corresponde al lenguaje de programacion C. Y no algo referente al micro. Por eso mismo:

El simplemente necesita primero un tutorial de C, pero no hay de CCS, sino solo de XC8 en el foro, pero podria buscar por internet cualquier tutorial hasta aprender lo principal, que es el control de flujo, loops, tipos, funciones, etc.

Desconectado nuevo mundo

  • PIC16
  • ***
  • Mensajes: 108
Re:lecturas y salidas (digitales y analogicas) en lengua c para pic
« Respuesta #14 en: 22 de Marzo de 2016, 22:13:32 »
KILLERJC no entiendo que me quieres decir pero esto que puse lo estoy utilizando para entender el programa que me facilito el compañero w3-sistema para así entenderlo y poder aplicarlo a mi problema de rateros que me acechan la verdad que si requiero de su ayuda porque sin esa ayuda creo que cuando logre realizar la alarma será tarde la verdad que le estoy echando todos las ganas para asi poder aplicar esto a una aplicación que sea funcional y que me ayude contra la amenaza que me asecha por favor si ya me entendiste lo que quiero realizar y conoces la manera más sencilla de hacerla coméntame le doy duro ala investigación y al desarrollo de lo que me comentes y ojala que lo que puse le sirva a otros compañeros saludos


 

anything