INFO - FAQ - CC2-Forum - CCPro-Forum |
|
Hallo, Jetzt kein fehler mehr. Ich habe mit "slowmode on und off " die geschwindigkeit von Interne I2C bus herunter gebracht. Wusste nicht das normal die fasst 100Khz intern ist. War zu schnell fur meine "Homebus" . Benno > > Hallo, > > Hat keiner ein Idee ? > Es geht ums auslesen von den vier Kanalen!. > > Benno > > > > > > Hallo, > > > > Versuche die 4 A/D Porten von ein PCF8591 aus zu lesen. > > Ich bekomme nicht die richtige werte. > > Hab ich ein Software fehler oder ?? > > > > -------------------------------------------------------------- > > 'Ansteuereungsbeispiele für I²C-Bus-Multitreiber "int_i2c.s19" > > 'CCTools 2004 cctools.hs-control.de (23.08.2004) > > '-------------------------------------------------------------- > > ' Ansteuerung von I²C-Bus Bausteine: > > ' - PCF8574 / PCF8574A > > ' - PCFLCD-Interface / I2C-Terminal > > ' - Bausteine mit Byte-Adressregister > > ' z.B. PCF8583, PCF8591, DS1631, MAX520, MAX7311, MAX4572 etc. > > ' - Bausteine mit Word-Adressregister > > ' z.B. EEProms 24C32 bis 24C512 > > '-------------------------------------------------------------- > > > > '-------------------------------------------------------------- > > 'Einsprungadressen von "int_i2c.s19" Release 19.09.04 > > '-------------------------------------------------------------- > > ' PCF8574: > > define PCFwrite &h101 > > define PCFread &h107 > > '-------------------------------------------------------------- > > ' Bausteine mit Byte-Adress-Register > > define WrByteBReg &h123 > > define WrWordBReg &h12F > > define RdByteBReg &h15C > > define RdWordBReg &h162 > > '-------------------------------------------------------------- > > ' Bausteine mit Word-Adress-Register > > define WrByteWReg &h139 > > define WrWordWReg &h141 > > define RdByteWReg &h16D > > define RdWordWReg &h175 > > '-------------------------------------------------------------- > > ' PCFLCD: > > define putCmd8Bit &h1a9 > > define putCmd &h17D > > define putChar &h1a3 > > define prnLCD &h1C2 > > '-------------------------------------------------------------- > > > > 'LCD-ASCII > > Define A_ &H41 : Define B_ &H42 : Define C_ &H43 : Define D_ &H44 : Define E_ &H45 > > Define F_ &H46 : Define G_ &H47 : Define H_ &H48 : Define I_ &H49 : Define J_ &H4A > > Define K_ &H4B : Define L_ &H4C : Define M_ &H4D : Define N_ &H4E : Define O_ &H4F > > Define P_ &H50 : Define Q_ &H51 : Define R_ &H52 : Define S_ &H53 : Define T_ &H54 > > Define U_ &H55 : Define V_ &H56 : Define W_ &H57 : Define X_ &H58 : Define Y_ &H59 : Define Z_ &H5A > > Define ak &H61 : Define bk &H62 : Define ck &H63 : Define dk &H64 : Define ek &H65 > > Define fk &H66 : Define gk &H67 : Define hk &H68 : Define ik &H69 : Define jk &H6A > > Define kk &H6B : Define lk &H6C : Define mk &H6D : Define nk &H6E : Define ok &H6F > > Define pk &H70 : Define qk &H71 : Define rk &H72 : Define sk &H73 : Define tk &H74 > > Define uk &H75 : Define vk &H76 : Define wk &H77 : Define xk &H78 : Define yk &H79 : Define zk &H7A > > Define SPACE &H20 : Define MINUS &H2D : Define GLEICH &H3D : Define DPP &H3A > > Define Dot &H2E : Define GRAD &hDF > > Define Line1 &H80 : Define Line2 &HC0 : Define Line3 &H94 : Define Line4 &HD4 'Für 4x20 LCD > > 'Define Line1 &H80 : Define Line2 &HC0 : Define Line3 &H90 : Define Line4 &HD0 'Für 4x16 LCD > > > > define PCF 64 'Adresse des PCF-LCDs. Alternativ kann auch eine Varible benutzt werden. > > > > define pop DA[1] 'Trick zum Auslesen des Stacks(siehe ccintern.dharlos.de) > > > > define LCDnr Bit[192] 'Zustandsbit umschaltung Display > > > > define P0 Bit[1] ' Portzustände. Es kann jedes > > define P1 Bit[2] ' beliebige Byte vom RAM gewählt > > define P2 Bit[3] ' werden. > > define P3 Bit[4] > > define P4 Bit[5] > > define P5 Bit[6] > > define P6 Bit[7] > > define P7 Bit[8] > > > > 'define Wordwert word[2] > > define addr word[3] > > define data word[4] > > > > > > 'define wert Byte[1] > > define cmd Byte[6] ' Byte zur Parameterübergabe > > define MSB byte[7] > > define LSB byte[8] > > define i2caddr byte[9] > > > > define woord byte[10] > > define wind byte[11] > > > > > > LCDnr=0:gosub LCD_Init:gosub LCD_CLS ' display 0 regel 1+2 init > > LCDnr=1:gosub LCD_Init:gosub LCD_CLS > > > > #loop > > '----Aufrufe-Bausteine m.Byte-Addr.Reg.---------------- > > 'i2caddr immer Schreibadresse !! > > 'addr = Registeradresse > > 'Byte schreiben: > > sys WrByteBReg,woord,4,144 > > sys RdByteBReg,0,144 ' dummy ??? > > > > 'port1 > > sys prnLCD,LCDnr,0,PCF : print "PCF8591 Poort1"; ' 0 Volt > > sys RdByteBReg,1,144 > > woord=pop > > print "Poort 1: ";woord, > > Gosub LCD_Zahl3 > > > > 'port2 > > sys prnLCD,LCDnr,0,PCF : print " Temp aanvoerwater "; ' LM 335 aanvoer > > sys RdByteBReg,2,144 > > woord=pop > > print "Aanvoer: ";woord, > > woord=(woord *500/256)-200 > > Gosub LCD_Zahl3 > > > > 'port3 > > sys prnLCD,LCDnr,0,PCF : print "Windsnelheid "; 'aneometer met D/A > > sys RdByteBReg,3,144 > > woord=pop > > print "WindSpeed:";woord, > > Gosub LCD_Zahl3 > > > > 'port 4 > > sys prnLCD,LCDnr,0,PCF : print " Temp retourwater "; ' LM335 retour > > sys RdByteBReg,4,144 > > woord=pop > > print "Retour : ";woord > > woord=(woord * 500 / 256)-200 > > Gosub LCD_Zahl3 > > > > goto loop > > > > > > #LCD_Zahl3 ' 3 stellige Zahl ausgeben > > if woord > 99 then sys putChar,LCDnr,(woord/100)+&h30,PCF else sys putChar,LCDnr,&h20,PCF > > #LCD_Zahl2 ' 2 stellige Zahl ausgeben > > if woord > 9 then sys putChar,LCDnr,((woord/10) mod 10)+&h30,PCF else sys putChar,LCDnr,&h20,PCF > > #LCD_Zahl1 '1 stellige Zahl ausgeben > > sys putChar,LCDnr,(woord mod 10)+&h30,PCF > > return > > > > #LCD_CLS > > sys putCmd,LCDnr,&b00000001,PCF > > return > > #LCD_CMD > > sys putCmd,LCDnr,cmd,PCF > > return > > #LCD_Char > > sys putChar,LCDnr,cmd,PCF > > return > > #LCD_Init > > sys putCmd8Bit,LCDnr,&b00110000,PCF > > sys putCmd8Bit,LCDnr,&b00110000,PCF > > sys putCmd8Bit,LCDnr,&b00110000,PCF > > sys putCmd8Bit,LCDnr,&b00100000,PCF > > sys putCmd,LCDnr,&b00101000,PCF > > sys putCmd,LCDnr,&b00001100,PCF > > sys putCmd,LCDnr,&b00000001,PCF > > sys putCmd,LCDnr,&b00000110,PCF > > return > > > > > > 'syscode "int_i2c.s19" 'nur einmal laden, dann auskommentieren > > > > > > Bitte Hilfe !!! > > > > Benno > > > |
Antwort schreiben |