
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
Hallo zusammen, das folgende Beispielprogramm ist für die beiden OM-Controller Open-Maxi und Open-Macro. Beide Controller sind bei CC-Tools erhältlich. Dort gibt es auch das Open-Micro/Open-Mini-StarterBoard Rev 1.1 für die Open-Macro. Die Digitalports der Controller sind intern beschaltet wie im folgenden Bild dargestellt. Die Schaltung gibt die Verhältnisse ohne die internen Pull-Up-Widerstände wieder. ![]() ' =========================================================================== ' Demoprogramm: Portzugriffe für Einsteiger erklärt I ' In OCBASIC 1.11 für Open-Macro und Open-Maxi am 16. Januar 2024 ' =========================================================================== ' In diesem Beispielprogramm werden die Digitalports, auch Bitports genannt, erklärt. ' Es wird beschrieben, wie die Ports in OCBASIC mit Hilfe der Zuweisungen ' OFF und ON und der Befehle TOG, PULSE und DEACT angesprochen werden können. ' Dieses Programm ist für die Mikrocontroller Open-Maxi und Open-Macro. ' Zum komfortablen Entwickeln gibt es für die Open Macro bei http://cctools.eu/ ' das "Open-Micro/Open-Mini-StarterBoard Rev 1.1". ' --- Definitionen ---------------------------------------------------------- 'INCLUDE "omac.def" 'Definitionen für Open-Macro INCLUDE "omax.def" 'Definitionen für Open-Maxi ' Der folgende Befehl definiert einen Digitalport. ' Der Port kann generell den Zustand 0 (OFF, 0 Volt, GND, Low-Potential) oder ' -1 (ON, 5 Volt, VDD, High-Potential) annehmen. DEFINE port2 PORT[2] 'Einen Digitalport definieren ' --- Hauptprogramm --------------------------------------------------------- PrintSpc=ON 'Bei PRINT dezimale Zahlen mit führendem Leerzeichen ausgeben End2Host=ON 'Bei Programmende (siehe END) gleich in den Host-Modus wechseln PRINT "Demoprogramm: Portzugriffe für Einsteiger erklärt I" PRINT "===================================================" ' --- Digitalport als Eingabeport ------------------------------------------- ' Bei Programmstart nach einem Reset sind alle Digitalports auf Eingang ' geschaltet. Standardmäßig werden die Ports dann durch Pull-Up-Widerstände, ' die sich im Controller befinden, auf High-Potential gelegt. ' Mit dem folgenden Befehl wird geprüft, ob der auf Eingabe geschaltete ' Digitalport namens port2 High-Potential hat. In Abhängigkeit dieses ' Portzustands werden dann mittels PRINT-Befehl Strings ausgegeben. ' Die PRINT-Befehle geben die Strings auf der Seriellen Schnittstelle aus. ' Mittels Terminal32.EXE-Programm können sie mit dem PC empfangen werden. IF port2=ON THEN 'Wenn port2 gleich ON ist, dann führe das 1. PRINT aus PRINT "Der Eingangsport ist HIGH" ELSE 'Ansonsten führe das 2. PRINT aus PRINT "Der Eingangsport ist LOW" END IF ' Open-Macro: Die Pull-Up-Widerstände lassen sich bei Bedarf durch PULLUPA ' und PULLUPB abschalten, wodurch die Digitalports sehr hochohmig werden. ' Open-Maxi: Die Pull-Up-Widerstände lassen sich durch PTAPE, PTBPE und ' PTEPE abschalten, wodurch die Digitalports sehr hochohmig werden. ' Grundsätzlich wird der Pull-Up-Widerstand an einem Port vom Controller ' automatisch deaktiviert, solange der entsprechende Port kein auf Eingang ' geschalteter Digitalport ist. ' --- Digitalport als Ausgabeport ------------------------------------------- ' Sobald der Anwender dem Digitalport einen Wert zuweist, ist dieser auf ' Ausgang geschaltet und wird vom Controller niederohmig auf 0 Volt oder ' 5 Volt gelegt ("Push/Pull"). port2=OFF 'Port auf Ausgabe schalten. Der Port hat dann Low-Potential PAUSE 25 'Eine halbe Sekunde Pause port2=ON 'Port auf Ausgabe schalten. Der Port hat dann High-Potential PAUSE 25 'Eine halbe Sekunde Pause ' Open-Macro: Die Ports sind in der "Push/Pull"-Betriebsart in der Lage, ' relativ hohe Ströme zu liefern, bzw. nach Masse abzuleiten. Laut Datenblatt ' dürfen es kurzzeitig maximal 15 mA an PORT[9] bis PORT[16] und sogar 25 mA ' an PORT[1] bis PORT[6] sein. Im sicheren Bereich arbeitet man aber nur, ' wenn die Summe der Ströme an allen Ports auf 50 mA beschränkt ist. ' --- Umschalten eines Ausgabedigitalports ---------------------------------- ' Umschalten eines Digitalports. Der Port muß vorher wenigstens einmal ' mittels "port = ON" oder "port = OFF" aktiviert werden. TOG port2 'Schalte den Ausgabedigitalport um ' --- Puls an einem Ausgabedigitalport ausgeben ----------------------------- ' Ausgabe eines Pulses an einem Digitalport. Der Port muß vorher wenigstens ' einmal mittels "port = ON" oder "port = OFF" aktiviert worden sein und wird ' durch PULSE zweimal geTOGgelt. Die Pulsbreite beträgt auf der Open-Macro ' mindestens 4 µs und auf der Open-Maxi 10 µs. PULSE port2 'Gebe einen Puls an einem Ausgabedigitalport aus ' --- Ausgabeport wieder auf Eingang schalten ------------------------------- ' Mit dem Befehl DEACT wird ein Port, der vorher als Ausgang benutzt wurde, ' wieder auf Eingang geschaltet, also in den hochohmigen Anfangszustand ' versetzt. Die Pull-Up-Widerstände im Controller sind dann wieder aktiv, ' sofern sie nicht vom Anwender abgeschaltet wurden. DEACT port2 'Ausgabeport wieder auf Eingang schalten ?:?"Programmende." END 'Zurück in den Hostmodus. Neustart mit RETURN-Taste. ' --- Programmende --------------------------------------------------------- Viel Spaß und Erfolg mit den OM-Mikrocontrollern! Dietmar Passender Link: Bedienungsanleitung zur Open-Macro und Open-Maxi Meine Homepage: http://ccintern.dharlos.de |
| Antwort schreiben |