'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIII
'IIIIIII DEMO ZUM BASIC-COMPUTER UNIT M 1.2/2.0 (by DIE HARD) IIIII
'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIII
'--------------------------------------------------------------------
' Beispiel zum BASIC-COMPUTER mit dem Programmer/Application-Board
'--------------------------------------------------------------------
' ANWENDUNG: EREIGNISZÄHLER FREQ1 und FREQ2
'
'--------------------------------------------------------------------
' Dieses Beispiel zeigt die Vorgehensweise um die beiden Frequenzzähler
' als Ereigniszähler zu konfigurieren und abzufragen. Die Konfiguration
' erfolgt über ein KONFIGURATIONS-REGISTER, das wie alle erweiterten
' Funktionen über die "REDIRECT PRINT" Funktion gelesen und geschrieben
' werden kann.
'--------------------------------------------------------------------
' Das Konfigurations-Register bietet folgende Optionen.
'
' Bit 0 Schaltet beide PWM-DACs in den SERVO-Mode
' Bit 1 Schaltet den Frequenzzähler 1 in den EREIGNISZÄHLER Mode
' Bit 2 Schaltet den Frequenzzähler 2 in den EREIGNISZÄHLER Mode
' Bit 3 Aktiviert die PULLUP-Widerstände an PORT 1 bis 8
' Bit 4 Aktiviert die PULLUP-Widerstände an PORT 9 bis 15
' Bit 5 Zeigt an wenn die interne Uhr mit DCF77 synchronisiert wurde
' Bit 6 Signalisiert einen Fehler bei der IIC-Kommunikation
' Bit 7 Zustand der Start-Taste
'---------------------------------------------------------------------
' Einzelheiten darüber finden Sie in den Demos zu den EXTENDED FUNCTIONS
' - LCD MODULE über die zusätzlichen Funktionen für das LCd
' - CONFIG MODULE über die zusätzlichen Funktionen für die Konfiguraton
'
' Beschreibung:
' FREQ1 und FREQ2 sind Systemvariablen die nicht separat angelegt werden
' müssen. Ist der Zähler als Ereigniszähler konfiguriert, beeinhalten diese
' Variablen den aktuellen Zählerstand von Ereignissen.
' Im CONFIG-REGISTER bestimmen Bit 1 und Bit 2 die Funktion von FREQ1 u. FREQ2
' Beide Eingänge können getrennt konfiguriert werden, d.h. während einer
' der Eingänge ein Ereigniszähler ist kann der andere auch ein Frequenzzähler
' sein.
' Die Zähler können gelöscht werden, wenn den Systemvariablen jeweils der Wert 0
' zugewiesen wird.
' Ausserdem können Sie den Zählern beliebige Anfangswerte zuweisen, z.B.
' einem Zählerstand vom Vortag
' Der Ereigniszähler kann einen max. Wert von 32767 annehmen und zählt dann
' nicht mehr weiter
' Wenn Sie einen Frequenzgenerator an diese Eingänge anschliessen werden
' die registrierten Impulse im LCD angezeigt.
' Behelfsweise können Sie den DA1 Ausgang mit dem Frequenzzählereingang
' verbinden. Er erzeugt etwa 1880 Impulse pro Sekunde.
'
' In diesem Beispiel wird der Zähler 1 bei Null und der Zähler 2 bei 1000
' gestartet. Beide Zähler werden bei 32767 gelöscht.
' Der Wert für jeden Zähler wird auf dem LCD ausgegeben.
' Für die Anzeige selbst wird die "REDIRECT PRINT" Funktion verwendet,
'-----------------------------------------------------------------------
'--------------------------
'------ I/O PORTS ---------
'--------------------------
'--------------------------
'---- SYSTEM MEMORY -------
'--------------------------
define TEMPVAL byte[1]
#INIT
'--UMLEITUNG DER PRINT-FUNKTION AUF DAS CONFIG-MODULE -
print"#ON_CONFIG#"; 'UMGELEITET
get TEMPVAL 'den aktuellen Wert lesen
put (TEMPVAL or &B0000110) 'Bits setzten und zurück schreiben
print"#OFF#"; 'Umleitung abschalten
'--UMLEITUNG DER PRINT-FUNKTION AUF DAS LCD-MODULE ----
print"#ON_LCD#";
print"#INIT#";
'----- ZÄHLER 1 AUF EINEN STARTWERT EINSTELLEN --------
FREQ1=1000
'-------------------------------------------------
'-- DISPLAY DATA LOOP -
'-------------------------------------------------
#LOOP
print"#L101#"; 'CURSOR AUF ZEILE 1 POS 1
print"EVENTS1: ";
rint FREQ1 ; 'AUSGABE FREQUENZ
print" "; 'REST DER ZEILE LÖSCHEN
print"#L201#"; 'CURSOR AUF ZEILE 2 POS 2
print"EVENTS2: ";
rint FREQ2; 'AUSGABE FREQUENZ
print" "; 'REST DER ZEILE LÖSCHEN
'---- ZÄHLER BEI MAX. ZÄHLERSTAND LÖSCHEN -------
if FREQ1=32767 then FREQ1=0
if FREQ2=32767 then FREQ2=0
goto LOOP
Lesezeichen