
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
Hallo OMICRO Experten, folgendes unten angeführte Programm 11943IMA.BAS wollte ich mittels OCBAS.EXE compilieren. Ich nutze die DOSIDE mit der neuesten Version 1.07 von OCBAS.EXE, sowie die neueste Include OM.DEF Version vom 14.04.2010 Ich habe schon alles mögliche versucht, bringe aber das Programm mit OCBAS.EXE nicht zum laufen. Jeweils in den Zeilen mit dem Befehl PTA gibt es eine Fehlermeldung ! brset #iport,PTA,warte1 'hier Fehlermeldung Zeile 37: Interne Variable 'PTA' nicht nutzbar. Eventuell fehlt Option ! brclr #iport,PTA,warte2 'hier Fehlermeldung Zeile 41: Interne Variable 'PTA' nicht nutzbar. Eventuell fehlt Option In der Include Datei OM.DEF wird ja am Anfang für die OMICRO die Portzuweisung gemacht u. weiter hinten das Port A Data Register zugewiesen. define pta0 port [1] ' serielle Eindraht-Schnittstelle define pta1 port [2] define pta2 port [3] ' durch Hardware als Eingabe-Pin festgelegt define pta3 port [4] define pta4 port [5] ' gelbe LED define pta5 port [6] ' Piezo-Beeper define PTA ivar [129+&h00] ' Port A Data Register Leider steige ich noch nicht in allen Details des Betriebssystems durch, um zu verstehen, welche Option mir fehlt. Fehlt mir ev. eine Firmwareroutine? Welchen Fehler mache ich noch? Welche Option fehlt bei mir? Vielleicht kann mir jemand weiterhelfen! Vielen Dank im voraus Joe Fenk ############# ' abgeleitet von Eintrag 11943 Forum ccintern.dharlos.de ' Messung Impulse von 10 usec bis 20 usec ' bei gedrehter Phasenlage nur brclr und bset vertauschen ' Programmvorschlag von Dietmar Harlos ' -------------------------------------------------------------------------- ' Kurze Impulse mit der Open-Micro, Open-Mini und Open-Midi messen ' erstellt in OCBASIC 1.05 von Dietmar Harlos am 2. Advent 2006 ' -------------------------------------------------------------------------- INCLUDE "om.def" 'Definitionen fuer Open-Micro und Open-Mini DEFINE iport bPTA3 'PTA3 entspricht PORT[4]; von JF bPTA3 in PTA geaendert DEFINE zaehler WORD 'Speicher fuer Rueckgabe per Variable DEFINE zaehler_l BYTE[1] OF zaehler 'fuer Zugriff im BASIC, denn die DEFINE zaehler_h BYTE[2] OF zaehler ' Open-Micro kann kein WORD WHILE TRUE PRINT impuls 'Aufruf und Rueckgabe des 8-Bit-Werts PRINT zaehler_h PRINT zaehler_l 'alternativ Rueckgabe per Variable PAUSE 10 WEND END FUNCTION impuls INLASM ! clrh '16 Bit Zaehler ! clrx ! sti 'Interrupts deaktivieren #warte1 'solange warten, bis der Port auf LOW geht ! brset #iport,PTA,warte1 'hier Zeile 37: Interne Variable 'PTA' nicht nutzbar. Eventuell fehlt Option #warte2 ! aix #1 'Zaehler erhoehen (inkrementieren), bis ! brclr #iport,PTA,warte2 'hier Zeile 41: Interne Variable 'PTA' nicht nutzbar. Eventuell fehlt Option ! cli 'Interrupts wieder aktivieren ! sthx zaehler 'Zaehlerwert in einer Variable abspeichern. 'Das ist eine Moeglichkeit, den Wert des 'Zaehlers an das BASIC-Hauptprogramm 'zurueckzuliefern. 'Alternativ kann man wie im folgenden 'gezeigt, einen 8-Bit-Wert per Rechenstack 'an das BASIC-Programm zurueckliefern. In 'diesem Fall wird die Funktion mittels '"PRINT impuls" oder "variable=impuls" auf- 'gerufen und deren Wert zurueckgeliefert. ! txa 'nur die unteren 8 Bit des Zaehlers verwenden ! clrx 'und per Firmwareroutine FwPush auf den ! swi ' Rechenstack pushen 'Das SWI wirkt beim Aufruf von Firmware- 'routinen wie ein RTS. Ohne SWI ist also 'noch ein RTS erforderlich! END FUNCTION |
| Antwort schreiben |