Servus,
also auf meinem Testboard ist ein externes EEPROM 24LC256 und dieses würde ich gerne absprechen(PIC16F877A). Also ich würde gerne Daten draufschreiben und diese dann auch wieder auslesen.
Ich habe im Democode auch folgenden Code in asm gefunden.
Code:write_eeprom banksel SSPCON2 ;write to EEPROM bsf SSPCON2,SEN ;start bit btfsc SSPCON2,SEN goto $-1 movlw B'10100000' ;send control byte (write) banksel SSPBUF movwf SSPBUF call ssprw banksel SSPCON2 btfsc SSPCON2,ACKSTAT ;ack? goto $-1 movlw 0x00 ;send slave address HIGH byte banksel SSPBUF movwf SSPBUF call ssprw banksel SSPCON2 btfsc SSPCON2,ACKSTAT ;ack? goto $-1 movlw 0x05 ;send slave address LOW byte(0x0005) banksel SSPBUF movwf SSPBUF call ssprw banksel SSPCON2 btfsc SSPCON2,ACKSTAT ;ack? goto $-1 banksel temperature movf temperature,w ;send slave DATA = temperature movwf SSPBUF call ssprw banksel SSPCON2 btfsc SSPCON2,ACKSTAT ;ack? goto $-1 bsf SSPCON2,PEN ;stop bit btfsc SSPCON2,PEN goto $-1 banksel TMR1L bcf PIR1,TMR1IF ;clear TIMER1 overflow flag clrf TMR1L ;clear registers for next overflow clrf TMR1H return ;------------------------ IDLE MODULE ------------------------------------- ssprw ;check for idle SSP module movlw 0x00 banksel SSPCON2 andwf SSPCON2,w sublw 0x00 btfss STATUS,Z goto $-4 btfsc SSPSTAT,R_W goto $-1 return
Aber leider funktioniert die ganze Geschichte nicht. Und da ich davon nicht all zu viel Ahnung habe, brauche ich nun Hilfe.
Hat irgendwer einen Beispielcode, der funzt?
Danke
Gruß







Zitieren

Lesezeichen