Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

17/06/2009 #441

Avatar de Moyano Jonathan

El control de 8 reles yo lo puse en post anteriores.
18/06/2009 #442


si pero el que hiciste es para el pic 18f2550 y yo lo quiero poner para el 18f4550.
18/06/2009 #443

Avatar de Moyano Jonathan

Es lo mismo tenés que cambiar el encabezado en la librería del micro y volver a compilar el programa.
18/06/2009 #444


hola moyano
eso es lo que trato hacer, cambio la libreria del pic y cuando lo intento compilar en CCS C me sale un error.
el error esta en la siguiente imagen. la verdad no se que sea.



y no se como corregirlo

espero y me ayuden

saludos
18/06/2009 #445


el error es en la libreria pic18_usb.h y me dice esto "expression must evaluate to a constant"

espero y me ayuden
saludos
18/06/2009 #446

Avatar de Moyano Jonathan

Me parece que puede ser debido a un error del compilador, en todo caso postea tu programa así lo compilo y veo cuál es el problema.
19/06/2009 #447


hola que tal.
el programa viene siendo el mismo que publicaste en el control de 8 reles. lo unico que cambia es el #include<18f4550.h>


Código:
#include <18F4550.h> // Definición de registros internos.
#fuses HSPLL,MCLR,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN,NOPBADEN
// Fuses utilizados:
/*
HSPLL: utilizamos un cristal HS de alta velocidad, en conjunto con el PLL para generar los 48Mhz.
MCLR: Utilizamos reset por hardware.
NOWDT: No utilizamos el perro guardían.
NOPROTECT: Desactivamos la protección de código.
NOLVP: Desactivamos la programación a bajo voltaje.
NODEBUG: No entramos al modo debug.
USBDIV: signfica que el clock del usb se tomará del PLL/2 = 96Mhz/2 = 48Mhz.
PLL5: significa que el PLL prescaler dividirá en 5 la frecuencia del cristal. para HS = 20Mhz/5 = 4Mhz.
CPUDIV1: El PLL postscaler decide la división en 2 de la frecuencia de salida del PLL de 96MHZ, si queremos 48MHZ, lo dejamos como está.
VREGEN: habilita el regulador de 3.3 volts que usa el módulo USB.
NOPBADEN: No utilizaremos el módulo de entradas análógicas del puerto B.
*/
#use delay(clock=48000000) // Frecuencia máxima de trabajo 48 Mhz.
#include "usb_cdc.h" // Descripción de funciones del USB.
#include "usb_desc_cdc.h" // Descriptores del dispositivo USB.

// Funciones que indican el estado de la  conexión usb.
void usb_conectado(void) {
output_high(PIN_A0);
output_low(PIN_A1);
}
void usb_desconectado(void) {
output_high(PIN_A1);
output_low(PIN_A0);
}
void usb_enumerado(void) {
output_high(PIN_A2);
}

// Programa principal:

void main() {
set_tris_a(0x00); // Configura al puerto A y al puerto B como salida.
set_tris_b(0x00);

// Configuraciones varias.
setup_adc_ports(NO_ANALOGS|VSS_VDD);
   setup_adc(ADC_OFF);
   setup_spi(SPI_SS_DISABLED);
   setup_wdt(WDT_OFF);
   setup_timer_0(RTCC_INTERNAL);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_timer_3(T3_DISABLED|T3_DIV_BY_1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);

// Iniciamos el USB.
usb_cdc_init(); // Funciones necesarias para iniciar el módulo USB.
usb_init(); // Funciones necesarias para iniciar el módulo USB.
while(!usb_cdc_connected()) { // Mientras el USB no esté conectado.
usb_desconectado();
}
usb_conectado();
do{
usb_task();
      if (usb_enumerated()){ // Si el puerto ya fue enumerado por el host :
      usb_enumerado(); // Enciende led de enumeración_OK.
      if(usb_cdc_kbhit()){ // en espera de nuevo(s) caracter(es) en el buffer.
        if(usb_cdc_getc()=='1'){ // ¿lo que llegó fué el caracter 1?
              output_toggle(PIN_B0); // Conmuta el estado del relé 1.
                   }
        if(usb_cdc_getc()=='2'){ // ¿lo que llegó fué el caracter 2?
              output_toggle(PIN_B1); // Conmuta el estado del relé 2.
                   }
        if(usb_cdc_getc()=='3'){ // ¿lo que llegó fué el caracter 3?
              output_toggle(PIN_B2); // Conmuta el estado del relé 3.
                   }
        if(usb_cdc_getc()=='4'){ // ¿lo que llegó fué el caracter 4?
              output_toggle(PIN_B3); // Conmuta el estado del relé 4.
                   }
        if(usb_cdc_getc()=='5'){ // ¿lo que llegó fué el caracter 5?
              output_toggle(PIN_B4); // Conmuta el estado del relé 5.
                   }
        if(usb_cdc_getc()=='6'){ // ¿lo que llegó fué el caracter 6?
              output_toggle(PIN_B5); // Conmuta el estado del relé 6.
                   }
        if(usb_cdc_getc()=='7'){ // ¿lo que llegó fué el caracter 7?
              output_toggle(PIN_B6); // Conmuta el estado del relé 7.
                   }
        if(usb_cdc_getc()=='8'){ // ¿lo que llegó fué el caracter 8?
              output_toggle(PIN_B7); // Conmuta el estado del relé 8.
                   }
           }
      }
   }while (TRUE); // bucle eterno
}
que crees que sea el error que me aparece?
el programa lo quiero para controlar un brazo robotico con 4 motores y sus respectivos puentes H.

saludos
20/06/2009 #448

Avatar de Moyano Jonathan

Entonces definitivamente es problema del compilador. Acá está tu programa compilado con la versión 4.023 del compilador de CCS.


PD: Esta versión del programa a mi me presento un par de errores, yo más adelante postee una versión que utilizaba el protocolo HID que funciona sin problemas.
Archivos Adjuntos
Tipo de Archivo: rar prueba_212.rar (5,6 KB (Kilobytes), 294 visitas)
20/06/2009 #449

Avatar de Moyano Jonathan

Para todos pronto voy a postear la proxima actualizacion del manual, que ya cuenta con casi 100 paginas
20/06/2009 #450

Avatar de EinSoldiatGott

Saludos a todos.

Hice el ejercicio del emulador de RS-232, pero me surge una duda de como funciona a bajo nivel, pues en el USB, el periférico no puede enviar a menos que el HOST haga una petición.

En el serial, si lo hace, entonces, acaso el USB esta en un bucle donde infinitamente envía peticiones al periférico, para emular al RS-232 full duplex? Es que me parece que eso consume algo de recursos :-s.

Por cierto, cuál es el baudate máximo que podemos seleeccionar para el Com creado?

Un saludo y gracias
21/06/2009 #451

Avatar de Moyano Jonathan

Si la transferencia de datos se hace por ping pong donde continuamente se piden datos tanto desde el host como por parte del dispositivo.

La velocidad máxima con el COM creado son 115Kbs , pero no estoy seguro que la comunicación sea muy estable a esa velocidad, habría que hacer la prueba.
26/06/2009 #452


Hola Moyano, felicidades por el gran trabajo que haz venido realizando con esto del usb, tu guia promete mucho, no puedo esperal a verla terminada.

En fin, hace unos dias empece a realizar los ejercicios que posteas en el foro, desafortunadamente me he quedado estancado en el ejercicio 1, todo parecia ir muy bien, al conectar el cable usb, la computadora reconocia el dispositivo y todo, pero al indicarle la carpeta donde instalar el driver mchpcdc.inf, windows no lo reconocia y no se instalaba . He seguido tus instrucciones al pie de la letra, los valores de los capacitores son correctos y estoy utilizando un cristal de 20 mhz. No se que pueda estar mal, te llego a pasar eso? hay un paso extra que deba seguir? Gracias por tu atensión.

El programa del micro programa esta compilado con la versión 4.023 del compilador de CCS y uso Windows XP.
26/06/2009 #453


Hola de nuevo, resulta que olvide sustituir las librerias usb_cdc.h y usb_desc_cdc.h. Funciona perfectamente! Gracias
27/06/2009 #454

Avatar de Moyano Jonathan

metal_serch como estás me alegro que te hayan funcionado los ejemplos y estés interesado en lo del puerto USB. Mi libro va a estar terminado dentro de 4 meses aproximadamente o menos depende de como ande de tiempo ya voy llegando a las 100 páginas me puse un poco lento debido a que estoy traduciendo las librerías de control al español y se hace dificil a veces.

PD: Todo aquel que sepa manejar el USB en C18 que ponga ejemplos para poder aprender ese lenguaje tambien.
01/07/2009 #455


Podrian empezar por bajar el MCHPFSUSB framework, vieni con bastantes ejemplos sobre CDC, HID, MSD, OTG, etc...

Incluye ayuda..

Excelente para empezar, solo que se necesita diseñar alguna tarjeta, o basarse en la que proporciona microchip (PICDEM FS USB, su hoja de especificaciones la encuentran en la pagina de microchip) para correr los ejemplos fisicamente...

Yo estoy empezando con esto pero esta muy bueno, aunque el STACK esta algo largo...
02/07/2009 #456

Avatar de Moyano Jonathan

Si a mi se me hace complicado con el C18 que ya lo tengo full con las librerías del 2009. Además la estructura en si de C18 no es la misma que la de CCS y además CCS viene con más ejemplos y más drivers para el control de dispositivos.

PD: Ya tengo el MCHPFSUSB framework, están muy buenos los ejemplos. El que más me interesa saber su funcionamiento es el modo MSDC para los PIC18.
05/07/2009 #457


Hola:
Quiero empezar a poner en práctica lo que voy aprendiendo en este foro y voy consiguiendo cosas,
como el 18F2550 , el compilador CCS, etc, pero al intentar instalar el Visual Basic 2008 express siempre
se para la instalación y me deja colgado. ¿Alguno ha tenido este tipo de problemas? ¿Qué puedo hacer?

Moyano, el libro te está quedando claro, bien expuesto, de cine vamos, igual que los manuales de Meta.

Gracias
05/07/2009 #458


De nuevo con mis problemas, he intentado instalar el C# y también se para la instalación.
¿Puede ser el Panda?
05/07/2009 #459

Avatar de Meta

Por si las moscas, hay una explciación sobre la instalación aquí:

http://www.abcdatos.com/tutoriales/tutorial/z9521.html

Saludo.

PD: Si crees que es el panda, desinstalalo, luego instala el Visual C# y después el panda otra vez.
05/07/2009 #460

Avatar de Moyano Jonathan

Perdón que no he podido postear mas avances sobre mi manual pero he estado muy ocupado con mis estudios en breve postearé todo lo que tenga al respecto. 8-)
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.