busco alguien que sepa algo de ccs porque este programa que hice lo adapte de un tutorial de YouTube
pero no estoy seguro de si está bien escrito o contiene errores. Antes quiero aclarar que soy bastante nuevo, que esta es mi segunda pregunta en el foro y pues mi conocimiento es limitado a lo que otros saben. Este es el programa que escribí:
me aparecen tres errores
: uno que hace referencia a LVALUE, y otros de undefined en output_d y output_a. ![Inseguro :unsure: :unsure:](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
este programa es para controlar unos led y un l298n por el pic18f4550 y usando el puerto usb.
ah, y si alguien es tan gentil de indicarme que argumentos adicionales serian necesarios para que digamos el puerto b reciba datos por unos interruptores y este dato recolectado sea enviado siempre por el puerto usb, se los agradecere mucho
que este asunto me recontraurge ![Crying :cry: :cry:](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Código:
[I]#include <18F4550.h>
#fuses XTPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN
#use delay(clock=48000000)
#define USB_HID_DEVICE FALSE // deshabilitamos el uso de las directivas HID
#define USB_EP1_TX_ENABLE USB_ENABLE_BULK // turn on EP1(EndPoint1) for IN bulk/interrupt transfers
#define USB_EP1_RX_ENABLE USB_ENABLE_BULK // turn on EP1(EndPoint1) for OUT bulk/interrupt transfers
#define USB_EP1_TX_SIZE 32 // size to allocate for the tx endpoint 1 buffer
#define USB_EP1_RX_SIZE 32 // size to allocate for the rx endpoint 1 buffer
#include <pic18_usb.h> // Microchip PIC18Fxx5x Hardware layer for CCS's PIC USB driver
#include "header.h" // Configuración del USB y los descriptores para este dispositivo
#include <usb.c> // handles usb setup tokens and get descriptor reports
#define led0 PIN_D0
#define led1 PIN_D1
#define led2 PIN_D2
#define led3 PIN_D3
#define led4 PIN_D4
#define led5 PIN_D5
#define led6 PIN_D6
#define led7 PIN_D7
#define puertoD output_d
#define puertoA output_a
const int8 Lenbuf = 32;
int8 recbuf[Lenbuf];
int8 cortina[]={0,1,3,7,15,31,63,127,255};
int8 mover[] = {0,1,2,4,8,16,32,64,128};
int8 gusano[]= {0,1,3,6,12,24,48,96,192,128};
int bipolar[]={10,9,5,6};
int uni_normal[]={12,6,3,9};
int uni_wave[]={8,4,2,1};
int uni_medio []={8,12,4,6,2,3,1,9};
int cont;
void main(void) {
delay_ms(500);
usb_init();
usb_task();
usb_wait_for_enumeration();
enable_interrupts(global);
while (TRUE){
if(usb_enumerated()){
if (usb_kbhit(1)){
usb_get_packet(1, recbuf, Lenbuf);
if(recbuf[0]==1){led0=~led0;}
if(recbuf[0]==2){led1=~led1;}
if(recbuf[0]==3){led2=~led2;}
if(recbuf[0]==4){led3=~led3;}
if(recbuf[0]==5){led4=~led4;}
if(recbuf[0]==6){led5=~led5;}
if(recbuf[0]==7){led6=~led6;}
if(recbuf[0]==8){led7=~led7;}
if(recbuf[0]==9){puertoD=0;
for (cont=0;cont<=8;cont++){
puertoD=cortina[cont];
delay_ms(500);
}
for (cont=8;cont>=0;cont--){
puertoD=cortina[cont];
delay_ms(500);
}
}
if(recbuf[0]==10){puertoD=0;
for (cont=0;cont<=8;cont++){
puertoD=mover[cont];
delay_ms(500);
}
for (cont=8;cont>=0;cont--){
puertoD=mover[cont];
delay_ms(500);
}
}
if(recbuf[0]==11){puertoD=0;
for (cont=0;cont<=9;cont++){
puertoD=gusano[cont];
delay_ms(500);
}
for (cont=8;cont>=0;cont--){
puertoD=gusano[cont];
delay_ms(500);
}
}
if(recbuf[0]==12){
for (cont=0;cont<=3;cont++){
puertoA=bipolar[cont];
delay_ms(25);
}
}
if(recbuf[0]==13){
for (cont=0;cont<=3;cont++){
puertoA=uni_normal[cont];
delay_ms(25);
}
}
if(recbuf[0]==14){
for (cont=0;cont<=3;cont++){
puertoA=uni_wave[cont];
delay_ms(25);
}
}
if(recbuf[0]==15){for (cont=0;cont<=7;cont++){
puertoA=uni_medio[cont];
delay_ms(25);
}
}
}
}
}
}[/I]
me aparecen tres errores
este programa es para controlar unos led y un l298n por el pic18f4550 y usando el puerto usb.
ah, y si alguien es tan gentil de indicarme que argumentos adicionales serian necesarios para que digamos el puerto b reciba datos por unos interruptores y este dato recolectado sea enviado siempre por el puerto usb, se los agradecere mucho
Última edición por un moderador: