
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
Hallo Christian! > lassen sich die 32-Bit-Mikrocontroller auf ARM-Basis denn auch in BASIC programmieren? Die Google-KI spuckt aus: Für den Raspberry Pi Pico 2 W (und dessen RP2040/RP2350-Chips) gibt es eine hervorragende und extrem populäre BASIC-Lösung: PicoMite. Dabei handelt es sich um eine kostenlose Interpreter-Firmware, die auf dem modernen MMBasic basiert. Sie verwandelt den Pico in einen eigenständigen Computer oder ein leicht programmierbares Steuerungsboard. Meine Tests haben bisher Folgendes ergeben: Es handelt sich um einen BASIC-Interpreter, wie er früher, in den 80er Jahren, auf Homecomputern lief. Das Programm wird nur tokensiert, nicht compiliert. Es ist also oft langsamer als auf den OM-Mikrocontrollern mit OCBASIC. Es gibt auch keine Möglichkeit, MMBasic in Maschinensprache zu übersetzen, wie es bei den OMs mit Hilfe von OCBASR möglich ist. Diese Nachteile werden natürlich meist durch den höheren Takt wettgemacht. Den Controller unter Windows 7 32 Bit in Betrieb zu nehmen, war ganz schön knifflig. Zum Glück gibt es die Google-KI. ;-) Ich mußte unter 16 verschiedenen Firmware-uf2-Dateien die richtige auswählen. Ich habe "PicoMiteRP2350BTHV6.03.00.uf2" auf den Pico übertragen und das funktioniert. Aus der Doku: "Versions of the PicoMite firmware that support a USB keyboard/mouse cannot create the serial port over USB so, for this firmware, you should refer to the chapter titled Keyboard/Mouse/Gamepad for the alternative." Ich nutze "MM Edit 5", eine Art MMBasic-IDE. Sie überträgt ein MMBasic-Programm per Seriellen Treiber über COM4 und 115200 Baud zum Raspberry Pi Pico 2. Dort wird das Programm tokensiert und dann ausgeführt. Die Programmübertragung und PRINT-Ausgaben funktionieren mittels MMCC.EXE, eine Art Terminalprogramm. Geschwindigkeitsmessungen: Ich erreiche eine Geschwindigkeit von 17 Sekunden für 10.000.000 FOR-NEXT-Schleifendurchläufen mit Integer. Das sind 588235 Schleifendurchläufe pro Sekunde. Angeblich handelt es um einen "Dual-Core ARM Cortex-M33"-Prozessor mit 150 MHz. Dann sind das 255 Prozessortakte je FOR..NEXT-Durchlauf. Dann habe ich getestet, wie schnell ein Porttoggeln unter MMBasic ist: SETPIN GP0, DOUT DO PIN(GP0) = 1 ' 175 kHz ' 150e6/175.0e3 = 857 TZ PIN(GP0) = 0 ' 135 kHz LOOP Ich messe nur 76 kHz am Pin GP0. Die Open-Maxi erreicht mittels OCBASR und TOG eine Frequenz von 833 kHz am Port. Interpretiert ca. 54 kHz. In MMBasic gibt es ein Problem mit der logischen Arithmetik: Ausdrücke wie "a=0" liefern 1 oder 0 zurück; nicht -1 und 0 wie es eigentlich bei BASIC sein sollte. Aus diesem Grund funktionieren Standard-BASIC-Programme, die logische Ausdrücke wie "a=0 AND 255" verwenden, nicht unter MMBasic! Man müßte "-(a=0) AND 255" verwenden. Da merkt man, daß der Autor von MMBasic von C kommt! Zur Stromaufnahme schreibt die Google-KI: Der Raspberry Pi Pico 2 verbraucht im regulären Betrieb typischerweise zwischen 12 mA und 50 mA bei 5 V, je nach Taktung, Rechenlast und aktiven Peripheriegeräten. Die Leistungsaufnahme liegt bei etwa 80 mW im Betrieb und kann im Deep-Sleep-Modus auf 0,7 mA bis unter 6 mA sinken. Übrigens arbeitet der Controller nur mit 3,3 Volt. Der Pico kann nur deshalb mit 5 Volt betrieben werden, weil ein Schaltnetzteil die Spannung auf 3,3 Volt reduziert. Google-KI: "Auch wenn Sie den Pico mit 5 Volt betreiben, arbeiten die GPIO-Datenpins ausschließlich mit einem 3,3V-Pegel." Das ist wohl ein Nachteil gegenüber OM. Den Hauptnachteil von MMBasic sehe ich darin, daß es keinen integrierten Assembler enthält, wie es bei OCBASIC der Fall ist. Die OM-Controller bieten die gute, leicht zu erlernende 6808-Assemblersprache. Freundliche Grüße Dietmar Passender Link: Offizielle Infosite zu den OM-Mikrocontrollern Meine Homepage: http://ccintern.dharlos.de/ |
| Antwort schreiben |