Follow along with the video below to see how to install our site as a web app on your home screen.
Nota: This feature currently requires accessing the site using the built-in Safari browser.
dato=read_adc();
delay_us(10);
envia[0]= make8(dato,0);
envia[1]=make8(dato,1);
usb_put_packet(1,envia,2,USB_DTS_TOGGLE); //enviamos el paquete de tamaño 1byte del EP1 al PC**/
set_adc_channel(0);
delay_us(4);
dato=read_adc();
delay_us(10);
parte_baja =(int)dato; // separo la parte baja
parte_alta =(int)((dato& 0x300)>>8); // separa la partealta
envia[0]=parte_baja;
envia[1]=parte_alta;
usb_put_packet(1,envia,2,USB_DTS_TOGGLE); // envia alta y naja
como lo pudiste simularjokelnice gracias a tus aportes y una preguntilla.
En el programa que realizaste: "recibir_datos_cdc_662" cuando lo simulo con proteus y Labview.
En Labview recibo DATO LEIDO:r bytes leidos: 1 , DATO LEIDO:rr bytes leidos: 2,
DATO LEIDO:0 bytes leidos: 0 , así sucesivamente cuando RB0=1.
debe haber algun problema en alguna parteNo entiendo porque recibo el caracter 'r',porque hay veces que los bytes leidos son 2 cuando el micro le programas q te envie el dato de 8 bits.
se debe cargar en proteus el archivo .cof y no el .hex al hacer esto el trabaja con un archivo en donde podemos ver el comportamiento durante la ejecusion para eso se usa el boton de step " al aldo del de correr el codigo " si todo esta bien el parara el circuito y nos mostrara un listado de variables y su valor en ese momento y con respecto al usb se puede ver todo el buffer para ver que datos hay . saludos ....Respecto el analizador usb de proteus donde puedo ver el paquete de envio.
Siento mis duda de inexperto en el bus usb, todos los libros q encuentro estan en ingles.
[IMG]http://i251.photobucket.com/albums/gg284/KiraKamiX/frontpanel1.jpg[/IMG]
[IMG]http://i251.photobucket.com/albums/gg284/KiraKamiX/blockpanel.jpg[/IMG]
/*CONFIGURACION PIC*/
#include "18f4550.h"
#fuses HSPLL,NOWDT,NOBROWNOUT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN,MCLR,NOPBADEN,WRTB
#use delay(clock=48000000) //FREC OSC
#build(reset=0x800, interrupt=0x808)
#org 0x000, 0x7ff { }
#include "usb_cdc.h"
#rom int 0xf00000={1,2,3,4}
void main() {
int8 x, y;
int8 r1, r2, r3, r4, r5, r6, rt1, rt2, rt3;
int8 s1, s2, s3, s4, s5, s6;
set_tris_b(0x00);
output_b(0x00);
usb_cdc_init(); // Configuramos al puerto virtual.
usb_init(); // Inicializamos el stack USB.
while(!usb_cdc_connected()) {}
do{usb_task();
if (usb_enumerated()){
if(usb_cdc_kbhit()){
y=usb_cdc_getc();
x=usb_cdc_getc();
output_b(0x00);
Switch(x)
{
case 0x30:
output_b (0b01110111);
break;
case 0x31:
output_b (0b00010100);
break;
case 0x32:
output_b (0b10110011);
break;
case 0x33:
output_b (0b10110110);
break;
case 0x34:
output_b (0b11010100);
break;
case 0x35:
output_b (0b11100110);
break;
case 0x36:
output_b (0b11100111);
break;
case 0x37:
output_b (0b00110100);
break;
case 0x38:
output_b (0b11110111);
break;
case 0x39:
output_b (0b11110100);
break;
default:
output_b (0b00000000);
}
Switch(y)
{
case 0x30:
output_d (0b01110111);
break;
case 0x31:
output_d (0b00010100);
break;
case 0x32:
output_d (0b10110011);
break;
case 0x33:
output_d (0b10110110);
break;
case 0x34:
output_d (0b11010100);
break;
case 0x35:
output_d (0b11100110);
break;
case 0x36:
output_d (0b11100111);
break;
case 0x37:
output_d (0b00110100);
break;
case 0x38:
output_d (0b11110111);
break;
case 0x39:
output_d (0b11110100);
break;
default:
output_d (0b00000000);
}
rt3 = 0;
r1 = input_a();
r2 = (r1&0xff);
r3 = (r2&0b00000011);
r4 = (r2>>1);
r5 = (r4&0b00001100);
rt1 = (r3|r5);
s1 = input_c();
s2 = (s1&0xff);
s3 = (s2<<4);
s4 = (s3&0b00110000);
s5 = (s2&0b11000000);
rt2 = (s4|s5);
rt3 = (rt1|rt2);
printf(usb_cdc_putc,"%c",rt3);
}
}
}while (TRUE);
}
Si, gracias por el consejo, de hecho ahora estoy trabajando con labview y 2 pic18f4550, uno solo actua como puente y el otro trabaja con un sensor de temperatura, una memoria eeprom, un reloj en tirmpo real, y un driver para controlar un motor con pwm. en cuanto lo tenga al 100, se los mostraré. saludos.bueno el proyectico colega , en cuanto a lo de la escritura o lectura se puede realizar una combinacion en donde el programa le envie una combinacion diferente para que lea escriba etc , seria una de muchas formas