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: NÖ NÖ der I2C Bus hat keinen Bock...! Kategorie: C-Control I V1.2/2.0 (von MartinEL - 25.04.2005 16:20)
 Als Antwort auf Re: NÖ NÖ der I2C Bus hat keinen Bock...! von Henrik - 25.04.2005 14:23
MartinEL nutzt:  CC1-Unit V1.1, CC1-M-Unit V1.2/2.0
Hmm, naja, original siehts ja so aus:

'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
'III    CCBASIC++  DEMO ZUM BASIC-COMPUTER UNIT M 1.2/2.0       IIIII
'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
'--------------------------------------------------------------------
' Beispiel zum BASIC-COMPUTER    mit dem Programmer/Application-Board
'--------------------------------------------------------------------
' ANWENDUNG: IIC OBJECT                IIC-BUS COMMUNICATIONS MODULE
'            FEHLERBEHANDLUNG
'--------------------------------------------------------------------
' Dieses Beispiel zeigt die Vorgehensweise für die Benutzung des
' IIC-OBJECTS am Beispiel mit einem PCF8574.
' Hier: Fehlerbehandlung
'
' Der IIC-Bus liegt an PORT 9 (SDA) und PORT 10 (SCL)
'-------------------------------------------------------------------
' SYNTAX für das IIC-MODULE
' IIC.INIT
' IIC.START
' IIC.SEND address,command
' IIC.GET address,command
' IIC.STOP
' IIC.OFF
'---------------------------------------------------------------------
'
' Beschreibung:
' In diesem Beispiel wird der gesamte Adressraum nach vorhandenen IIC-Geräten
' durchsucht. Dazu wird gesendet: START-ADRESSE-STOP
' Wichtig ist, dass die Adresse im "WRITE-Modus" angesprochen wird und daher
' das Bit0 der Adresse (das R/W Bit) immer null sein muss.
' Das IIC-OBJECT setzt im CONFIG-REGISTER das Bit 6, wenn es vom angesprochenen
' Gerät kein Achnowledge empfangen hat.
' Das Programm IIC_ERROR.BAS in der LIBRARY enthält zwei Funktionen die folgene
' Aufgaben haben:
' IIC-DEVICE mit Adresse ansprechen, Fehlerflag zurück geben und im CONFIG1
' Register löschen.
' Wird auf einer Adresse ein IIC-Gerät gefunden, wird dessen Adresse im LCD
' angezeigt.
'
' ACHTUNG:
' Achten Sie unbedingt darauf, dass das LCD initialisiert ist, wenn es
' angesteckt ist (auch wenn sie es nicht benutzen).
' Es teilt sich einen Teil seines Busses mit dem IIC-BUS
' LCD.INIT
' LCD.OFF
'
'-----------------------------------------------------------------------

'--------------------------
'------ I/O PORTS ---------
'--------------------------
define LIGHT          port[16]
define SDA            port[9]
define SCL            port[10]
'--------------------------
'---- SYSTEM MEMORY -------
'--------------------------

import "....\LIB\IIC_ERROR.BAS"

'------------------------------------------------------
FUNCTION SHOW_DEVICE(ADDR as byte)
LCD.INIT switchonly
LCD.POS 2,1
LCD.PRINT "FOUND AT: " & ADDR
LCD.OFF
END FUNCTION
'-----------------------------------------------------

#MAIN
'----------- EINSCHALT MELDUNG------------------------
LIGHT=off
LCD.INIT
LCD.PRINT "IIC-DEVICE SEEK"
pause 50
LCD.CLR
LCD.OFF
'-----------------------------------------------------
'-- SUCHE NACH IIC-EINHEITEN MIT ADRESSE xxxxxxx0 ----
'-----------------------------------------------------
#LOOP
define COUNTER as byte
'--------  ADRESSEN DURCHZÄHLEN ----------------------
for COUNTER=0 to 254 step 2
'-------- LAUFENDE ADRESSE ANZEIGEN ------------------
LCD.INIT switchonly
LCD.POS 1,1
LCD.PRINT "SEEK AT: " & COUNTER
LCD.OFF
'-------- IIC DEVICE ANSPRECHEN ----------------------
if (IIC_RESPONSE(COUNTER)= off) then
SHOW_DEVICE(COUNTER)
END IF
NEXT COUNTER
'-------

attributes
ccproject  
ccproject      
end attributes


was das "LCD.INIT switchonly" ist, ist mir nicht so ganz klar aber sonst?! Naja.. ich brauch eh noch n paar Relais für meine Eiswürfelmaschine :)

Ne, also es bringt nichts, das LCD zu initialisieren.. hmm..

Grüße,
Martin

 Antwort schreiben

Bisherige Antworten: