Autor Tema: Interpretación binaria????  (Leído 2532 veces)

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

Desconectado natalia_mouse

  • PIC10
  • *
  • Mensajes: 42
Interpretación binaria????
« en: 08 de Mayo de 2004, 20:04:00 »
Hola a todos... Acudo a ustedes para tener una lluvia de ideas que puedan solucionar mi problemita....
REsulta que con el osciloscopio puedo ver una señal que manda el mouse en protocolo rs-232... yo necesito saber que manda en hexa o algo comestible para simular al misma rafaga... lo único que tengo es la imagen del osciloscopio... Como hago?????
Natalia

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
RE: Interpretación binaria????
« Respuesta #1 en: 08 de Mayo de 2004, 20:19:00 »
Hola Natalia, considero que la imagen que tienes es de la visualizacion de rs232...  entonces, recuerda que un uno es una tension negativa, y un cero es una tension positiva...
recuerda que el primer bit es el de arranque y el ultimo el de parada...  asi que tendrias que tratar de ver que coincida la cuadricula de tu ORC con uno de los bit, para que, por comparacion, si hay por ejemplo 3 unos... veas los 3 cuadritos...
luego, cuando reconozcas los 7 u 8 bits, los escribes en binario, y los pasas con la calculadora cientifica de windows...


comenta como te fue

Norberto
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...

Desconectado Sispic

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1685
    • winpic800
RE: Interpretación binaria????
« Respuesta #2 en: 09 de Mayo de 2004, 01:02:00 »
Un ejemplo de lo que explica Norberto



Buena información
http://govschl.ndsu.nodak.edu/~achapwes/PICmicro/

Quizas en la pagina de microsost encuentres la info que necesita el sistema para qu reconozca un mouse .

suerte.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
RE: Interpretación binaria????
« Respuesta #3 en: 10 de Mayo de 2004, 03:08:00 »
Yo creo que, si bien se puede hacer con el osciloscopio, te será mucho más sencillo si te haces de un software de sniffer de RS232. Podrás incluso volcar a un archivo toda la trama de datos que viaja por el puerto.

He buscado en google y he encontrado este, aunque no lo he probado.

http://www.aggsoft.com/products/serial-port-monitor/serial-port-sniffer.htm

Desconectado Abago

  • PIC24F
  • *****
  • Mensajes: 792
RE: Interpretación binaria????
« Respuesta #4 en: 10 de Mayo de 2004, 13:00:00 »
estoy de acuerdo con la idea de nocturno....
es lo que hasta este momento he hecho yo...

Sniffeas el puerto, y almacenas lo datos en la eeprom del pic....
Y luego a interpretar datos...

en el post hserin&hserout todo un dilema, creado por mi en el subforo de PBP, tienes mucha documentación de como hacerlo....

En uno de los post, que puso Marques, hay un ejemplo de como leer los datos serie, y pintarlos en un lcd...
Solo tendrías que cambiar la salida el lcd, por una escritura en la eeprom.... Y poco mas....

Ya nos contarás.
Un saludo

Desconectado Abago

  • PIC24F
  • *****
  • Mensajes: 792
RE: Interpretación binaria????
« Respuesta #5 en: 10 de Mayo de 2004, 13:02:00 »
se me olvidaba....
tambien puedes tracear los datos serie con el hiperterminal de windows... y verlos en pantalla presentados en modo ascii...

solo tienes que interpretarlos y convertirlos a bin/hex...

Desconectado jca

  • PIC12
  • **
  • Mensajes: 75
RE: Interpretación binaria????
« Respuesta #6 en: 13 de Mayo de 2004, 19:49:00 »
Buenas a todos, yo siempre he programado el pic en asm y la verdad que me parece muy fácil y asi he seguido hasta ahora pero bueno como la gente por aqui sabe programar en diversos lenguajes pues me puesto haber si me entero de algo con el C y me he instalado en el ordenador el PCWH_3.163 no se si será este en el que la gente programa pero bueno con este he empezado yo y bueno que sigo pensando que el asm es muchisimo mas fácil, aparte de todo esto, cacharreando anoche en el programa uno de los ejemplos que trae es el de simular un mouse con pic y bueno como este hilo va de eso pues aqui lo teneis, no se si servirá de algo, yo no me entero ni de lo que pone, pero bueno por si acaso os lo subo y ya está.



 /////////////////////////////////////////////////////////////////////////
////                                                                 ////
////                           EX_MOUSE.C                            ////
////                                                                 ////
//// An example showing how to make a serial mouse using the CCS C   ////
//// compiler.  Your operating system / computer has to be able      ////
//// to use a Microsoft Serial mouse or a Mouse Systems serial       ////
//// mouse.                                                          ////
////                                                                 ////
//// Requires a special CPC cable connected to Port A.               ////
////                                                                 ////
//// Wiring diagram for prototype board:                             ////
//// -----------------------------------------------------------     ////
//// 40 to 53  (Button 40 becomes left mouse button)                 ////
//// 41 to 54  (Button 41 becomes right mouse buttom)                ////
//// 9 to 15   (Pot 9 becomes X movement)                            ////
//// 10 to 16  (Pot 10 becomes Y movement)                           ////
//// 7 to 12   (PC RxD connects to PIC C6 for Xmit of data)          ////
//// 11 to 47  (PC DTR connects to PIC B0 for reset interrupt)       ////
////                                                                 ////
////  This example will work with the PCB, PCM and PCH compilers.    ////
/////////////////////////////////////////////////////////////////////////
////        (C) Copyright 1996,2003 Custom Computer Services         ////
//// This source code may only be used by licensed users of the CCS  ////
//// C compiler.  This source code may only be distributed to other  ////
//// licensed users of the CCS C compiler.  No other use,            ////
//// reproduction or distribution is permitted without written       ////
//// permission.  Derivative programs created using this software    ////
//// in object code form are not restricted in any way.              ////
/////////////////////////////////////////////////////////////////////////


#if defined(__PCB__)
#include <16c56.h>
#device ADC=8
#fuses HS,NOWDT,NOPROTECT
#use delay(clock=20000000)
#use rs232(baud=1200, xmit=PIN_A3, rcv=PIN_A2,errors)  // Jumpers: 11 to 17, 12 to 18

#elif defined(__PCM__)
#include <16F877.h>
#device ADC=8
#fuses HS,NOWDT,NOPROTECT,NOLVP,NOPUT
#use delay(clock=20000000)
#use rs232(baud=1200, xmit=PIN_C6, rcv=PIN_C7,errors)  // Jumpers: 8 to 11, 7 to 12

#elif defined(__PCH__)
#include <18F452.h>
#device ADC=8
#fuses HS,NOPROTECT,NOLVP
#use delay(clock=20000000)
#use rs232(baud=1200, xmit=PIN_C6, rcv=PIN_C7,errors)  // Jumpers: 8 to 11, 7 to 12
#endif

#define MICROSOFT TRUE
#define MOUSE_SYSTEMS FALSE   //not tested.  may not be compatable with Windows

#DEFINE LEFT_BUTTON PIN_B6
#DEFINE RIGHT_BUTTON PIN_B7
#DEFINE MIDDLE_BUTTON PIN_B5

#DEFINE X_CHANNEL 0
#DEFINE Y_CHANNEL 1

struct {
   short int delta;
   short int left;
   short int right;
   short int middle;
   signed int x;
   signed int y;
} mouse;

void clear_all_mouse(void) {
   mouse.delta=0;
   mouse.x=0;
   mouse.y=0;
   mouse.left=0;
   mouse.right=0;
   mouse.middle=0;
}

#int_ext
void reset(void) {
 #if MICROSOFT
   clear_all_mouse();
   putc(0x80|"M");
 #endif
}

void get_data(void) {
   signed int pos;

   if ((input(LEFT_BUTTON))&&(mouse.left)) {mouse.left=0;mouse.delta=1;}
   if ((input(RIGHT_BUTTON))&&(mouse.right)) {mouse.right=0;mouse.delta=1;}
   if ((input(MIDDLE_BUTTON))&&(mouse.middle)) {mouse.middle=0;mouse.delta=1;}

   if ((!input(LEFT_BUTTON))&&(!mouse.left)) {mouse.left=1;mouse.delta=1;}
   if ((!input(RIGHT_BUTTON))&&(!mouse.right)) {mouse.right=1;mouse.delta=1;}
   if ((!input(MIDDLE_BUTTON))&&(!mouse.middle)) {mouse.middle=1;mouse.delta=1;}

   set_adc_channel(X_CHANNEL);
   delay_us(10);
   pos=read_adc() & 0xF8;
   mouse.x=(pos-0x80)/10;

   set_adc_channel(Y_CHANNEL);
   delay_us(10);
   pos=read_adc() & 0xF8;
   mouse.y=(pos-0x80)/10;

   if ((mouse.x)||(mouse.y)) {mouse.delta=1;}
}

void send_data(void) {
#if MICROSOFT
    putc(0xC0 | (mouse.left << 5) | (mouse.right <<4 ) | ((mouse.y >> 4) & 0x0C) | ((mouse.x >> 6) & 0x03));
    putc(0x80 | mouse.x & 0x3F);
    putc(0x80 | mouse.y & 0x3F);
#elif MOUSE_SYSTEMS
   putc(0x80 | (!mouse.left<<2) | (!mouse.middle<<1) | !mouse.right);
   putc(mouse.x);
   mouse.x=0;
   putc(mouse.y);
   mouse.y=0;
   putc(mouse.x);
   putc(mouse.y);
#endif
   mouse.delta=0;
   mouse.x=0;
   mouse.y=0;
}

void main(void) {
   clear_all_mouse();

   setup_adc_ports(RA0_RA1_RA3_ANALOG);
   setup_adc(ADC_CLOCK_DIV_2);
   ext_int_edge(H_TO_L);
   enable_interrupts(int_ext);
   enable_interrupts(global);

   while (TRUE) {
      get_data();
      if (mouse.delta) {send_data();delay_ms(17);}
   }
}


Espero que les sirva. Un saludo.

Desconectado Sispic

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1685
    • winpic800
RE: Interpretación binaria????
« Respuesta #7 en: 16 de Mayo de 2004, 12:33:00 »
Natalia , como andas con el inglis ?

Aquí esta todo lo que el sistema necesita saver de el para reconocer el mouse [conectado al puerto serie].

http://www.softnco.demon.co.uk/SerialMouse.txt

Si tienes dudas intentaremos traducirlo.


 

anything