Hola compañeros de TODOPIC, les escribo para consultarles algo que supongo debe ser una pavada, pero ya me tiene los pelos de punta por no poder hacerlo funcionar!
Necesito comandar un modulo R/W de tarjetas SD y se lo realiza a traves del puerto RS232.
El tema es que cada comando hacia el modulo debe finalizar con un <CR> (ascii 0D) y la secuencia que debo mandar es
I<CR> //inicializo el modulo
M FOLDER<CR> //creo un directorio
bueno, q es lo q pasa? Me reconoce el \r que paso junto con el comando I, pero el otro no me lo reconoce... es mas, estuve viendolo en un terminal y el PIC ni siquiera lo envia! Como podran apreciar en el dibujo, el primer 0x0D lo envia, pero despues muere en M FOLDE...
Por si sirve de algo, aca paso el codigo...
#include <16F877A.h>
#FUSES NOWDT //No Watch Dog Timer
#FUSES HS //High speed Osc (> 4mhz)
#FUSES NOPUT //No Power Up Timer
#FUSES NOPROTECT //Code not protected from reading
#FUSES NODEBUG //No Debug mode for ICD
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#use delay(clock=20000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
#include "lcd.c"
void main ()
{
delay_ms(100);
printf("I\r");
delay_ms(1000);
printf("M FOLDER\r");
}
Que es lo que esta pasando? Me tiene loco ya esto, encima lo necesito para cada comando que le envio!!!
jaja!
Espero haberme explicado lo suficientemente bien y desde ya gracias!
Saludos desde CBA, ARG!