|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - Geo
Páginas: 1 ... 7 8 [9] 10 11 ... 41
201
« en: Domingo 26 de Octubre de 2008, 00:25 »
No está permitido hablar ni publicar enlaces a descargas de programas sin licencia.
202
« en: Domingo 26 de Octubre de 2008, 00:22 »
scanf es más potente de lo que parece . Una opción sería leer el archivo línea por línea con fgetl, y darle formato con sscanf: % Da formato a la línea A = sscanf( linea, 'X%6dY%6d*') % Separa en los vectores X y Y X( numLinea ) = A( 1 ); Y( numLinea ) = A( 2 );
Así trabajarías línea por línea e irías llenando los vectores X y Y. Otra opción, es con fscanf, puedes ir paso a paso o leer todo el archivo de un solo golpe: % Abre archivo f = fopen( 'solocodigo.txt', 'rt' ); % Lee todos los valores numéricos a un vector [ A vals ] = fscanf( f, 'X%6dY%6d*n' ) fclose( f );
En este caso, todos los valores numéricos del archivo quedan guardados en el vector columna A, ya de ahí puedes separarlos. Pero bueno, MATLAB ya cuenta con una forma de conseguir justo lo que quieres: textscan % Abre archivo f = fopen( 'solocodigo.txt', 'rt' ); % Lee datos con el formato indicado y los coloca en la celda C C = textscan( f, 'X%6dY%6d*' ); % Cierra el archivo fclose( f ); % Asigna vectores X y Y de la celda X = C{1}'; Y = C{2}';
Te recomiendo trabajar con esta última opción, la cual es muy potente y te ahorra mucho trabajo . Aún asi, tengo los códigos completos para las dos primeras (con sscanf y fscanf), son sencillas pero ocupan mucho espacio , por si los quieres solo pídelos. Suerte .
203
« en: Viernes 24 de Octubre de 2008, 14:07 »
A mi parecer el disco está dañado (no puede leer el archivo), prueba con otro que ya haya sido probado .
204
« en: Viernes 24 de Octubre de 2008, 01:09 »
Si se puede, de hecho con cualquier archivo: winopen( 'miarchivo.xls' );
(el resultado es como si hicieras doble clic sobre el archivo) También puedes usar la función system.
205
« en: Lunes 20 de Octubre de 2008, 06:19 »
Yo he probado con éxito las versiones 2007 en Windows Vista. MATLAB es un programa comercial, en el sitio de Mathworks se puede solicitar versiones de prueba de sus productos pero no están disponibles para estudiantes :s.
206
« en: Sábado 18 de Octubre de 2008, 22:31 »
Cabe aclarar que no se trata de un programa sino de una biblioteca orientada a la visión computacional, escrita en C y con algunas clases C++. Veo difícil se cree un foro para discutir sobre una biblioteca y no un lenguaje o programa más completo, aún así apoyo la moción (aprovechando que me reconecto al foro ). Saludos, José Jorge.
207
« en: Sábado 18 de Octubre de 2008, 22:11 »
Qué tal, el problema para compilar en CCS debe ser por el archivo "prueba_cdc.h", pensé que lo había comentado, simplemente puedes tomar el archivo "usb_desc_cdc.h" dentro de la instalación de CCS, o usa este: /////////////////////////////////////////////////////////////////////////// //// usb_desc_cdc.h //// //// //// //// An example set of device / configuration descriptors for use with //// //// CCS's CDC Virtual COM Port driver (see usb_cdc.h) //// //// //// //// Two examples are provided: //// //// ex_usb_serial.c //// //// ex_usb_serial2.c //// //// //// /////////////////////////////////////////////////////////////////////////// //// //// //// Version History: //// //// //// //// 10/28/05: //// //// Bulk endpoint sizes updated to allow more than 255 byte //// //// packets. //// //// Changed device to USB 1.10 //// //// //// /////////////////////////////////////////////////////////////////////////// //// (C) Copyright 1996,2005 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. //// /////////////////////////////////////////////////////////////////////////// #IFNDEF __USB_DESCRIPTORS__ #DEFINE __USB_DESCRIPTORS__ #include <usb.h> ////////////////////////////////////////////////////////////////// /// /// start config descriptor /// right now we only support one configuration descriptor. /// the config, interface, class, and endpoint goes into this array. /// ////////////////////////////////////////////////////////////////// #DEFINE USB_TOTAL_CONFIG_LEN 67 //config+interface+class+endpoint+endpoint (2 endpoints) const char USB_CONFIG_DESC[] = { //IN ORDER TO COMPLY WITH WINDOWS HOSTS, THE ORDER OF THIS ARRAY MUST BE: // config(s) // interface(s) // class(es) // endpoint(s) //config_descriptor for config index 1 USB_DESC_CONFIG_LEN, //length of descriptor size ==0 USB_DESC_CONFIG_TYPE, //constant CONFIGURATION (CONFIGURATION 0x02) ==1 USB_TOTAL_CONFIG_LEN,0, //size of all data returned for this config ==2,3 2, //number of interfaces this device supports ==4 0x01, //identifier for this configuration. (IF we had more than one configurations) ==5 0x00, //index of string descriptor for this configuration ==6 0xC0, //bit 6=1 if self powered, bit 5=1 if supports remote wakeup (we don't), bits 0-4 unused and bit7=1 ==7 0x32, //maximum bus power required (maximum milliamperes/2) (0x32 = 100mA) ==8 //interface descriptor 0 (comm class interface) USB_DESC_INTERFACE_LEN, //length of descriptor =9 USB_DESC_INTERFACE_TYPE, //constant INTERFACE (INTERFACE 0x04) =10 0x00, //number defining this interface (IF we had more than one interface) ==11 0x00, //alternate setting ==12 1, //number of endpoints ==13 0x02, //class code, 02 = Comm Interface Class ==14 0x02, //subclass code, 2 = Abstract ==15 0x01, //protocol code, 1 = v.25ter ==16 0x00, //index of string descriptor for interface ==17 //class descriptor [functional header] 5, //length of descriptor ==18 0x24, //dscriptor type (0x24 == ) ==19 0, //sub type (0=functional header) ==20 0x10,0x01, // ==21,22 //cdc version //class descriptor [acm header] 4, //length of descriptor ==23 0x24, //dscriptor type (0x24 == ) ==24 2, //sub type (2=ACM) ==25 2, //capabilities ==26 //we support Set_Line_Coding, Set_Control_Line_State, Get_Line_Coding, and the notification Serial_State. //class descriptor [union header] 5, //length of descriptor ==27 0x24, //dscriptor type (0x24 == ) ==28 6, //sub type (6=union) ==29 0, //master intf ==30 //The interface number of the Communication or Dat a Cl ass interface, designated as the masteror controlling interface for the union. 1, //save intf0 ==31 //Interface number of first slave or associated interface in the union. * //class descriptor [call mgmt header] 5, //length of descriptor ==32 0x24, //dscriptor type (0x24 == ) ==33 1, //sub type (1=call mgmt) ==34 0, //capabilities ==35 //device does not handle call management itself 1, //data interface ==36 //interface number of data class interface //endpoint descriptor USB_DESC_ENDPOINT_LEN, //length of descriptor ==37 USB_DESC_ENDPOINT_TYPE, //constant ENDPOINT (ENDPOINT 0x05) ==38 USB_CDC_COMM_IN_ENDPOINT | 0x80, //endpoint number and direction 0x03, //transfer type supported (0x03 is interrupt) ==40 USB_CDC_COMM_IN_SIZE,0x00, //maximum packet size supported ==41,42 250, //polling interval, in ms. (cant be smaller than 10) ==43 //interface descriptor 1 (data class interface) USB_DESC_INTERFACE_LEN, //length of descriptor =44 USB_DESC_INTERFACE_TYPE, //constant INTERFACE (INTERFACE 0x04) =45 0x01, //number defining this interface (IF we had more than one interface) ==46 0x00, //alternate setting ==47 2, //number of endpoints ==48 0x0A, //class code, 0A = Data Interface Class ==49 0x00, //subclass code ==50 0x00, //protocol code ==51 0x00, //index of string descriptor for interface ==52 //endpoint descriptor USB_DESC_ENDPOINT_LEN, //length of descriptor ==60 USB_DESC_ENDPOINT_TYPE, //constant ENDPOINT (ENDPOINT 0x05) ==61 USB_CDC_DATA_OUT_ENDPOINT, //endpoint number and direction (0x02 = EP2 OUT) ==62 0x02, //transfer type supported (0x02 is bulk) ==63 // make8(USB_CDC_DATA_OUT_SIZE,0),make8(USB_CDC_DATA_OUT_SIZE,1), //maximum packet size supported ==64, 65 USB_CDC_DATA_OUT_SIZE & 0xFF, (USB_CDC_DATA_OUT_SIZE >> 8) & 0xFF, //maximum packet size supported ==64, 65 250, //polling interval, in ms. (cant be smaller than 10) ==66 //endpoint descriptor USB_DESC_ENDPOINT_LEN, //length of descriptor ==53 USB_DESC_ENDPOINT_TYPE, //constant ENDPOINT (ENDPOINT 0x05) ==54 USB_CDC_DATA_IN_ENDPOINT | 0x80, //endpoint number and direction (0x82 = EP2 IN) ==55 0x02, //transfer type supported (0x02 is bulk) ==56 // make8(USB_CDC_DATA_IN_SIZE,0),make8(USB_CDC_DATA_IN_SIZE,1), //maximum packet size supported ==57, 58 USB_CDC_DATA_IN_SIZE & 0xFF, (USB_CDC_DATA_IN_SIZE >> 8) & 0xFF, //maximum packet size supported ==64, 65 250, //polling interval, in ms. (cant be smaller than 10) ==59 }; //****** BEGIN CONFIG DESCRIPTOR LOOKUP TABLES ******** //since we can't make pointers to constants in certain pic16s, this is an offset table to find // a specific descriptor in the above table. //the maximum number of interfaces seen on any config //for example, if config 1 has 1 interface and config 2 has 2 interfaces you must define this as 2 #define USB_MAX_NUM_INTERFACES 2 //define how many interfaces there are per config. [0] is the first config, etc. const char USB_NUM_INTERFACES[USB_NUM_CONFIGURATIONS]={2}; //define where to find class descriptors //first dimension is the config number //second dimension specifies which interface //last dimension specifies which class in this interface to get, but most will only have 1 class per interface //if a class descriptor is not valid, set the value to 0xFFFF const int16 USB_CLASS_DESCRIPTORS[USB_NUM_CONFIGURATIONS][USB_MAX_NUM_INTERFACES][4]= { //config 1 //interface 0 //class 1-4 18,23,27,32, //interface 1 //no classes for this interface 0xFFFF,0xFFFF,0xFFFF,0xFFFF }; #if (sizeof(USB_CONFIG_DESC) != USB_TOTAL_CONFIG_LEN) #error USB_TOTAL_CONFIG_LEN not defined correctly #endif ////////////////////////////////////////////////////////////////// /// /// start device descriptors /// ////////////////////////////////////////////////////////////////// const char USB_DEVICE_DESC[USB_DESC_DEVICE_LEN] ={ //starts of with device configuration. only one possible USB_DESC_DEVICE_LEN, //the length of this report ==0 0x01, //the constant DEVICE (DEVICE 0x01) ==1 0x10,0x01, //usb version in bcd ==2,3 0x02, //class code. 0x02=Communication Device Class ==4 0x00, //subclass code ==5 0x00, //protocol code ==6 USB_MAX_EP0_PACKET_LENGTH, //max packet size for endpoint 0. (SLOW SPEED SPECIFIES 8) ==7 0xD8,0x04, //vendor id (0x04D8 is Microchip) 0x0A,0x00, //product id 0x00,0x01, //device release number ==12,13 0x01, //index of string description of manufacturer. therefore we point to string_1 array (see below) ==14 0x02, //index of string descriptor of the product ==15 0x00, //index of string descriptor of serial number ==16 USB_NUM_CONFIGURATIONS //number of possible configurations ==17 }; ////////////////////////////////////////////////////////////////// /// /// start string descriptors /// String 0 is a special language string, and must be defined. People in U.S.A. can leave this alone. /// /// You must define the length else get_next_string_character() will not see the string /// Current code only supports 10 strings (0 thru 9) /// ////////////////////////////////////////////////////////////////// //the offset of the starting location of each string. offset[0] is the start of string 0, offset[1] is the start of string 1, etc. char USB_STRING_DESC_OFFSET[]={0,4,12}; char const USB_STRING_DESC[]={ //string 0 4, //length of string index USB_DESC_STRING_TYPE, //descriptor type 0x03 (STRING) 0x09,0x04, //Microsoft Defined for US-English //string 1 8, //length of string index USB_DESC_STRING_TYPE, //descriptor type 0x03 (STRING) 'I',0, 'T',0, 'O',0, //string 2 --> nombre del dispositivo 30, //length of string index USB_DESC_STRING_TYPE, //descriptor type 0x03 (STRING) 'I',0, 'T',0, 'O',0, ' ',0, 'C',0, 'O',0, 'M',0, ' ',0, 'V',0, 'r',0, 't',0, 'u',0, 'a',0, 'l',0 }; #ENDIF
Al momento de conectar el dispositivo al puerto USB, se pide la instalación del mismo, basta con proporcionar un archivo .inf con la información adecuada, este lo encuentras entre las utilidades que proporciona Microchip, por cualquier cosa adjunto el que yo usé, básicamente es el mismo de Microchip con muy pequeñas modificaciones: ; Windows USB CDC ACM Setup File ; Copyright (c) 2000 Microsoft Corporation ; Copyright (C) 2004 Microchip Technology Inc. [Version] Signature="$Windows NT$" Class=Ports ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318} Provider=%MCHP% LayoutFile=layout.inf DriverVer=08/17/2001,5.1.2600.0 [Manufacturer] %MFGNAME%=DeviceList [DestinationDirs] DefaultDestDir=12 [SourceDisksFiles] [SourceDisksNames] [DeviceList] %DESCRIPTION%=DriverInstall, USBVID_04D8&PID_000A ;------------------------------------------------------------------------------ ; Windows 2000/XP Sections ;------------------------------------------------------------------------------ [DriverInstall.nt] CopyFiles=DriverCopyFiles AddReg=DriverInstall.nt.AddReg [DriverCopyFiles] usbser.sys,,,0x20 [DriverInstall.nt.AddReg] HKR,,DevLoader,,*ntkern HKR,,NTMPDriver,,usbser.sys HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider" [DriverInstall.nt.Services] AddService=usbser, 0x00000002, DriverService [DriverService] DisplayName=%SERVICE% ServiceType=1 StartType=3 ErrorControl=1 ServiceBinary=%12%usbser.sys ;------------------------------------------------------------------------------ ; String Definitions ;------------------------------------------------------------------------------ [Strings] MCHP="Microchip Technology Inc." MFGNAME="Microchip Technology Inc." DESCRIPTION="Puerto virtual de comunicaciones" SERVICE="Controlador de emulación RS-232 USB"
Saludos, espero sea de utilidad .
208
« en: Jueves 7 de Agosto de 2008, 05:56 »
Claro que se puede, simplemente hay que hacer la implementación de la comunicación "en software". Supongo que es lo adecuado pues es el PIC que se menciona se utilizará, aunque siempre conviene tratar de enfocarse en el punto principal del proyecto y obviar las demás partes si se tienen disponibles, en el caso de la comunicación RS-232, si cuentas ya con el código para implementarla "en software" con el 16F84, adelante .
209
« en: Miércoles 6 de Agosto de 2008, 19:33 »
Si vas a conectarte con una PC sería más conveniente el uso de un PIC16F628 que ya cuenta con módulo de comunicación serie y puedes conectarlo a algún puerto de la PC adaptando los niveles de voltaje (por ejemplo con un integrado MAX232). Con el PIC lees los botones de la guitarra y envías la información de estado de los mismos (presionado o no) a la PC, en la PC tu aplicación o "juego" recibe estos datos y los interpreta para las acciones en el juego.
Suerte.
210
« en: Martes 5 de Agosto de 2008, 06:14 »
OpenGL es una biblioteca para aplicaciones gráficas. SDL es una biblioteca para aplicaciones multimedia, incluye, además de funciones para gráficos, funciones para entrada del usuario (teclado, joystick), salida de audio, red, entre otra.
OpenGL es más eficiente en el manejo de gráficos al hacer uso de la aceleración por hardware, es algo común utilizar una combinación de ambas.
211
« en: Miércoles 16 de Julio de 2008, 07:50 »
Más viable: el que más dominen en este momento, es sencillo: evalúa el tipo de interfaz y/o recursos gráficos que pretendes utilizar, pregunta a quienes te van a ayudar si han hecho cosas similares, y ahí está, úsalo.
212
« en: Domingo 13 de Julio de 2008, 19:13 »
Jaja, mi respuesta era para toñovolador , ¿ven porqué hay que crear mensajes nuevos? ¿Algún moderador que pueda arreglar esto?
213
« en: Domingo 13 de Julio de 2008, 08:07 »
Hubiera sido mejor que crearas un nuevo mensaje.
Para contestarte, te recomendaría que comentaras sobre tu experiencia en cuanto a lenguajes de programación, y quizá el tipo de proyecto y tiempo disponible para llevar a cabo el desarrollo...
214
« en: Jueves 10 de Julio de 2008, 01:51 »
¿? Primero lo primero: la extensión de un archivo es sólo eso: su extensión. Que haya extensiones "comunes" o "establecidas" para formatos de archivos conocidos no significa que todos los archivos con cierta extensión tendrán el mismo formato. En concreto, de donde descargaste tus archivos, probablemente también mencionen el formato de los mismos, si no, ábrelos con un editor para averiguarlo. Ya conociendo el formato del archivo, entonces puedes hacer uso de las funciones de MATLAB para lectura de archivos para poder cargar los datos y manipularlos, aquí puedes preguntar al respecto .
215
« en: Lunes 7 de Julio de 2008, 19:01 »
Pondera los datos de acuerdo a la escala que desees. Por ejemplo, puedes expresarlos en porcentaje: valor_a_graficar = ( amplitud_original * 100 ) / amplitud_mayor;
216
« en: Lunes 7 de Julio de 2008, 09:27 »
Es posible inciar mi web cam- y grabar lo que filma? No necesito hacer el programa para verlo solamente grabar. Y es posible que el programa se ejecute sin aparecer? es miuy comlicado!
Si es posible. ¿Complicado? Depende de la biblioteca (librería) que pretendas utilizar. Necesitas dos cosas, capturar la webcam y guardar a un archivo. Para la captura, en Windows están disponibles VFW (Video For Windows) y DirectShow. VFW no es muy complicada, DirectShow si, si es que no has usado nunca antes algo relacionado con DirectX. De cualquier forma, hay otras librerías que encapsulan el uso de, por ejemplo, DirectShow, para conexión con una webcam, inclusive con funciones para guardar el stream de video, una búsqueda en Google te puede ayudar a encontrarlas .
217
« en: Martes 1 de Julio de 2008, 07:21 »
Hola a todos! ¿Es una buena elección aprender C/C++ si quiero participar en creación de juegos para PC como DOOM, Crysis y etc...?
No es una buena elección, es LA elección (C++). Me he decepcionado de la maquina virtual de AS3.Es una lastima que el codigo lo permite casi todo respeto a graficos,pero la ACME no. De aquí en adelante,quiero apostar por un lenguaje de programación con el cual la única limitación en rendimiento serían la potencia de la computadora y mis errores a la hora de programar.
Un juego puede ser realizado en cualquier lenguaje de programación, el rendimiento es el que puede variar. ¿Me podeis dar algún ejemplo de un juego muy molon hecho con C/C++?
Piensa en cualquier juego comercial que te guste. Para cada distinto sistema operativo,¿tengo que cambiar todo el código o tan solo pequeños cambios y el compilador?
En cuanto al lenguaje en si, pocas cosas (dependiendo del compilador), pero para videojuegos se hace uso de diferentes bibliotecas, las cuales pueden o no ser multiplataforma. ¿En cuánto tiempo record se puede aprender programar en C/C++ a nivel medio? Si no es C/C++ lo que necesito,¿quál lenguaje de programación necesito? Ya no quiero malgastar más tiempo,quiero apostar esa vez a algo que funcione,que es compatible y que persista durante mucho tiempo en su versión actual(o al menos si cambia que no cambie mucho).
Aprender no es pérdida de tiempo. Con C/C++ tendrás una curva de aprendizaje más grande que con otros lenguajes, tienes que evaluar más específicamente qué es lo que quieres. Repito, con cualquier lenguaje es posible hacer un videojuego, lo que se necesita es eso precisamente: HACERLO.
218
« en: Domingo 22 de Junio de 2008, 20:24 »
El foro luce excelente, de esos cambios que impactan positivamente a primera vista, ya iremos acostumbrándonos . Wall-e? Mmmm, nombres, nombres... Codi, Hacky, Code5, Mall-e , AppWiz, CodeOn... no soy bueno para esto .
219
« en: Domingo 15 de Junio de 2008, 20:05 »
MATLAB no tiene funciones para guardar las gráficas: http://foros.solocodigo.com/index.php?showtopic=34840&hl=Si sólo quieres guardar capturas manualmente, puedes hacerlo desde el menú de la ventana de la gráfica. Otra opción sería crear una imagen y dibujar la gráfica sobre ella para luego guardarla .
220
« en: Domingo 15 de Junio de 2008, 19:50 »
Hay varias alternativas, una sería manejar directamente los datos de Excel, busca en la ayuda de MATLAB "excel", te saldrán dos temas que seguro te servirán: "Reading data from Excel" e "Importing data from an Excel application".
Otra forma, podrías exportar tus hojas de cálculo a archivos separados por comas, utilizar las funciones de matlab para lectura de archivos y crear una rutina que lea el archivo y cargue los datos a partir del mismo.
Suerte.
221
« en: Domingo 15 de Junio de 2008, 19:39 »
,Junio 14, 2008 01:37 am]estoy programando en C++ pero usando el IDE de borland... ese azul en formato MSDOS... pero esa libreria que dices (cstdlib) no existe... bueno, no me la reconoce en verdad no tengo idea de como lograr eso de borrar la pantalla... Ese compilador es viejo, no incluye la función que estás intentando utilizar. Lo que si veo, ya que usas ese compilador, pues utiliza las funciones que tienes a tu disposición de la biblioteca conio, o cámbiate a algo más reciente, las versiones Express .NET de los compiladores de Microsoft son gratuitas . Una alternativa para que luego compiles tu código en otras plataformas podría ser algo como esto: #ifdef BORLAND_DOS #define limpia_pantalla clrscr(); #ifdef WINDOWS #define limpia_pantalla system( "cls" ); #ifdef LINUX #define limpia_pantalla system( "clear" );
Así, en cada lugar donde desees limpiar la pantalla llamas a la función limpia_pantalla, la cual se define de acuerdo al sistema que estés utilizando, a lo que esto te ayuda es a que no se necesite editar el código para compilar en otra plataforma, recuerda enlazar con la biblioteca adecuada . Nota: ese código es incorrecto, faltan las sentencias #endif para cerrar los #ifdef y quizá podría hacerse de otra forma, pero la idea se entiende .
222
« en: Domingo 15 de Junio de 2008, 19:28 »
Esto es demasiado...
Pues simplemente agrega el código para mostrar lo que quieres justo después del código que muestra el mensaje de validación de contraseña.
223
« en: Domingo 15 de Junio de 2008, 19:18 »
Qué tal, a continuación pongo el código que utilicé para probar la comunicación utilizando la clase CDC (Communication Device Class). Este es el código del PIC, utilizando el compilador de la empresa CCS: #include <18F2550.h> #fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL3,CPUDIV1,VREGEN #use delay(clock=48000000) #include "usb_cdc.h" #include "prueba_cdc.h" void main() { char c; // Un retardo de espera delay_ms(300); // Configuración del USB usb_cdc_init(); usb_init(); // Mientras el dispositivo no sea // reconocido, parpadear los leds while(!usb_cdc_connected()) { output_high( PIN_B6 ); output_low( PIN_B7 ); delay_ms( 200 ); output_low( PIN_B6 ); output_high( PIN_B7 ); delay_ms( 200 ); } // Dispositivo reconocido // apaga los leds output_low( PIN_B6 ); output_low( PIN_B7 ); // Ciclo principal do { usb_task(); // Si el dispositivo se encuentra enumerado por // el sistema operativo if ( usb_enumerated() ) { // Si hay datos en el búfer if ( usb_cdc_kbhit() ) { // Lee el dato en el búfer c = usb_cdc_getc(); // Ejecuta acción de acuerdo // al valor leído switch( c ) { // Apaga los LEDs case '1': output_low( PIN_B6 ); output_low( PIN_B7 ); break; // Enciende el led verde case '2': output_high( PIN_B6 ); output_low( PIN_B7 ); break; // Enciende el led rojo case '3': output_low( PIN_B6 ); output_high( PIN_B7 ); break; // Código desconocido, envía el mensaje // y parpadea los leds un par de ocasiones. default: printf( usb_cdc_putc, "Código desconocido" ); output_high( PIN_B6 ); output_low( PIN_B7 ); delay_ms( 500 ); output_low( PIN_B6 ); output_high( PIN_B7 ); delay_ms( 500 ); output_low( PIN_B6 ); output_low( PIN_B7 ); } } } } while (TRUE); }
En MATLAB; probando en la línea de comandos: Asigna el puerto virtual >> s = serial( 'COM3' ) Serial Port Object : Serial-COM3 Communication Settings Port: COM3 BaudRate: 9600 Terminator: 'LF'
Communication State Status: closed RecordStatus: off
Read/Write State TransferStatus: idle BytesAvailable: 0 ValuesReceived: 0 ValuesSent: 0 Abre el puerto >> fopen( s ) Envía datos Apaga los LEDs >> fprintf( s, '%c', '1' ) Enciende el led verde >> fprintf( s, '%c', '2' ) Enciende el led rojo >> fprintf( s, '%c', '3' )
Envía un código no reconocido >> fprintf( s, '%c', '5' ) >> fscanf( s ) Warning: A timeout occurred before the Terminator was reached.
ans =
Código desconocido
>> Espero les sea de utilidad .
224
« en: Viernes 23 de Mayo de 2008, 01:07 »
También puedes descargar la versión 2008, la cual si incluye el SDK.
225
« en: Miércoles 21 de Mayo de 2008, 06:04 »
Utiliza dos ciclos for para recorrer la matriz, uno para filas y el otro para las columnas. Más o menos así:
para cada fila para cada columna si matriz[ fila ][ columna ] no es igual a matriz[ fila ][ columna ] bandera <= falso
si bandera es falso la matriz no es simétrica de otra forma la matriz es simétrica
Aquí no se hacen tareas, intenta hacer el programa y pregunta una duda más específica. Ese ejercicio deberías poder sacarlo leyendo un libro de C/C++ en el apartado dedicado a los arreglos/matrices.
Páginas: 1 ... 7 8 [9] 10 11 ... 41
|
|
|