Ik heb een programmatje met de volgende commando's , deze werken echter niet met het huidige picbasic. kan iemand mij vertellen Hoe dit nu wordt genoemd?

Declare I2C_SCLOUT On 


I2CWRITE
I2CREAD
 

Programma komt in een 16f628a.

Dat staat allemaal in de handleiding.
Die declare bestaat helemaal niet en I2CRead en I2CWrite zijn zgn. protected words.

Waar je naar zoekt is I2COut en I2CIn of BusIn en BusOut.
Je zult de SCL en SDA pin moeten definiëren.

Voorbeelden zat in de handleiding...

Welke versie van de compiler gebruik je?

Hier heb je een simpel voorbeeld:


Device 16F877                               ; processor type

Xtal 10                                     ; Kristal 10Mhz

Config HS_OSC,_                             ; Kristal groter dan 4MHz
       WDT_OFF,_                            ; Watchdog Timer Enable uit
       PWRTE_ON,_                           ; Power-up Timer Enable aan
       BODEN_OFF,_                          ; Brown-out Reset Enable uit
       LVP_OFF,_                            ; Low Voltage Programming uit
       CPD_OFF,_                            ; Memory Code Protection uit
       WRTE_ON,_                            ; Program Memory Write Enable aan
       DEBUG_OFF,_                          ; In-Circuit Debugger Mode uit
       CP_OFF                               ; Code Protection uit

All_Digital true                            ; Alle poorten digitaal
 
Declare SDA_Pin PORTC.3                     ; I2C data op poort C.3
Declare SCL_Pin PORTC.4                     ; I2C clock op poort C.4

Declare I2C_SLOW_BUS 1                      ; I2C bus op 100KHz

Symbol S1 = PORTA.0                         ; Schakelaar_1 op poort A.0
Symbol S2 = PORTA.1                         ; Schakelaar_2 op poort A.1

Clear                                       ; wis geheugen 

         ;543210                            ; hulpregel poort A
PORTA  = %000000                            ; maak poort A laag
TRISA  = %111111                            ; poort_A I/O

         ;543210                            ; hulpregel poort B
PORTB  = %000000                            ; maak poort B laag
TRISB  = %000000                            ; poort_B I/O

         ;76543210                          ; hulpregel poort C
PORTC  = %00000000                          ; maak poort C laag
TRISC  = %00000000                          ; poort_C I/O

         ;76543210                          ; hulpregel poort D
PORTD  = %00000000                          ; maak poort D laag
TRISD  = %00000000                          ; poort_D I/O

         ;210                               ; hulpregel poort E 
PORTE  = %000                               ; maak poort E laag
TRISE  = %111                               ; poort_E I/O

Run:                                        ; Begin programma
    If S1 = 1 Then                          ; Als waar dan
    BStart                                  ; Start I2C bus
    BusOut %01110000                        ; Zend doel adres [112]
    BusOut %11111111                        ; Zend poort adres [alles uit]
    BStop                                   ; Stop I2C bus
    EndIf                                   ; Einde als
    
    If S2 = 1 Then                          ; Als waar dan
    BStart                                  ; Start I2C bus
    BusOut %01110000                        ; Zend doel adres [112]
    BusOut %01111110                        ; Zend poort adres [P0 en P7 aan]
    BStop                                   ; Stop I2C bus
    EndIf                                   ; Einde als    
GoTo Run                                    ; Naar begin programma

End                                         ; Einde programma

Achter de eerste BUSOUT staat het adres van je IC (in dit geval is dat 112) maar dat verschilt per IC, dus daar moet je op letten. Bij de tweede BUSOUT staat welke pinnen je hoog of laag wil maken.

Of je moet iets heel anders bedoelen, maar ik haal uit je verhaal dat het over I2C gaat. :)

Op 4 juli 2017 23:59:29 schreef hadv:

Welke versie van de compiler gebruik je?

compiler 3.5.8.6

De nieuwste is 3.5.9.9, goed idee om die te installeren.

Zo te zien zit ik op het verkeerde spoor. :)