Servus,
die Application note habe ich schon... Die hat auch einige Fragen klären können. Dennoch bin ich nicht weiter.
Ich habe mal meinen Code nachgebessert. Aber Emfangen tue ich immer noch nichts
Code:
TART_PRESSURE_INIT
call LCD_INIT
bcf STATUS, RP0 ; auf Bank 1 umschalten
movlw B'00111111' ; internen Takt zählen, Vorteiler zum Timer0, 32:1
movwf T1CON
bsf STATUS,RP0
movlw b'00000000'
movwf TRISB
movlw 0x00 ; 256-125=131 ((1MHz : 32 ): 125 = 250 Hz)
bcf STATUS, RP0 ; auf Bank 0 zurückschalten
clrf RXDATA_HIGH
clrf RXDATA_LOW
clrf TXDATA
banksel TRISC
movlw b'00010000'
movwf TRISC
banksel SSPSTAT
movlw b'10000000' ; SMP=1, CKE=1, BF=0
movwf SSPSTAT
banksel SSPCON
movlw b'00100010' ; WCOL=0, SSPOV=0, SSPEN=1, CKP=0, SSPM[3..0]= 0010 (FOSC/64)
movwf SSPCON
bcf SSPCON, SSPOV ; kein Überlauf
bcf SSPCON, WCOL
bsf SSPCON, SSPEN ; SPI=on
movwf 0x1d
movwf SSPBUF ;
call BF_BIT
movwf 0x60
movwf SSPBUF
call BF_BIT
banksel SSPSTAT
bsf SSPSTAT,CKE
banksel PORTA
movwf 0x10
movwf SSPBUF ;
call BF_BIT
movwf RXDATA_HIGH
movwf 0x01
movwf SSPBUF
call BF_BIT
movwf RXDATA_LOW
call LCD_LINE_1
; movf LOW_BYTE,w
movf RXDATA_HIGH,w
movwf FOR_HEX
call HEX_AN_LCD
call LCD_LINE_2
; movf LOW_BYTE,w
movf RXDATA_LOW,w
movwf FOR_HEX
call HEX_AN_LCD
banksel TRISB
movlw b'00000000'
movwf TRISB
banksel PORTB
movlw b'01010101'
movwf PORTB
ABE
goto ABE
BF_BIT
Banksel SSPSTAT
btfss SSPSTAT, BF
goto BF_BIT
banksel PORTA
movf SSPBUF,0
return
Wenn ich den Quarz nur für den ADC brauch müsste ich ja zumindest die Calb. Words lesen können... Oder etwa nicht?
Hat vielleicht irgendwer ein Prog für mich, in dem mit SPI gearbeitet wird?
Sollte ich mit dem Oszi den Quarz schwingen sehen? Und wenn wie?
gruß
Lesezeichen