• Domingo 28 de Abril de 2024, 21:29

Autor Tema:  Como Tratar Entradas En C  (Leído 2046 veces)

dds

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Como Tratar Entradas En C
« en: Miércoles 10 de Octubre de 2007, 00:40 »
0
Saludos  :hola:
Soy nuevo en C, y quisiera saber como tratar las entradas de hardware, es decir el Port A y el Port B , entre otros.
algunas de mis dudas son:
¿Se definen como int o char ( o otro ) ?, ¿es necesario tratarlos como punteros?, ¿se pueden concatenar en un arreglo ambos puertos?
tambien me seria muy util algunos ejemplos sencillos.
¡¡¡¡Desde ya muchas gracias y  Saludos!!!
DdS

fa61an

  • Miembro MUY activo
  • ***
  • Mensajes: 100
    • Ver Perfil
Re: Como Tratar Entradas En C
« Respuesta #1 en: Miércoles 10 de Octubre de 2007, 03:20 »
0
Son varias preguntas !!!

A ver primero que software usas, supongo que Codewarrior pero no es el único que existe la próxima especifica.

Si es Codewarrior  5.1 cuando se crea un nuevo proyecto el archivo main del mismo incluye las definiciones del todo el Hardware

#include "derivative.h"  

Para acceder definir por ejemplo que bits son de entrada o de salida del puerto B se usa la siguiente linea

DDRB= 0b00001111;

Recuerda que los registros deben ser en mayúsculas y el anterior código define los 4 primeros bits del puerto B como salida y los otros cuatros como entrada.

luego para asignar un dato al puerto B se usa los siguiente

PTB=dato;
o
PTB_PTB0=1;
o
PTB_PTB5=0;

En C no existe alguna función para concatenar y cada puerto tiene su registro como pretendes contatenarlo  ;)

para escribir en el puerto A entonces se usa asi:

PTA=0xff;
o
PTA_PTA7=1;

Ejemplos ???? haz tus pruebas y publicas tus dudas no te parece

dds

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Como Tratar Entradas En C
« Respuesta #2 en: Miércoles 10 de Octubre de 2007, 06:24 »
0
Gracias por tu resuesta fa61an efectivamente esa era mi duda,
Ademas tengo algunas otras :
1_¿en que archivo encuentras la definicion (nombre) de los registros de micro.?(uso el codewarrior 5.1)
2_¿le puedo asignar por ejemplo un char a la salida ?, es decir si tengo un
char dato[3];
PTB = dato[1];
??? :unsure:

Fianlmente, con concatenar la salida me referia a unir el puerto A con el B en un solo arreglo (para escribir un dato en el total de pines en un solo movimiento). En C hay una funcion llamada strcat, que si no me equivoco pertenece a la lib string.h, esta funcion sirve para unir 2 strings en una. La funcion seria
char *strcat(char *PTB,char *PTA) (la funcion devolveria un puntero a destino (PTB) el cual esta compuesto de PTB U PTA)
luego si por ejemplo el PTB es de 5 bit y el PTA de otros 5 bit  , podria escribir un dato de 10 bit haciendo PTB = dato.

Ahora, no se si esto funciona ya que se relaciona directamente con la primer pregunta  :(

Saludos! Y Desde ya , muchas gracias!!  :D
DdS