Duda con SPI y PICBASIC

#1
Hola a todos. He estado buscando información sobre SPI y PICBASIC y la verdad es que no he encontrado gran cosa, así que recurro a vosotros.

El caso es que no se prácticamente nada y me he propuesto aprender con un ejemplo sencillo. Me gustaría saber como leer un sensor de temperatura (TC77) y en función del dato obtenido hacer algo

¿Alguien sabe como obtener el dato de temperatura del sensor para poder trabajar posteriormente con el?

Un saludo
 
#2
Hola syryus

Ciertamente encontrar las 2 cosas (SPI y PICBASIC) juntas no lo vas a lograr.
Primero busca en Google.com indagando por SPI; lo hice y encontré algo que te adjunto.
Luego busca PicBasic PRO en el mismo Google.com de seguro lo encontraras.

Como Dicen los norteamericanos: “By The Way” qué simulador utilizas para el desarrollo de tus circuitos?.

saludos
a sus ordenes
 

Adjuntos

#3
Hola MrCarlos, muchas gracias por tu ayuda. Sobre protocolo SPI ya busqué algo de información por separado y más o menos lo entiendo, el problema es la sintaxis para trabajar con el en picbasic.

Para simular uso ISIS de Proteus y como compilador PICBASICPRO

Voy a echarle un vistazo a los ejemplos que pones ;)
 
#6
Sigo sin aclararme, es que soy muy torpe jaja.

A ver:

-Supongamos como digo un TC77 que tiene una entrada de reloj (SCK), una de Chip Select (CS) y una Serial I/O (SI/O)
-Están conectados respectivamente a RC0, RC1 y RC2

¿Cómo obtengo el dato que necesito (temperatura) y lo almaceno en una variable?

A ver si alguien ha hecho algo parecido

Muchas gracias!
 
#8
A ver Amigos...

Noticia buena y noticia mala....

la buena es que logre que se comunique el TC77 con un 16f876A..

la mala es que no tengo idea de que es lo que manda... :LOL:

anexo simulacion... a ver que se les ocurre que falte!
 

Adjuntos

#9
Lubeck eres una máquina ;-)

Le he echado solamente un vistazo por encima pero creo que lo único que habría que hacer es tratar la variable que se obtiene con una simple operación matemática.

Cuando llegue a casa lo analizo con calma
 
#11
¿Por qué defines A como word y no como byte?
porque lo que manda el tc77 son 16bits, un byte son 8 bits, y un word son 16bits que es lo que necesitamos...

¿Qué es Pir.3?
pir.3 es la bandera de interrupcion del SPI, ese bit del registro PIR el micro lo pone en alto cuando llega algo al buffer de recepcion del SPI(registro SSPBUF) ... osea un byte..8bits... y se tiene que borrar por software, por eso se pone pir.3=0
 
Última edición:
#13
me permito reflotar este tema porque el codigo de lubeck parece no estar correcto, en todo caso seria asi:

Código:
DEfine Osc 4

TrisB=0
ADCON1 = 7  

Define LCD_DREG  PORTB
Define LCD_DBIT  4
Define LCD_RSREG PORTB
Define LCD_RSBIT 1
Define LCD_RWREG PORTB
Define LCD_RWBIT 2
Define LCD_EREG  PORTB
Define LCD_EBIT  3
DEFINE LCD_BITS 4 


A VAR word        
 
SSPCOn =%00100001
SSPStat=%01000000
PIR1.3 = 0         
   
TrisC.3=0
LCDOut $FE,1,"LUBECK" 
pause 1000        

PortB.0=0     

 SSPBUF=255 : GoSub letclear
 A.byte0=SSPBUF 
 SSPBUF=255 : GoSub letclear 
 A.byte1=SSPBUF   

 SSPBUF = 0:  GoSub letclear 
 A.byte0=SSPBUF  
 SSPBUF = 0:  GoSub letclear                 		
 A.byte1=SSPBUF

 portb.0=1
 pause 1500
 
main:
 PortB.0=0         
 SSPBUF = 0:  GoSub letclear 
 a.byte0 = SSPBUF 
 SSPBUF = 0:  GoSub letclear                 		                            
 a.byte1 = SSPBUF 
 PortB.0=1                
 lcdout $FE,1, dec a,$FE,$C0,dec pir1.3 
 pause 1000  
GoTo main  

Letclear:
 IF pir1.3 = 0 Then letclear 
 PauseUs 25        
 pir1.3 = 0         
Return

End
porque el registro SSPBUF solo es de 8 bits, y como estaba se perderia los 8 bits restantes.
 

Temas similares

Arriba