Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

12 Bit ADC 8Ch, AD7828 Testprogramm Kategorie: Programmierung Basic (von Ernst H. - 11.01.2011 19:16)
Ich nutze:
C-Control Pro Mega128, CC-Pro 128 Application Board, Pro-Bot128
' Testprogramm I2C-ADC (I2C 12-bit, 8-CH Analog-to-Digital Converter)
' mit AD7828 fertiges mini Modul Fa www.gravitech.us ca 20$
' Für ein Hutschienengehäuse habe ich ein solches Modul im Einsatz
' mit Eingangs - Schutzbeschaltung und für drei Kanäle einen Me�verstärker
' mit Präz. OPA 07 für Shunt +/-50mV
' Ernst H.  2011-01-11
'Ausgabe:
'Ch0     Ch1     Ch2     Ch3     Ch4     Ch5     Ch6     Ch7                                                            
'1577    1578    1563    0       0       0       0       0                                                              
'1576    1577    1562    0       0       0       0       0                                                              
'1577    1578    1562    0       0       0       0       0                                                              
'1577    1578    1563    0       0       0       0       0  
'Kanal 0-1 Nullpunkt angehoben - Lade / Entladestrommessung von Akkus
'************************************************************

#define ADC_I2C_ADDR 0x90        ' I2C address

Dim ADVAL As Word            ' Store A/D value
Dim ADVAL_HIGHBYTE As Byte   ' High byte of ADVAL
Dim ADVAL_LOWBYTE As Byte    ' Low byte of ADVAL
Dim DAT   As Byte            ' Configuring data
Dim Durchlauf As Integer     ' Counter

Sub main()

I2C_Init(I2C_100kHz)

For Durchlauf = 0 To 7          'Ă?berschrift
  Msg_WriteText("Ch")
  Msg_WriteInt(Durchlauf)
  Msg_WriteChar(9 )   'Tabulator
Next
 Msg_WriteChar(13 )  'CR

Do While 1
    For Durchlauf = 0 To 7
      Select Case Durchlauf
      Case 0
        DAT = 0b10001100      ' Conifg Einstellung fĂĽr Ch0
      Case 1
        DAT = 0b11001100
      Case 2
        DAT = 0b10011100
      Case 3
        DAT = 0b11011100
      Case 4
        DAT = 0b10101100
      Case 5
        DAT = 0b11101100
      Case 6
        DAT = 0b10111100
      Case 7
        DAT = 0b11111100
      End Select                      

      I2C_Start()
      I2C_Write(ADC_I2C_ADDR)
      I2C_Write(DAT)
      AbsDelay(1)
      I2C_Start()
      I2C_Write(ADC_I2C_ADDR+1)       'Leseadresse
      ADVAL_HIGHBYTE = I2C_Read_ACK()
      ADVAL_LOWBYTE  = I2C_Read_NACK()
      I2C_Stop()

      'Msg_WriteWord(Durchlauf)
      'Msg_WriteText(" Wert= ")

      Msg_WriteWord(ADVAL_LOWBYTE + ADVAL_HIGHBYTE * 255)
      Msg_WriteChar(9 )
   Next
   Msg_WriteChar(13 )
   AbsDelay(1000)

End While

End Sub




    Antwort schreiben


Antworten:

Re: 12 Bit ADC 8Ch, AD7828 Testprogramm (von Ernst H. - 11.01.2011 21:53)