Autor Tema: Ayuda Programar Atmel en C  (Leído 3571 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Doctorg

  • PIC10
  • *
  • Mensajes: 2
Ayuda Programar Atmel en C
« en: 11 de Mayo de 2005, 13:31:00 »
Tengo un problema: Necesito hacer una funcion para ahorrar espacio en una plaqueta con un microcontrolador en c pero no cazo una goma

La funcion es esta:

   ____________________________
_________________________
Z=p1.1 + p1.2 *(p1.3 (+) p1.1 + p1.4)


Tengo que guardar el valor de z en una posicion de memoria y sacar el resultado por el p1.5 del microcontrolador

Desconectado xerex

  • PIC16
  • ***
  • Mensajes: 138
    • Mi servidor, mi casa.
RE: Ayuda Programar Atmel en C
« Respuesta #1 en: 11 de Mayo de 2005, 16:43:00 »

Lo primero que tienes que hacer es pasar las sumas a multiplicaciones con  operaciones logicas mediante la simplificacion de la doble negacion:

si no me equivoco queda asi (espero haberlo copiado exactamente):

        Z = !p1.1 && !p1.2 && !(!(p1.3^p1.1) && !p1.4)

||          OR lógico
&&          AND lógico
!           NOT lógico
^             XOR lógico


Creo que la funcion te queda entonces asi, Te devuelve el valor de Z y la pones donde quieras. Te recuerdo que es un bit solamente.

bit funcion(void)
{
bit Z;
   
        Z = (!p1.1) && (!p1.2) && (!(!(p1.3^p1.1) && !p1.4)); // Realizamos operacion
        p1.5=Z; // asignamos el valor de Z y lo sacamos por p1.5
        return (Z); // retornamos el valor de Z a la variable de tipo bit que quieras
}

Revisa la simplificacion y ya esta te deberia funcionar. Un saludo.
Es falso eso de que el saber no ocupa lugar....


No se donde poner tanto libro.... :P

Desconectado xerex

  • PIC16
  • ***
  • Mensajes: 138
    • Mi servidor, mi casa.
RE: Ayuda Programar Atmel en C
« Respuesta #2 en: 11 de Mayo de 2005, 16:44:00 »
me he dado cuenta que tambien podemos utilizar la funcion OR pero bueno cuestion de gustos. la funcion sigue siendo la misma.
Es falso eso de que el saber no ocupa lugar....


No se donde poner tanto libro.... :P

Desconectado Doctorg

  • PIC10
  • *
  • Mensajes: 2
RE: Ayuda Programar Atmel en C
« Respuesta #3 en: 11 de Mayo de 2005, 18:25:00 »
Eso mismo que me pusiste lo tengo que poner en el keil y deberia funcionar?

Desde ya te agradezco infinitamente Muchas risas

Desconectado xerex

  • PIC16
  • ***
  • Mensajes: 138
    • Mi servidor, mi casa.
RE: Ayuda Programar Atmel en C
« Respuesta #4 en: 12 de Mayo de 2005, 12:06:00 »
si debe funcionar en keil? pues si, si los puertos se llaman asi y pones correctamente la funcion...

De todas formas me parece una mala gestion del micro si solo vas ha hacer un circuito conbinacional, prueba con logica programable que es mas sencillo y economico que un micro y es para lo que tu quieres, dibujas el esquema o lo programas en VHDL (similar a C) y lo pasas a una FPGA chiquitita y no tienes que aprender a programar los atmel ni ningun microcontrolador. Un saludo.
Es falso eso de que el saber no ocupa lugar....


No se donde poner tanto libro.... :P


 

anything