Der Nachfolger des WDR-Computerclub mit Wolfgang Back und Wolfgang Rudolph - ...und immer ein Bit übrigbehalten!


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 

 Arrays auf den OM-Mikrocontrollern Kategorie: Open-Micro/Open-Mini/Open-Midi/Open-Macro/Open-Maxi (von Dietmar, Homepage - 1.05.2018 19:38)
Dietmar nutzt:  Open-Micro, Open-Mini, Open-Midi, Open-Macro, Open-Maxi, Open-Mini M-Unit, Open-Mini Station
' ----------------------------------------------------------------------------
' Arrays auf den Open-Control-Mikrocontrollern
' In OCBASIC 1.11a für Open-Macro von Dietmar Harlos am 1. Mai 2018
' ----------------------------------------------------------------------------

' Die C-Control-I-Systeme bieten maximal gerade einmal 256 BYTE-Variablen.
' Unter diesen Umständen macht es meiner Meinung nach keinen Sinn, Arrays zu
' unterstützen. Wie es aber trotzdem geht, wird in diesem Beispielprogramm
' demonstriert.

' Auf der Open-Maxi können mittels PEEK und POKE größere Datenmengen außerhalb
' des USER-RAMs gespeichert werden. Es stehen dann insgesamt über 1800 Byte
' RAM zur Verfügung.

' ----------------------------------------------------------------------------

INCLUDE "omac.def"         'Definitionen für die Open-Macro

' ----------------------------------------------------------------------------

DIM a1,a2,a3,a4,a5,a6,a7,a8 BYTE   'Ein Feld mit 8 Bytes (8 Elementen)
DEFINE array a1                    'alternativer Bezeichner für das Feld

DEFINE ^pb BYTE            'Zeiger auf ein Byte im USER-RAM

' ----------------------------------------------------------------------------

pb=^array                  'Zeiger mit Anfangsadresse des Arrays laden

@pb=123                    'Byte an der Stelle ändern, auf die pb zeigt

ADD pb,1                   'Pointer erhöhen, zeigt jetzt auf das 2. Byte

@pb=18                     'Byte an der Stelle ändern, auf die pb zeigt

a3=234                     'Drittes Byte im Feld direkt beschreiben

PrintSpc=ON                'SPACE vor einem dezimalen PRINT ausgeben

PRINT "Arrayinhalt direkt:";
PRINT a1;a2;a3;a4;a5;a6;a7;a8

PRINT "Arrayinhalt per Zeiger:";
FOR pb=^array TO ^array+7
  PRINT @pb;
NEXT pb
PRINT

End2Host=ON                'Nach Programmende in den Host-Modus
END                        'Programmende, Neustart mit der Enter-Taste

' ----------------------------------------------------------------------------


Meine Homepage: http://ccintern.dharlos.de

 Antwort schreiben

Bisherige Antworten: