
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
Hello Hans, I found a few faults in your software, you must be careful when using goto, gosub, return and for next. When using the IIC bus you must initialize the LCD first. Also clear the rs232 buffer first. Just for fun I reworked your software a little, have a look and try it out. Success and greetings, H.J.W. DEFINE Var1 BYTE[1] DEFINE Var2 BYTE[2] DEFINE I BYTE[3] DEFINE D BYTE[4] DEFINE loop BYTE[5] DEFINE Max128adres &h50 DEFINE LED PORT[1] print"#ON_LCD#";"#INIT#";"#CLR#";"#OFF#"; 'Initialize the LCD before using the IIC bus' put 0 'Needed because of a bug in the c-control I v2.0x system' #clear_rs232_buffer 'Clear the RS232 buffer' if rxd then get d if rxd then goto clear_rs232_buffer #Start TOG LED FOR I = 1 to 200 IF not RXD THEN Goto pass get d if d = 68 then gosub zend 'D is van Excel(Excel is klaar om te ontvangen) #pass NEXT GOTO Start #Zend Print "S";"|"; 'S is de Start puls voor Excel for loop = 0 to 7 PRINT"#ON_IIC#"; PRINT"#START#"; PUT Max128adres PUT &B10001000 or (loop shl 4)'Choose channel' PRINT"#STOP#"; PRINT"#START#"; PUT Max128adres+1 GET Var1 GET Var2 PRINT"#STOP#"; PRINT"#OFF#"; print(Var1*16) + (Var2 SHR 4);"|"; 'calculate and print received analog value' next print "E" 'E is einde VAR. voor Excel RETURN > Thank You > > I'll try the progr Zonday > I hope that it works > does it ??????????????????????? > Here the programm > > DEFINE Var1 BYTE[1] > DEFINE Var2 BYTE[2] > DEFINE I BYTE[3] > DEFINE D BYTE[4] > DEFINE AD1 WORD[3] > DEFINE AD2 WORD[4] > DEFINE AD3 WORD[5] > DEFINE AD4 WORD[6] > DEFINE AD5 WORD[7] > DEFINE AD6 WORD[8] > DEFINE AD7 WORD[9] > DEFINE AD8 WORD[10] > DEFINE Max128adres &h50 > DEFINE LED PORT[1] > > > > > 'A Max127 has a adress 0101 A2 A1 A0 RW > '01010000 = 50 > '01010010 = 52 > '01010100 = 54 > 'I2C Write Addresses: > '&h50 &h52 &h54 &h56 &h58 &h5A &h5C &h5E > 'I2C Read Addresses: > 'I2C Read Address = I2C Write Address + 1 > > > #Start > TOG LED > FOR I=1 to 50 > IF RXD THEN Goto Ontvangst > PAUSE 1 > NEXT > GOTO Start > > #Ontvangst > GET D > IF D=68 THEN GOTO Zend ELSE GOTO Ontvangst 'D is van Excel(Excel is klaar om te ontvangen) > > #Zend > GOSUB Programma > Print "S";"|"; 'S is de Start puls voor Excel > Print AD1;"|"; > Print AD2;"|"; > Print AD3;"|"; > Print AD4;"|"; > Print AD5;"|"; > Print AD6;"|"; > Print AD7;"|"; > Print AD8;"|"; > Print "E" 'E is einde VAR. voor Excel > GOTO Start > > #Programma > PRINT"#ON_IIC#"; > PRINT"#START#"; > PUT Max128adres > PUT &B10001000 'Channel 1 Scale 0-Vref > PRINT"#STOP#"; > > PRINT"#START#"; > PUT Max128adres+1 > GET Var1 > GET Var2 > Var2 = Var2 SHR 4 > PRINT"#STOP#"; > PRINT"#OFF#"; > AD1 = ((Var1*16) + Var2) > > PRINT"#ON_IIC#"; > PRINT"#START#"; > PUT Max128adres > PUT &B10011000 'CHannel 2 > PRINT"#STOP#"; > > PRINT"#START#"; > PUT Max128adres+1 > GET Var1 > GET Var2 > Var2 = Var2 SHR 4 > PRINT"#STOP#"; > PRINT"#OFF#"; > AD2 = ((Var1*16) + Var2) > > PRINT"#ON_IIC#"; > PRINT"#START#"; > PUT Max128adres > PUT &B10101000 'CHannel 3 > PRINT"#STOP#"; > > PRINT"#START#"; > PUT Max128adres+1 > GET Var1 > GET Var2 > Var2 = Var2 SHR 4 > PRINT"#STOP#"; > PRINT"#OFF#"; > AD3 = ((Var1*16) + Var2) > > PRINT"#ON_IIC#"; > PRINT"#START#"; > PUT Max128adres > PUT &B10111000 'CHannel 4 > PRINT"#STOP#"; > > PRINT"#START#"; > PUT Max128adres+1 > GET Var1 > GET Var2 > Var2 = Var2 SHR 4 > PRINT"#STOP#"; > PRINT"#OFF#"; > AD4 = ((Var1*16) + Var2) > > PRINT"#ON_IIC#"; > PRINT"#START#"; > PUT Max128adres > PUT &B11001000 'CHannel 5 > PRINT"#STOP#"; > > PRINT"#START#"; > PUT Max128adres+1 > GET Var1 > GET Var2 > Var2 = Var2 SHR 4 > PRINT"#STOP#"; > PRINT"#OFF#"; > AD5 = ((Var1*16) + Var2) > > PRINT"#ON_IIC#"; > PRINT"#START#"; > PUT Max128adres > PUT &B11011000 'CHannel 6 > PRINT"#STOP#"; > > PRINT"#START#"; > PUT Max128adres+1 > GET Var1 > GET Var2 > Var2 = Var2 SHR 4 > PRINT"#STOP#"; > PRINT"#OFF#"; > AD6 = ((Var1*16) + Var2) > > PRINT"#ON_IIC#"; > PRINT"#START#"; > PUT Max128adres > PUT &B11101000 'CHannel 7 > PRINT"#STOP#"; > > PRINT"#START#"; > PUT Max128adres+1 > GET Var1 > GET Var2 > Var2 = Var2 SHR 4 > PRINT"#STOP#"; > PRINT"#OFF#"; > AD7 = ((Var1*16) + Var2) > > PRINT"#ON_IIC#"; > PRINT"#START#"; > PUT Max128adres > PUT &B11111000 'CHannel 8 > PRINT"#STOP#"; > > PRINT"#START#"; > PUT Max128adres+1 > GET Var1 > GET Var2 > Var2 = Var2 SHR 4 > PRINT"#STOP#"; > PRINT"#OFF#"; > AD8 = ((Var1*16) + Var2) > > RETURN > > > > > Hello, > > Yes, there are a total of 8 addresses possible. > > > > I2C Write Addresses: > > &h50 &h52 &h54 &h56 &h58 &h5A &h5C &h5E > > > > I2C Read Addresses: > > I2C Read Address = I2C Write Address + 1 > > > > Greetings, > > H.J.W. > > > > > Thanks H.J.W > > > > > > I din't look good > > > > > > A Max128 has a adress 0101 A2 A1 A0 RW > > > '01010000 =&h50 > > > '01010010 = 52 > > > '01010100 = 54 > > > '01011000 = 58 > > > etc. totaal 8x > > > > > > Is this alright ?? > > > or..?? > > > > > > Hans > > > > > > > Hello, > > > > Here is a data sheet - > click me > > > > On page 11 is the addressing. > > > > Greetings, > > > > H.J.W. > > > > > > > > > Hello, > > > > > > > > > > I'm working on a 12 bits adconv. the max128 and the munit2. > > > > > print and progr. are almost finished. > > > > > but what is the adress input from the max128. > > > > > A0, A1, A2 are connectet on minus > > > > > I can't find this data on the datasheet. > > > > > > > > > > Hans. > > > > > > > > > > Is this DEFINE Max128adres &h80 > > > > > or DEFINE Max128adres &h90 > > > > > or else |
| Antwort schreiben |