PICALIC Lichtcontroller nach ALIC Standard - V. 1.0
Über PICALIC V1.0
Kochbuch
Datenblatt
Implementierter ALIC-Befehlssatz
#defines
LED Treiber-
schaltungen

Kontakt

Anpassung der Firmware:

Über die "#define ..."-Zeilen in der Datei picalic.asm wird die Übersetzung des Codes gesteuert und so kann der Controller auf die jeweiligen Erfordernisse angepasst werden.
Die Bedeutung der einzelnen Parameter:

#define  ALICFILE <File>
Angabe der Datei, die den ALIC-Quelltext für den Lichtsteuercode enthält.
#define CLOCK <4|8>
CPU Taktfrequenz (4 or 8 MHz).
8 MHz ist ohne externe Takterzeugung nur beim PIC16F636 möglich.
Eine höhere Taktfrequenz ermöglicht eine höhere PWM Auflösung und/oder höhere PWM-Frequenz.
#define NCHAN <1..8>       
Anzahl der Ausgangskanäle (1..8)
Beim PIC12F675 sind maximal 5 Kanäle möglich.
#define ACTIVELOW <0|1>
LED-Ausgänge sind invertiert wenn dieser Parameter = 1, d.h. der Controller-Ausgang nimmt Low-Pegel (ca. 0V) an, um die LED einzuschalten. Verwendung hauptsächlich für Direktansteuerung der LEDs durch den Controller, da der Ausgang bei "Low" mehr Strom liefern kann.
#define AUXOUTA <Ausgänge>  
definiert freie RA-Ports als Ausgang, wenn das entsprechende Bit (0..7) auf "1" gesetzt wird. Diese können dann durch die ALIC-Befehle"SETSWX" und "CLRSWX" zur Ausgabe genutzt werden.
Auf Ports, die bereits durch Ausgangs-Kanäle oder für RC-Eingangsimpulse belegt sind, hat dieser Parameter keinen Einfluss.
Port RA3 kann bei PIC16F630 und PIC16F636 nicht als Ausgang verwendet werden. 
Port RA5 kann bei PIC16F627, PIC16F628 und PIC16F648 nicht als Ausgang verwendet werden.

#define AUXOUTB <Ausgänge>  
definiert freie RB-Ports als Ausgang, wenn das entsprechende Bit (0..7) auf "1" gesetzt wird. Diese können dann durch die ALIC-Befehle"SETSWX" und "CLRSWX" zur Ausgabe genutzt werden.
Auf Ports, die bereits durch Ausgangs-Kanäle oder für den RC-Eingang belegt sind, hat dieser Parameter keinen Einfluss.

#define AUXOUTC <Ausgänge>  
definiert freie RC-Ports (bzw. GP beim PIC12F675) als Ausgang, wenn das entsprechende Bit (0..5) auf "1" gesetzt wird. Diese können dann durch die ALIC-Befehle "SETSWX" und "CLRSWX" zur Ausgabe genutzt werden.
Auf Ports, die bereits durch Ausgangs-Kanäle oder für RC-Eingangsimpulse belegt sind, hat dieser Parameter keinen Einfluss.
PIC12F675: Port GP3 kann nicht als Ausgang geschaltet werden. 
Anmerkung: "RC" bei der Bezeichnung der Prozessor-Ports hat nichts mit "Radio Control" zu tun!
#define COMMTICK <0|1>
Wenn dieser Parameter auf "1" steht, ist die Zeiteinheit (Tick) für alle Ausgangskanäle fest auf 10 ms eingestellt. "DEFTICKLEN" wird dann ignoriert (spart RAM im Controller). 
 
#define PWMTU <Zeit>
definiert die Länge der PWM-Zeiteinheit in Microsekunden. In Verbindung mit dem Parameter PWMCYC ergibt sich daraus die Länge eines PWM-Zyklus (T) und daraus die PWM-Frequenz (1/T). Empfohlener Wert: 100 bei 4MHz Takt, 50 bei 8 MHz.
#define    PWMCYC <Schritte>
gibt die Anzahl der Schritte (* PWMTU) in einem vollen PWM-Zyklus, und damit auch die Helligkeits-Auflösung, sowie zusammen mit PWMTU die PWM-Frequenz.
 
#define RCCHAN  <0|1|2>      
definiert die Anzahl der vorhandenen RadioControl-Eingänge (0, 1 oder 2).
#define RCHYST  <Wert>
Hysterese für RC-Prozessing (* 8 µs)
#define STARTSW <bits>
Setzt einen Start-Status für die RC-Memory Schalter (Nummer 15..8) 
#define RCPW_HIGH <Schwelle>
RC-Impuls Schwellwert (90: ca. 1,7ms) für Betätigung des Memory-Schalters
64 = 1,5ms, 1 Schritt = 8 µs
#define RCPW_LOW <Schwelle>
RC-Impuls Schwellwert (39: ca. 1,3ms) für die andere Richtung des Schalters
#define MS_LONG <Zeit>
min. Haltezeit des Knüppels in der Endstellung für Betätigung der Memory-Switch Funktionen 3 und 4 (Zeit in 1/10 s, max.15 =  1,5s möglich)