fbpx

Expresate

Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:

Avisos
Vaciar todo

sin codigo y con equipo completo xD

14 Respuestas
3 Usuarios
0 Reactions
8,173 Visitas
folken20xx
Respuestas: 22
Topic starter
(@folken20xx)
Eminent Member
Registrado: hace 18 años

Bueno ante todo hola!!

soy bastante new y necesito ayuda, tengo un usbI2C para comunicar con una SD21 "controlador de 21 servos" y muchos servos, se programar chorradillas en c++ y esto mirando basic, pero hasta hace un par de meses tenia un codigo que me havia pasado un compi de un foro en c++ y con eso podia transmitir perfectamente y hacerme mis movidiyas y tal pero tuve que formatear y se perdio, el caso es que no consigo contactar con este coleguilla y queria saber si alguno me podria echar un cable, con un codigo o con un tutorial pa empezar a hacerme el mio propio en c++ o en visual basic, aunque mejor en c++ , a ver si alguien me echa un cable gente, un saludo peña!!

Responder
13 respuestas
folken20xx
Respuestas: 22
Topic starter
(@folken20xx)
Eminent Member
Registrado: hace 18 años

Yo lo unico que queria era devolverte el golpe, pero bueno, es la primera vez que posteo y es una bienvenida un poco triste, solo has posteado para decir que no escribo la h? hombre hechame una mano y de paso dime que escribo mal, pero no pierdas el tiempo asi tio, sin malos rollos, lo de copia lo digo por que si pones dark lord en google ...

16.400.000 de dark lord. (0,12 segundos)
2.850 de d4rk l0rd. (0,38 segundos)

a eso me referia 😆 pero bueno dejemos de un lado este comienzo negro y seamos buenos foreros de acuerdo?

Responder
folken20xx
Respuestas: 22
Topic starter
(@folken20xx)
Eminent Member
Registrado: hace 18 años

Bueno el caso es que me puse en contacto con el administrador del foro y al final encontro el codigo que havia posteado este amiguete, el codigo en c++ tras depurarlo un poco, esta operativo de nuevo, el problema era que debido al almacenaje se habian trastocado ciertas cosas, y es este :

Responder
folken20xx
Respuestas: 22
Topic starter
(@folken20xx)
Eminent Member
Registrado: hace 18 años

#include <iostream>;
#include <windows>;

bool IniciarUSB_I2C(char *Puerto);
void EnviarPosicionServo(int numServo, int Posicion, int Velocidad);

int main()
{
IniciarUSB_I2C("COM3");

EnviarPosicionServo(0, 2000, 20);
Sleep(1000);

EnviarPosicionServo(0, 1000, 20);
Sleep(2000);

EnviarPosicionServo(0, 1500, 20);

return 0;
}

//---------------------------------------------------------- -----------------
HANDLE hCom;
DCB dcb;

bool IniciarUSB_I2C(char *Puerto)
{
DCB dcb;
COMMTIMEOUTS ct;

CloseHandle(hCom);
hCom = CreateFile( Puerto, GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0);
if (hCom == INVALID_HANDLE_VALUE) {
std::cout <<"ERROR!!!, no se pudo iniciar el dispositivo en el puerto"<< Puerto<<std::endl;

return false;
}

GetCommState(hCom, &dcb);
dcb.BaudRate = CBR_19200;
dcb.fParity = FALSE;
dcb.fOutxCtsFlow = FALSE;
dcb.fOutxDsrFlow = FALSE;
dcb.fDtrControl = DTR_CONTROL_DISABLE;
dcb.fDsrSensitivity = FALSE;
dcb.fOutX = FALSE;
dcb.fInX = FALSE;
dcb.fRtsControl = RTS_CONTROL_DISABLE;
dcb.fAbortOnError = FALSE;
dcb.ByteSize = 8;
dcb.Parity = NOPARITY;
dcb.StopBits = TWOSTOPBITS;
SetCommState(hCom, &dcb);

GetCommTimeouts(hCom, &ct);
ct.ReadIntervalTimeout = 500;
ct.ReadTotalTimeoutMultiplier =500;
ct.ReadTotalTimeoutConstant = 500;
SetCommTimeouts(hCom, &ct);

SetCommMask(hCom, EV_RXCHAR);

std::cout<<"Dispositivo USB-I2C iniciado"<<std::endl;

return true;
}

//---------------------------------------------------------- -----------------
void EnviarPosicionServo(int numServo, int Posicion, int Velocidad)
{
const BYTE I2C_CMD = 0x55;
BYTE buffer[7] = {
I2C_CMD, 0xC2, numServo*3, 3, Velocidad, LOBYTE(Posicion), HIBYTE(Posicion) };
DWORD n;
if (!WriteFile(hCom, &buffer, 7, &n, NULL)) {
std::cout<<"ERROR!!!, fallo de comunicación al enviar posición"<<std::endl;
return;
}
ReadFile(hCom, &buffer, 1, &n, NULL);
}

Responder
folken20xx
Respuestas: 22
Topic starter
(@folken20xx)
Eminent Member
Registrado: hace 18 años

es un ejemplo, pero aora quiero preguntar algo, como es la sintaxis del comando en c++ para que cuando presiones una tecla aga algo al instante, algo asi... :

if (keychar = "n") {
pos = pos+1;
}

pero no se si era keychar, no me acuerdo, el caso es que si durante la ejecucion del programa presionavas n sumaba 1 a pos... sabeis como es la sintaxis, evidentemente esta condicionante esta integrada en un bucle y con todas sus variables declaradas y demas.

gracias por adelantado

Responder
l0rd_d4rk
Respuestas: 99
(@l0rd_d4rk)
Trusted Member
Registrado: hace 19 años

Pues perdona por empezar mal, tienes razón que no es forma de dar la bienvenida, como pacto de paz te dejo esto#include <stdio>

int main()
{
char nombre[20]="";
int i;

printf( "Elige el numero en el menu:nn" );
printf( "1 - Cargar ficheron" );
printf( "2 - Guardar en un ficheron" );
printf( "3 - Otras operacionesn" );
printf( "4 - Mostrar datosn" );
printf( "0 - Salirnn" );
printf( "Opcion: " );
printf( "nHas elegido: %c", getchar() );

return 0;
}

básicamente la función que buscas es getchar()

Responder
Página 2 / 3
Compartir: