Hochsprache zum Programmieren des PIC

Begonnen von picass, 28.06.2022, 18:30:24 CEST

Vorheriges Thema - Nächstes Thema

picass

Irgendwann müssen wir uns auch diesem Thema zuwenden: das Programmieren in einer Hochsprache. Selbst bin ich da nie aus dem Quark gekommen, sondern verblieb und verbleibe bei "meinem" Assembler. Hatte dunnemals mal kurzen Kontakt zu Pascal, welches zu ersten Programmier-Übungen auf einem Home-PC mit i286 CPU - ausgestattet mit zwei 5,25" Floppy-Laufwerken - lief, ist aber lange her.
"C" ist mir viel zu kryptisch, da traue ich mich nicht ran, wohl aus guten Gründen. Irgendwann doch noch ein Versuch einer Hochsprache? Wenn die irgendwie ähnlich zu Pascal sein könnte, würde ich es nochmal versuchen.

Aufgrund einer Anregung von PICkel wurde MicroBasic ins Spiel gebracht. Da habe ich mal kurz bei der anbietenden Firma nachgeschaut. Der Einstieg würde auf ca. 300 Euronen rauslaufen: gut 200 für die Lizenz und dann 80 für den Programmier-Adapter.
Die "c't" bewirbt gerade mal wieder irgend'nen Arduino-Sprößling oder sowas und MicroPhyton. Für dieses MP gibts auch zahlreiche Einführungsliteratur und Bücher.
Was würde zum PIC passen?
Grüße, picass

PICkel

#1
Hallo picass!

Es ist natürlich klar, dass der Umstieg auf eine andere Prog.-Sprache Probleme mit sich bringt.
Ja, mikroE verlangt inzwischen heftige Beträge für den Compiler und für das Programmiergerät microprog.
Aber, wie ich schon schrieb, bis 2kB Hex-Programm ist das Ganze kostenlos. Und wenn man nicht HW-debuggen will, genügt ein einfacher Programmer wie der von sprut.
mikroPASCAL gib es auch, da kann ich aber nicht weiterhelfen.
Für größere BASIC-Programme kann ich gerne helfen.

Arduino ist  m.W. Atmel-basiert. Wenn Du Dich damit abgeben willst...
C - geht wohl meines Wissens
BASIC- ein für Arduino wohl sehr primitiver Compiler
Phyton kenne ich nur als Name.

Guggsdu bitte auch in PN.

PICkel

 (e-mail kommt morgen!)

Peter

Hallo
Programmiere selber auch in MikroBasic. Komme damit auch sehr gut zurecht. Es gibt auch noch MikroPascal,
wenn du damit besser zurecht kommst. Aber aufpassen. Wenn du alle Pics programmieren willst, dann sind das
3 Lizensen. Die unterscheiden da zwischen PIC, PIC32 und PIC24/dsPic. Warum probierst du es nicht einfach
mal aus und installierst die Demo Version. Da hast du bei PIC, 2KByte Programm grösse frei.
Damit kommst du schon ganz schön weit, solange du kein Grafikdisplay programmierst. Um das Programm
in den Pic zu bekommen brauchst du nicht das Programmiergerät von denen. Wenn du das Programm compilierst dann
wird automatisch ein HEX File erzeugt. Dieses kannst du mit jedem Programmiergerät wie z.B PicKit, in den
Controller brennen. Eine andere Möglichkeit ein Programm in den Pic zu brennen wäre, wenn du von dem Entwicklerboard welches
ich hier anbiete, den BootController nimmst. Mit diesem kannst du dann über USB den Controller auch brennen. Wie das
geht steht ja in dem Artikel von mir drin. Den Chip wo das Bootprogramm drauf ist, kann ich dir zuschicken. Kostet dann den Preis
für das IC und Versandkosten. Wird nicht all zu teuer. Aber wie gesagt lad dir einfach die Demo runter und
probier es aus. Dort sind auch einige Demoprogramme dabei, zum ausprobieren.
Wenn Fragen zum Compiler sind dann kann man dir hier sicher helfen.

Peter

vloki

Zitat von: picass in 28.06.2022, 18:30:24 CEST"C" ist mir viel zu kryptisch, da traue ich mich nicht ran
So groß sind die Unterschiede zwischen C und Pascal auch wieder nicht.
Als mir C nach Pascal zum ersten Mal im Studium  begegnet ist, war das erst mal nicht so viel anders.

Pascal habe ich nach einer recht kurzen Zeit mit dem Borland Builder für PC Programme eigentlich nie
mehr benutzt. Im Bereich der von dir verwendeten PICs ist "C" quasi der Standard.
Wird am besten von allen Controller Herstellern unterstützt und hat so auch die größte "Community".

MicroPython oder CircuitPython ist nur was für größere Kaliber, da auf dem Controller Python
laufen muss, das den Programmcode interpretiert. (Der Code wird nicht vorher kompiliert und
in Maschinencode übersetzt)
MPLABX  XC8  KiCAD

vloki

Ups, war für PC Software wohl eher "Delphi" (Pascal) von Borland und dann
recht schneller Umstieg auf C++ Builder von Borland.

Egal - inzwischen nur noch KOSTNIX, am Besten ohne jegliches Registrierungsgeraffel
und läuft auf mindestens auf Win, Mac und Linux ;-)

Finde ich im Bildungsbereich auch sehr wichtig, wenn auf kostenpflichtige Software
möglichst komplett zu verzichten. Beim späteren Einstieg in Berufsleben muss man sich ja
meist eh in neue Software einarbeiten. Also warum vorher unnötig über irgendwelche
finanziellen Hürden springen.
MPLABX  XC8  KiCAD

picass

#5
Da kommen soviele Argumente angerollt, dass es schwierig wird, die alle zu berücksichtigen.
Zunächst habe ich nochmal auf der HP der Anbieterfirma für microBasic und microPascal nachgeschaut. Dabei scheinen die dortigen Werbeargumente zwei nahezu gleichartige Produkte zu beschreiben. Unterstützung für alles, und - ach ja - alles ist möglich.
Schaut man sonst rum, scheint Pascal heutzutage wenig bis kaum verbreitet zu sein, bei Basic sieht es anscheinend kaum anders aus. Kann mich irren, aber der erste Eindruck ist so.
Dort ist eine Art Vergleich für "C", Basic u. Pascal angeboten, indem ein vermeintlich einfaches Programm - mal wieder led-blinken - ausgeführt ist. Habe mit hoffentlich freundlicher Genehmigung dieser Firma Auszüge aus deren Vergleichs-Listening mal in ein Textdokument überführt, siehe unten. Das Beispiel für einen 8-bit-PIC ist werkwürdig kompliziert ausgefallen, zwei weitere für dSP-PIC und einen 24-bitter PIC dann wieder einfacher. Eines kann man wohl sagen: die Pascal-Version liest sich am besten, die Übersichtlichkeit ist nach meinem Geschmack am größten.

Es gibt evtl. ein starkes Argument im Hintergrund: wenn ich das richtig verstanden habe, dann kann man mit Basic und dem angebotenen Programmierer das machen, was bei Microchip nur mit 1.800 €-Geräten klappt: Hardware-Debugging, sogar im Einzelschritt-Modus. Schaut euch bitte mal diesen Programmer für knapp 80 € an, das wäre natürlich ein Hammer.
https://www.mikroe.com/mikrobasic-arm

Ein anderes, für mich wichtiges Argument lauert im Hintergrund. Da geniere ich mich zunächst, die Frage überhaupt zu stellen. Bitte habt Nachsicht, meine Pascal-Klamotte ist Jahrzehnte her und dort schubsten wir nur ein "X" in einem virtuellen Labyrinth rum und Rechnen fand nicht statt - so meine dustere Erinnerung.
Also, zwecks der Abarbeitung von Formeln in meinem Hygro-Projekt: Kann man in solcher Hochsprache da mal den Kampf mit jedem Bit vergessen und die benötigten Multiplikationen usw. ausführen, indem man die Zahlen eingibt und dann halt schlicht einen Befehl dazu? Es handelt sich allerdings um Zahlen wie 0,2345 oder -237,45 oder z.B. auch den Logarithmus zur Basis 10.

Wären solche Rechnungen "einfach" möglich und die Arbeit findet in Bibliotheken und beim Assemblieren statt, dann wäre das ein starker Anreiz für mich.
Grüße, picass

Peter

Also da hast du aber einiges durcheinander gebracht.
Der Link den du gepostest hast ist für ARM Controllern nicht für PICs. Der richtige Link
wär dieser: Programmer
Damit kannst du Hardware Debuggen mit den PICs die der Programmer unterstüzt. Sind zimlich viele.
Software Debuggen machst du im Compiler dafür brauchst du den Programmer nicht. Du kannst im Debug Modus
einzeln durch dein Programm gehen und dir die Inhalte von Variablen anzeigen lassen. Aber das kannst du alles
selber ausprobieren wenn du dir die Demo Version installierst. Wie schon geschrieben für Software Debuggen brachst
du keinen Programmer.
Das Beispiel welches du als Textdatei hochgeladen hast, ist nicht für MikroBasic. Da ist was falsch gelaufen.
Hier mal ein Beispiel für eine BlinkLED.

program LED_Blinking

main:
  TRISA = 0         ' set direction to be output
  TRISB = 0         ' set direction to be output
  TRISC = 0         ' set direction to be output

  while TRUE
    LATA = 0x00     ' Turn OFF LEDs on PORTA
    LATB = 0x00     ' Turn OFF LEDs on PORTB
    LATC = 0x00     ' Turn OFF LEDs on PORTC
    
    Delay_ms(1000)  ' 1 second delay

    LATA = 0xFF     ' Turn ON LEDs on PORTA
    LATB = 0xFF     ' Turn ON LEDs on PORTB
    LATC = 0xFF     ' Turn ON LEDs on PORTC
    
    Delay_ms(1000)  ' 1 second delay
  wend              ' Endless loop
end.

Für Mathematische rechnungen gibt es Befehle.
Z.B log10 ist der Logarythmus zur Basis10. In MikroBasic a=log10(233) ergibt für a=2,367
Dann gibt es noch SIN, TAN, EXP usw. Die komplette Liste bekommst du in der Hilfe vom Compiler.
Sag mal ein Konkretes Beispiel was du rechnen willst dann kann ich es mal in MikroBasic übersetzten.
Wenn du mal auf Video Tutorial gehst, findest du auch ein Video dazu wie der Hardware Debugger funktioniert.

vloki

Zitat von: picass in 29.06.2022, 17:20:26 CESTKann man in solcher Hochsprache da mal den Kampf mit jedem Bit vergessen und die benötigten Multiplikationen usw. ausführen, indem man die Zahlen eingibt und dann halt schlicht einen Befehl dazu? Es handelt sich allerdings um Zahlen wie 0,2345 oder -237,45 oder z.B. auch den Logarithmus zur Basis 10.
Jep, das wird bei allen Hochsprachen so sein.
Tatsächlich wird die entsprechende Zeile sogar überall fast gleich ausschauen,
weil die Namen der Funktionen praktisch identisch sind.
MPLABX  XC8  KiCAD

picass

Das sind ja mal aufmunternde Worte, das mit den Rechenmöglichkeiten.
Natürlich würde ich am liebsten auf ein kostenloses Prog zugreifen oder aber eines, welches nicht gleich mehrere Hundert Euro verschlingt. Aber außer den Progs von der Firma mikroe sehe ich da noch nichts.
Wenn die beiden dort angebotenen Versionen von microBasic und microPascal - so wie es optisch erscheint - nahezu identisch sind, dann würde ich aus alter Anhänglichkeit und weil das so schön zu lesen ist, eher zu der Pascal Version neigen. Große Unterschiede im Aufbau der beiden Programme erwarte ich da nicht, wer also das eine kann, der kann auch....  Werde in den nächsten Tagen einen Versuch wagen.
Grüße, picass

Peter

Ja so gross sind die Unterschiede zwischen Basic und Pascal nicht. Nur wenn ich das Forum sehe, dann tut
sich nicht mehr viel im Pascal Forum. Ich weis auch nicht ob es viele Beispiele noch in dieser Sprache gibt.
Kenne mich in Pascal auch nicht aus und will auch nichts falsches sagen. Daher probier beide Sprachen aus
und entscheide dann was du nehmen willst.
Was es noch gibt ist Creat Cow Basic.
Ist sowie ich es sehe kostenlos.
 

vloki

#10
Hey, das ist doch Nicos Board da in dem Great Cows Basic Video!
MPLABX  XC8  KiCAD

vloki

Zitat von: picass in 30.06.2022, 15:35:05 CESTNatürlich würde ich am liebsten auf ein kostenloses Prog zugreifen oder aber eines, welches nicht gleich mehrere Hundert Euro verschlingt.
Wenn deine "C" Abneigung nicht wäre, könntest du einfach den "C" Compiler des PIC Herstellers nehmen, der wie praktisch alle Hersteller kostenlose Versionen eines C-Compilers zur Verfügung stellt ;-)
MPLABX  XC8  KiCAD

Peter


pic18

also Pascal weiß nicht, ob die Sprache noch aktuell ist. Ich hatte vor 25 Jahren Pascal programmiert. Ist glaube der Nachfolger ist  inzwischen Delphi. Ich programmiere eigentlich immer in C, Zeitkritische Routinen schreibe ich in Assembler. Der Linker bastelt dann das ganze zusammen.

picass

Es gibt/gab doch Möglichkeiten für Basic-Varianten. Eine kurze Umschau förderte zutage, dass Microchip himself da zwei Versionen anbot: PIC Basic Pro einmal in einer ,,Silver" und einmal in einer ,,Gold"-Version. Letztere wurde allerdings abgekündigt. Auf jeden Fall war bei PIC18Fxxx-Typen Schluss, weiter nach oben ging es nicht. Die Gold-Version hatte ca  250 Dollar gekostet, die Silberne ca. 100, die ging aber evtl. nur bis PIC16xxx.
Dann gibt es noch Proton, dessen Name inzwischen ein klein wenig auf "Positron" abgewandelt wurde. Das wird an verschiedenen Stellen gelobt, es gibt auch eine noch funktionierende Kommunity, und – wenn ich beim raschen Hin- u Her-Switchen von Links das nicht verwechselt haben sollte – es gibt bei Ebay in einer Auktion für beide Lizenzen – also 8 bit und mehr-als–8bit -  für 47 Pfund. In deren Forum berichten User, dass ihnen der Umstieg von PicBascicPro auf Proton Vorteile gebracht hätte.

Und dann halt das Microbasic von Mikroelektronika / http://www.mikroe.com. Das ist eine Firma aus Serbien, welche auf ihrer Homepage auf beste, aktuelle Verbindungen zu bekannten Firmen hinweist und sich eines guten Kontaktes zu Microchip rühmt. Da werden PIC von 8 bis 32-bit unterstützt. Nur: das kostet, eine Lizenz alleine fast 300 €, der Preis, den ich neulich nannte, war ohne Mehrwertsteuer. Im Moment soll es eine ,,Sommeraktion 20% off" geben. Auf jeden Fall scheint das eine hoch professionelle Firma zu sein, welche u.a. auch zahlreiche kleine Boards anbietet, z.B. auch mit Sensoren der Firma Sensirion - allerdings nicht mit analogem Ausgang. :(


Habe gestern Nachmittag – um irgendwie weiter zu kommen – die am Vortag downgeladene Version von Microbasic installiert. Die ist ohne Registrierung und sogar ohne Inet-Verbindung während der Install und der Erst-Inbetriebnahme lauffähig, von Kosten war auffällig noch nicht die Rede. Überhaupt sind die Einsatzbedingungen dieser Testversion auf deren Homepage mindestens gut versteckt. Sie ist ja wohl auf 2k beschränkt, wobei ich noch prüfen muss, ob es sich sicher um das Hex-File handelt, wie oben schon mal genannt wurde.
Grüße, picass

Peter

Nein da gibt es auch keinen Hinweis wegen Kosten. Wenn du ein Programm compilierst und du
über die 2KByte Grenze kommst, dann erscheint der Hinweis Demo Limit erreicht.
Sonst ist sie voll einsatz fähig. Welche version hast du denn nun installiert ?
Die hier :https://www.mikroe.com/mikrobasic-pic

PICkel

#16
Also, ich habe das mal ausprobiert was genau mit der 2K-Grenze beim mikroBASIC ist, weil es mich selber interessiert hat. Also Dongle abgesteckt und ein Programm mit nur NOPs für PIC18 geschrieben.
Ergebnis:
- Bis 2038 NOPs lässt sich das Proramm kompilieren.
- das sind 4106 Byte ROM
- Das ASM- File ist 61 kByte (!) groß, da sind aber auch viele Leerzeichen und Kommentare drin
- das HEX- File ist 11,3 KB groß, da sind auch Adressen, Prüfsummen und Zeilenumbrüche dabei (Intel HEX-Format)

Fazit:
Da ein Befehl beim PIC18 2 Byte ROM belegt, liegt die Grenze der Demo- Version bei 2048 Befehlen.
Damit kann man schon etliches anfangen.

Edit: Kompilieren lässt sich übrigens alles, erst der Linker merkt, dass das Prog. zu groß ist!

Übrigens, nur NOPs, so etwas hätte ich mir im Berufsleben manchmal gewünscht. Aktivität vortäuschen, nichts fertigbringen und doch sind alle damit zufrieden.  :))

Gruß
PICkel



picass

#17
Zitat von: Peter in 02.07.2022, 10:51:55 CEST......denn nun installiert ? Die hier :https://www.mikroe.com/mikrobasic-pic
Jepp, genau die: mikroBasic v7.60
Grüße, picass

Schnellantwort

Achtung: In diesem Thema wurde seit 120 Tagen nichts mehr geschrieben.
Wenn Sie nicht absolut sicher sind, dass Sie hier antworten möchten, starten Sie ein neues Thema.

Name:
Tastenkürzel: Alt+S Beitrag schreiben oder Alt+P für Vorschau

Similar topics (5)