Puerto SPI
Publicado por Carlos (1 intervención) el 09/06/2008 19:21:15
Estoy usando el puerto SPI, realize una rutina sencilla para leer un ADC (Microchip) de 12 bit. Estoy utilizando el process expert. Pero no me reponde, solo me manda 0xFF a pesar que existen variaciones de voltaje. El código que muestro a continuación solo prentendo leer los 8 primeros bits y desplegarlos en un display.
/////////////////////////
for(;;){
vall0=SPI1_SendChar(255);
if(vall0==ERR_OK)
vall1=SPI1_RecvChar((byte*)myvalues);
if(vall1==ERR_RXEMPTY)
ldc_NOPASA_SetVal();
if(vall1==ERR_OVERRUN){
ldc_NOPASA_SetVal();
ldc_PASA_SetVal();
}
if(vall1==ERR_OK)
ldc_PASA_SetVal();
WaitNms(1000);
SPI_Data=myvalues[0];
LCD_DisplayString1_4bit(" SPI Valor ",FALSE);
LCD_DisplayString2_4bit(" ",FALSE);
bcd2str(SPI_Data,string,FALSE);
LCD_DisplayString2_4bit("",FALSE);
LCD_DisplayString2_4bit(string,FALSE);
WaitNms(1000);
}
///////////////////////
Nos se si alguien me pudiera prestar fragmentos de código de ejemplo de como usar el SPI por medio del process expert, y depues yo adecuarlo a mi necesidades.
Cualquier sugerencia se les agradece.
/////////////////////////
for(;;){
vall0=SPI1_SendChar(255);
if(vall0==ERR_OK)
vall1=SPI1_RecvChar((byte*)myvalues);
if(vall1==ERR_RXEMPTY)
ldc_NOPASA_SetVal();
if(vall1==ERR_OVERRUN){
ldc_NOPASA_SetVal();
ldc_PASA_SetVal();
}
if(vall1==ERR_OK)
ldc_PASA_SetVal();
WaitNms(1000);
SPI_Data=myvalues[0];
LCD_DisplayString1_4bit(" SPI Valor ",FALSE);
LCD_DisplayString2_4bit(" ",FALSE);
bcd2str(SPI_Data,string,FALSE);
LCD_DisplayString2_4bit("",FALSE);
LCD_DisplayString2_4bit(string,FALSE);
WaitNms(1000);
}
///////////////////////
Nos se si alguien me pudiera prestar fragmentos de código de ejemplo de como usar el SPI por medio del process expert, y depues yo adecuarlo a mi necesidades.
Cualquier sugerencia se les agradece.
Valora esta pregunta


0