Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: Ausgabe auf RT16-HS von A. Helbig Kategorie: Programmierung Basic (von Jörn-Michael - 19.03.2006 18:37)
 Als Antwort auf Re: Ausgabe auf RT16-HS von A. Helbig von Ingo - 19.03.2006 11:57
Jörn-Michael nutzt:  CC1-Station V2.0
> > Hallo Spezialisten,
> >
> > ich möchte nur 2 Datenbyte auf den I2C-Baustein RT16-HS von Andre Helbig ausgeben und damit die
> > Ausgänge P0 bis P15 schalten.
> >
> > Wie muß ich die Relais anschließen, zwischen Ausgang und +12V!?
> >
> > Den Baustein habe ich auf Adresse 0x20 mit den Jumpern A2=GND, A1= SCL, A0=GND eingestellt.
> > GND, SCL,SDA von Steuerung und Baustein sind verbunden.
> > Der I2C-Bus funktioniert, denn ich habe am gleichen Bus noch einen DA4-HS (4-Kanal DA), der super
> > funktioniert.
> > Mit folgendem CC-BASIC-Programm habe ich keinen Erfolg!
> > Warum?
> >
> >
> > #RT16AUSGABE
> > print"#OFF#";       'LCD-Umleitung ausschalten!!!
> > print"#ON_IIC#";    'Umleitung auf I2C-Module
> > print"#STOP#";      'Wichtig, bei Benutzung des LCD
> > print"#START#";     'Sendet die I2C-Startbedingung
> > put &h20            'I2C-Slaveadresse
> > put &h06            'P0-P7-Konfigurationsregister auf Richtung "Output" schalten
> > put &h00            '00000000 alle Bits auf "Output"
> > put &h07            'P8-P15-Konfigurationsregister auf Richtung "Output" schalten
> > put &h00            '00000000 alle Bits auf "Output"
> > put &h08            'Timeout-Register auf "Enable" setzen
> > put &h00
> > put &h02            'Command Byte für "Output port1"
> > put P0_P7           'Datenbyte für P0_P7
> > put &h03            'Command Byte für "Output port2"
> > put P8_P15          'Datenbyte für P8_P15
> > print"#STOP#";      '-> Sendet die I2C-Bus STOP bedingung
> > print"#OFF#";       '-> Umleitung zum I2C-MODULE abschalten
> > print"#ON_LCD#";    'Umleitung auf LCD einschalten!!!
> > return
> >
> >
> > Ich habe jetzt schon 2 Stunden im Forum gesucht und keine Antwort auf meine sehr einfache Frage
> > gefunden.
> > Jörn-Michael
>
> Hallo Jörn-Michael
>
> Probiers mal so, hab das Teil allerdings nicht und kanns nicht probieren...
>
> Gruß Ingo
>
>  #RT16AUSGABE
>  print"#OFF#";       'LCD-Umleitung ausschalten!!!
>  print"#ON_IIC#";    'Umleitung auf I2C-Module
>  print"#STOP#";      'Wichtig, bei Benutzung des LCD
>  print"#START#";     'Sendet die I2C-Startbedingung
>  put &h20            'I2C-Slaveadresse
>  put &h06            'P0-P7-Konfigurationsregister auf Richtung "Output" schalten
>  put &h00            '00000000 alle Bits auf "Output"
>  put &h00            '00000000 alle Bits auf Output 'P8-P15-Konfigurationsregister auf Output schalten
>  print"#STOP#";      '-> Sendet die I2C-Bus STOP bedingung
>
>  print"#START#";     'Sendet die I2C-Startbedingung
>  put &h20            'I2C-Slaveadresse
>  put &h08            'Timeout-Register auf "Enable" setzen
>  put &h00
>  print"#STOP#";      '-> Sendet die I2C-Bus STOP bedingung
>
>  print"#START#";     'Sendet die I2C-Startbedingung
>  put &h20            'I2C-Slaveadresse
>  put &h02            'Command Byte für "Output port1"
>  put P0_P7           'Datenbyte für P0_P7
>  put P8_P15          'Datenbyte für P8_P15
>  print"#STOP#";      '-> Sendet die I2C-Bus STOP bedingung
>
>  print"#OFF#";       '-> Umleitung zum I2C-MODULE abschalten
>  print"#ON_LCD#";    'Umleitung auf LCD einschalten!!!
>  return

Hallo Ingo,

vielen Dank für den Tipp. Es ist richtig und funktioniert so!
Ich hatte es zwischenzeitlich bereits selbst herausgefunden, dass die I2C-Sequenzen "Slaveadresse/Commandobyte/1-2 Datenbytes" zwischen separate START- und STOP-Befehle gehören.
Trotzdem vielen Dank!!!
Jörn-Michael

 Antwort schreiben

Bisherige Antworten: