Aus für die PIC-Programmierung

Begonnen von picass, 10.11.2024, 17:39:57 CET

Vorheriges Thema - Nächstes Thema

picass

Nachfolgendes schreibe ich nach Absprache mit unserem Moderator hier rein, weil dieser Fred erst nach Einloggen sichtbar ist.


Meine Entscheidung ist gefasst: so – wie bislang – kann es nicht weitergehen. Daher teile ich meinen Ausstieg aus der Programmierung von PICs mit.

Anstoß war der Gedanke, die Keller-Entfeuchtung selbst programmieren zu wollen. Monatelanges Bemühen, um die Mathematik für die Taupunkt-Formel in ein für mich handelbares Format bei den 8-Bit-PICs und der ,,mittleren" Assembler-Version des MPLAB X zu quetschen, führten nicht nur nicht zum Erfolg, sondern im Gegenteil nun zur Einsicht: Es geht nicht und deswegen Schluss damit.
Weiterer Anlass war der Wunsch, moderne, also auch Sensoren nutzen zu können, welche digitale Signal-Übertragung erfordern wie I²C. Zumindest ich sehe da keinerlei Unterstützung in Form von Bibliotheken, die fertig und passend und einfach zu integrieren wären.

Den berühmten Tropfen des Überlaufens löste nun der Heise-Verlag aus. Der sandte in den letzten Tagen ein Sonderheft der Redaktion der ,,c't" mit dem Titel: ,,Das c't-Bastel-Kompendium", welches auf 180 Seiten Anleitungen, Hinweise, Tipps etc. für Programmier-Anfänger ( bis Könner) bietet, sowohl bei Prog-Sprachen als auch bei Micro-Controllern. Ist klar: von PICs war da nirgendwo die  Rede, nicht mal als Stichwort und Assembler wurde nur als gelegentliche Spezial-, vor allem aber nur als Teil-Anwendung genannt. Leuchtendes Beispiel stattdessen aber MicroPython (MP) und Raspberry Pi Pico.

Und das wird nun mein letzter Versuch werden: MP als angeblich leicht zu erlernende Hochsprache, und die dann auf einen 32-Bitter los lassen. Das könnte es vielleicht doch noch für mich ermöglichen, sowohl die Mathe-Arbeit als auch die IO-Schnittstellen zu nutzen. Ich bin jetzt 78 Jahre alt. Mein Lernvermögen ist allein aus diesem Grunde reduziert. ,,C" ist mir  viel zu abstrakt, ich muss ein Programm lesen können. Basic....... hätte sein können, aber die auch hier im Forum teils genutzte Version ist von der Herstellerfirma abgekündigt, ebenso wie die Unterstützung dafür.

Nun also der letzte Versuch. Es kann durchaus so werden, dass auch der scheitert. Ein MP-Forum wurde bereits vor Jahren geschlossen und die Fortführung kurzerhand nach ,,Github" verlegt. Wie unpersönlich es da zugehen wird, kann man sich leicht ausrechnen. Ein anderes, sogar deutsch-sprachiges Forum ist schon in seiner Präambel Anfänger-unfreundlich bis zum Abwinken: Fragen nur dann, wenn man sämtliche MP-Tutorials gelesen hat  und das vor der Frage dann gleich nochmal. Und im Übrigen sollte man sich Fragen nach Möglichkeit selbst beantworten! Was die ,,fortgeschrittenen" User in keinster Weise darin hindert, sich gegenseitig mit Fragen und Problemstellungen  zu bewerfen. Die vermeindliche Anwender-Freundlichkeit bekommt bei solcher Betrachtung doch reichlich Risse. Wenn auch dieser Anlauf wieder nur zu verschwendeter Zeit führt, werde ich dieses Hobby an den berühmten  Nagel hängen müssen.

Diesem Forum möchte ich damit nicht direkt den Rücken kehren. Aber es hat nun mal einen Namen und das passt dann ja auch kaum zusammen. Die PICs sind für mich nicht ganz am Ende. Ein klein wenig muss ich noch dabei bleiben, um eingreifen zu können, wenn einer der bislang errichteten Anlagen, rsp. in Betrieb befindlichen Schaltungen eine Störung aufweist. Vielleicht wird auch mal eine Winzig-Schaltung, welche nur eine sehr spezielle (Teil-) Funktion zu einem anderen Projekt beisteuert, noch neu erstellt. Aber für übliche neue Projekte ist der PIC für mich nun leider außen vor. In meiner PIC-Sammlung liegt nun Überflüssiges, z.B. auch etliche PIC16F....... Falls jemand Interesse haben sollte, bitte  melden. Auch der erst vor Kurzem gekaufte Programmer PICkit 5 wird obsolet und ggf. demnächst bei Ebay auftauchen.

Bin traurig über all dieses, aber ich kann nur noch diesen Weg sehen,
picass






pic18

finde ich schade, ich programmiere von Anfang an den Pic in C, vorher hatte ich über 10 Jahre überhaupt nichts programmiert. Mit Basic und Assembler hatte ich am C64 angefangen. Später am PC hatte ich in Turbo Pascal danach Delphi, was der Nachfolger von Pascal ist, programmiert. C ist eine alte Sprache, der Quellcode von Linux und auch Windows sind in C programmiert. (Windows auch C++ und C#).
Was mich am Anfang geärgert hatte, das es für den Pic sehr wenig deutsche Foren gibt, sowie wenig Programmbeispiele. In der Industrie ist der Pic gegenüber dem alten Atmel vorne. Microchip ist ja inzwischen Atmel. Assembler ist zu aufwendig um größere Projekte zu programmieren. In C habe ich ein sehr großes Projekt mit dem 18F4685 geschrieben, hier frage ich "moderne Fühler" ab und ich habe ich mehrere Schnittstellen programmiert. Diesen kann ich noch händeln, die größeren, sind meist in ein SMD-Gehäuse, da kann ich nicht so einfach ein Pin woanders hin verlegen. Was I2C angeht, so macht die ganze Schnittstelle die Hardware beim 18er. Man muss nur die Zeiten (teiler), Stopbit usw. eingeben. Ich habe im Anhang mal eine library vom alten C18 im Anhang angehängt. Ob das MicroPython so viel leichter zu programmieren ist, wage ich zu bezweifeln. ich hatte mir mal ein paar Programmschnipsel angeschaut, die kann ich auch lesen.





pic18


^Cobra

Verstehe zwar deinen Frust aber der Vergleich 8bit Pic gegen Raspberry ist Recht... Interessant.
Da könntest du genau so gut ein 24bit Pic nehmen mit entsprechender Umgebung.
Bin sicher das du hier Hilfe bekommst. Will dir das in keinster Weise Ausreden, aber um Mal Spruts Worte nah zu legen: es bringt nichts für eine bestimmte Aufgabe auf ein anderes Pferd zu setzen,nur weil es hier ein klein Vorteil hätte. Lebe mit den schwächen und genieße/nutze die Stärken.

Gruß 
Cobra


picass

Zitat von: pic18 in 10.11.2024, 19:38:56 CETIch habe im Anhang mal eine library vom alten C18 im Anhang angehängt. Ob das MicroPython so viel leichter zu programmieren ist, wage ich zu bezweifeln. Programmschnipsel....
Deine sicher gut gemeinten Hinweise/Hilfen sind der beste Beweis dafür, dass es so und unter Assembler eben nicht funktioniert. Dein verlinktes File ist  in "C" und die 22 Seiten tragen ausschließlich zu Verwirrung bei.

Der Erfolg z.B. der Arduino-Bastler liegt darin, dass es für diesen Bereich
- sehr preiswerte, gut dokumentierte und funktionierende µC's und
- sehr preiswerte, bestens dokumentierte Zusatzschaltungen wie Sensor-Platinen und vor allem
- FERTIGE Programme und FERTIGE Bibliotheken für genau den benutzten µC und genau den benutzten Sensor gibt.

Da ist nicht ein Heer an Hochbegabten angetreten, welches ohne Ingenieur- oder IT-Studium aus dem Stegreif raus zu Programmier-Künstlern gereift ist, nix! Die Hersteller all der Hardware hatten dafür gesorgt, dass mit leichtem Zugriff fix und fertige Programme vorhanden waren. Und die  wurden dann schlichtweg downgeladen, evtl. anstelle von Port-Pin 5 nun Port-Pin 2 gewählt, und das wars dann mit dem "Programmieren".
Und für Mathe gilt Gleiches: statt sich mit Tücken - freundlich formuliert: "Eigenheiten" oder "Anwendungs-Voraussetzungen" - bei so was Hoch-Wissenschaftlichem wie einfacher 8-bit-Subtraction rum plagen zu müssen, wird eine schmale Zeile eines Rechenbefehls eingegeben und dann gibts das Ergebnis!
Es ist wie fast immer: aus der Sicht der "Experten" ist alles einfach und selbstverständlich. Was dem einen oder anderen Experten entfallen ist, das ist das Bewusstsein, dass es um das eigene Vermögen und die eigenen Wege überhaupt nicht geht, sondern um die Sicht und den Weg von anderen.
Ob der von mir nun eingeschlagene Weg der Richtige ist, kann ich erst nach einer guten Wegestrecke sagen. Aber die o.g. genannten oder skizzierten Fachleute weisen mit Vehemenz auf ihn. Das gilt es nun, zu verifizieren.
Grüße, picaa


picass

#5
@Cobra : deinen Text hatte ich vor dem Einstellen meines obigen Beitrages noch nicht gelesen. Aber nun möchte ich darauf eingehen.
Unter Wahrung jedweder gebotener Höflichkeit und jedweden Respekts......! Aber....., Cobra, hast du auch nur eine Viertel-Sekunde nachgedacht über deine Empfehlung mit den PIC-24-Bittern? Offenkundig nicht, denn wenn ich mit meinen Assembler-Künsten am 8-Bitter fest klemme, wie soll das dann bei den 24-Bittern aussehen?! Hast du auch nur einen einzigen Blick auf die Assemblersprache für diese 24-B-Typen geschaut? Die Frage ist überflüssig! Schon die neueste 8-B-Assembler-Version des MPLAB X ab v5.40 kommt einer Fremdsprache gleich. Diejenige für die 24-B-Typen ist nicht mal mehr Chinesisch, das liegt noch viel weiter dahinter. Und hast du aus meinen letzten Beiträgen nicht raus gelesen, dass mit ,,C" bei mir nichts gelaufen ist?! Du bestätigst unfreiwillig, was ich am Ende meines vorigen Beitrages schrieb, dass dem Einen und auch dem Anderen der Blick auf die Bedürfnisse anderer durchaus völlig aus der Sicht geraten kann.

Habe heute Nachmittag erstmals die neue Traum-Kombi zum Leben erweckt, also den Raspberry Pi Pico unter Micro-Phyton (µP) . Dazu wurde das µP via normalen PC direkt in den Controller ins Flash geschoben und arbeitet seidem dort. Zudem gabs auf dem PC eine Entwicklungs-Umgebung – so was wie eine IDE – namens "Thonny", welche in einem Fenster die direkte Eingabe und Ausführung eines einzelnen Befehls ermöglicht und in einem anderen F die Eingabe eines Programms, das man nach dem Speichern, rsp. Rüberschieben  auf den µC mit einfachem Click auf einen ,,Start"-Button starten kann.

Is klar: ,,Hello World" und ,,Led-Blinken" bilden auch hier den Anfang. Und dann die erste Nagelprobe, eine einfache Rechenübung. Nach der Einfachen sofort die Komplexe, welche mich mit PIC-Assembler Tage beschäftigt hätte: die Multiplikation von Fließkomma-Zahlen. Und hier......?
Eintippen, Start-Button, Zack und fettich! Über die paar Sekunden lohnt es sich nicht zu reden. Wenn es mir ab morgen gelingen sollte, das in ein kleines Programm umzusetzen, dann ist die PIC-Programmierung, genauer gesagt: die PIC-Quälerei für mich tod.
Grüße, picass

ADMIN

Ich sehe hier keinen Grund mehr warum die Beiträge noch in diesem Bereich bleiben sollten.
Daher werde ich ihn nach Off Topic verschieben, wo er besser hin passt.
Sollte etwas dagegen sprechen, so sagt mir Bescheid. Bis morgen wird er noch hier bleiben.

Euer ADMIN.

pic18

denke ich auch, vielleicht kann man auch eine Spalte aufmachen, falls es nicht dem eigentlichen Forum "pic-microcontroller" wiederspricht.

ADMIN


picass

Die Beweggründe, warum ich meine Beiträge über das Thema "PIC-Programmier-Aus" nicht in einen jederzeit von außen sichtbaren Bereich einstellen wollte, waren:
- meine Nachrichten sollten sich ausschließlich an die Forenmitglieder wenden;
- es war absehbar, dass einige Statements keine Werbung für dieses Forum darstellen würden, weil sie halt sowohl gänzlich andere µC's anbelangen und vor allem deutliche Kritik vornehmen, rsp. wenig schmeichelhafte Aussagen am Umgang mit den PIC-µCs treffen würden. So was sollte nach meiner Meinung ausschließlich intern ablaufen und sichtbar sein. Aber bitte....., wenn die Moderation da nicht zimperlich sein sollte....

Heute gings mit der Einarbeitung in MicroPython weiter. Das Wichtigste war der Versuch, die I²C-Technik zu ermöglich, um moderne Sensoren auslesen zu können. Als Sensor wurde einer von BOSCH ausgeschaut, ein BME280. Den bitte nicht einzeln -also ohne Platine kaufen, weil er aufgrund seiner Winzigkeit nicht den Hauch einer Chance fürs Selbstlöten lässt. Der S generiert dreifach Daten: die Temperatur, den Luftdruck und die Feuchtigkeit, wobei die T mal locker mit 2 Stellen hinterm Komma präsentiert wird.

Die Schaltung ist mehr als schlicht und ohne Löten ist das in Windeseile zusammen gestöpselt. Das grüne Board trägt u.a. den µC, der Sensor ist nicht zu sehen, weil er kopfunter auf der Winzig-Platine rechts oben sitzt.
Also die Prog-Umgebung namens "Thonny" aufgerufen, dann ein paar Zeilen abgetippt - so what ?! - , wobei die hoch-komplexe  Bibliothek mit wenigen Clicks aus dem Inet zugeladen wurde, dann speichern, dann den Start-Button beclicken und sich wundern: gleich beim allerersten Versuch scrollten die Zeilen mit den Ergebnissen über den Bildschirm. Das wollte ich erst gar nicht glauben: nix tagelange Schikanen, nix Flöhe-Suchen.... einfach etwas Clickern und dann Staunen. Ist so was von abgefahren!!! Wovon ich in den  letzten drei Jahren geträumt hatte und keine Chance hatte, das zu realisieren, war nach weniger als 24 Stunden wahr geworden!
Der µC kostet 4,50 € bei Reichelt, der T-Sensor in etwa Gleiches und das wars dann.

Ja..., Freunde des PICs, und das wars dann bei mir mit PIC-Programmieren. Never ever! Es gibt nicht nur Besseres, es gibt im Vergleich statt elenden Gewürges nun überhaupt und ultra-raschen Erfolg! Tschüß PIC...., Abgang mit Grauen!
Grüße, picass
i2c_1.jpgi2c_2.jpg

Peter

Da es sich auf solchen Boards meistens um ATMEL Controller handelt,
kann man hier, in dem entsprechendem Board, seine Programme oder andere Sachen
hinterlassen.


pic18

sehr schön, freut für Dich. Du kannst ja deine Arbeit unter Atmel Controller einstellen. Das ist sicher eine sehr schöne Bereicherung für dieses Bord. Auch schätze ich dein Fachwissen in punkto PC.
Für mich sehe ich keinen Anlass zu wechseln. Beim Pic kann ich die Schnittstelle genauso bedienen. Mit einem mehr oder weniger vorgefertigten Programm kann ich wahrscheinlich auch nichts anfangen, wenn ich da mehrere verschieden Schnittstellen benötige und meinen eigenen Stil programmiere.

picass

#12
Zitat von: Peter in 13.11.2024, 16:20:34 CETDa es sich auf solchen Boards meistens um ATMEL Controller handelt......
Bin jetzt nicht über Nacht zum Experten für das von mir nun favorisierte µC-Board "Rasperry Pi Pico" geworden. Aber soweit ich das sehe, handelt es sich bei dem darauf montierten µC nicht um eine Atmel-Produktion.
Es sieht wohl so aus, dass die Firma "ARM" diverse µC-Prozessoren selbst entwickelt hat, aber nicht auch selbst herstellt. Vielmehr verkauft ARM Lizenzen für die Fertigung von Prozessoren an verschiedene Firmen und die bauen dann. Aus ihrer Lizenz-Entwicklung geht es in diesem Bereich mit Cortex-M0+ los, dann kommen M1, M2 usw. Die hier benutzten M0+ Typen sind mitnichten alle von einer Firma hergestellt. Die bei Microchip eingestellten Typen der Firma Atmel sind andere als die auf dem Pico Sitzenden. Hinweise auf deutliche Unterschiede lassen sich auch dadurch aufzeigen, dass auf der Microchip Homepage unter MicroPython sich kein einziger Treffer finden lässt und unter Python nur ein einzelnes, abgefahrenes Beispiel für Internet of things. Das dort zum Atmel M0 angebotene Experimentierboard startet denn auch bei weit über 300 Dollar. Das ist eine völlig andere Welt und es gibt da keinerlei Schnittstellen zu den Produkten der Raspberry-Welt.
An mir soll es nicht liegen, aber ich wäre hier als totaler Allein-Unterhalter mit dem  Pi Pico unterwegs.
Grüße, picass


Peter

ATMEL so heisst die Firma. Sie stellt z.B Cortex M Prozessoren her und viele andere.
Das stimmt so auch nicht denn Atmel ist von Mikrochip aufgekauft worden.
Auf den Rasperry Boards sind meistens Atmel Controller verbaut worden.
Like Like x 1 View List

Peter

Zitat von: picass in 15.11.2024, 11:41:50 CETAn mir soll es nicht liegen, aber ich wäre hier als totaler Allein-Unterhalter mit dem  Pi Pico unterwegs.
Grüße, picass



Einer ist immer der erste. Vielleicht kommen dann ja noch andere die das Thema interessiert.

pic18

Zitat von: picass in 15.11.2024, 11:41:50 CETich wäre hier als totaler Allein-Unterhalter mit dem  Pi Pico unterwegs
kann schon sein, aber du kannst uns trotzdem an deinen Erkenntnissen teilhaben lassen. Für 3-4 Euro (Pollin) finde ich das Bord äußerst günstig. Zumal schon ein fertiger USB Anschluss vorhanden und es ein schneller Prozessor ist. Evtl. kann ich dir auch bei irgendwelchen Hardware -und Softwareproblemen helfen.

Ottmar

Zweifellos, abweichend von PIC-MCU's, sind Erfolge mit anderen Prozessoren rascher zu erzielen.
Arduino ist eine gute Möglichkeit. Ohne Einarbeitung geht das aber auch nicht. Zugegeben nich so intensiv wie bei den PIC's. Ab und zu gehe ich daher "fremd" mit Arduinos, wie z.B. aktuell mit dem selfbalancing robot "Tumbller"  von eleego. In dessen Brust steckt ein Arduino nano.

Dennoch, wenn ich wissen will wie es wirklich funktioniert, komme ich nicht von den leicht zugaenglichen Registern und Modulen der PIC's weg. Derzeit gehe ich I2C per Assembler an und da sehe ich keine Probleme. Das MSSP-Modul macht es recht einfach - so sieht es wenigstens fuer mich aus. Wenn das Wetter mal nicht so ist (hier haben wir Sommer) arbeite ich mich, Stück für Stück da rein, bin auch schon vorangekommen, schliesslich gibt es hierfuer die zielfuehrende Druckschrift AN989 u.a. von microchip. Ziel ist ein LCD mit PCF8754 Portexpander per I2C anzusteuern und Text auszugeben..

Aus meiner Sicht sind die Moeglichkeiten welche die PIC 16F/18F bieten einfach interessant und bei Weitem noch nicht ausgereizt. Das ist natuerlich bei mir mehr oder weniger auch Selbstzweck, um weiterhin meinen fast 80jaehrigen Denkapparat auf Trab zu halten.
Allerdings habe ich nur selten Druck eine auf dem Steckbrett erfolgreich entwickelte Schaltung in ein vorzeigbares Objekt umzuwandeln. Einziger Bestand hat die dabei entstandene Software. Projekte sind für mich nur wegen des Projektes selbst interessant.

Hier im Forum wurde von picass das Thema "nicht fehlerfreier" arithmetischer Routinen angesprochen. Hierzu verweise ich auf die von mir neu erstellte Rubrik "PIC-Assembler Arithmetik"

Nun noch kurz zu diesem Forum. Wie sieht dessen Zukunft aus? Die wirklich aktiven Mitglieder lassen sich an einer Hand abzaehlen. Selbstgespraeche zu fuehren ist wohl nicht die richtige Art an einem Forum teilzunehmen.
Ich schaue dennoch hoffnungsvoll in die Zukunft....

mfG Ottmar
Like Like x 1 View List

picass

Zitat von: Peter in 15.11.2024, 11:52:55 CETAuf den Rasperry Boards sind meistens Atmel Controller verbaut worden.
Da liest sich in der Wikipedia aber gänzlich anderes. Dort steht über die Raspberry Pi Foundation und ihren Einplatinen-Computer zu lesen, dass nur anfänglich im Jahre 2006 Atmel-CPUs zum Einsatz kamen, die allerdings nicht als leistungsstark genug empfunden und rasch ersetzt wurden.
Die heutzutage im Microchip-Universum angesiedelten Versionen von Atmel haben nichts mit den heutigen Raspberry PI Pico- Computern, über die ich schrieb,  zu tun. Siehe dazu auch die Ausführungen in der Wikipedia über die dort (Pi Pico) verwendete CPU namens "RP2040".
Grüße, picass



Peter

Die Raspberry Gesellschaft, hat einen Cortex M0+ Prozessor genommen und diesen um einige Peripherie erweitert.
Dieser dann unter ihren eigenen Namen  RP2040 herausgebracht. Und dieser Cortex Prozessor wird wie schon
geschrieben von Atmel hergestellt. Die ganzen Produkte um den Raspberry sind alle mit ATMEL Prozessoren
bestückt. Denn nur so wird gewährleistet das die ganzen Programme auf allen Raspberry Boards laufen.

picass

Es stimmt nicht, was du schreibst, Peter!

Die Cortex-M0+ CPUs werden – siehe Wikipedia – von dort aufgelisteten 9 verschiedenen Herstellern produziert!

EINER von den Neunen ist Microchip, welches bekanntlich vor etlichen Jahren die  Firma Atmel aufgekauft hat. Diese Atmel-Chips haben die AVR-Familie begründet. Das ist eine 8-Bit-Controllerfamilie, die aber mitnichten gleich zu setzen ist mit dem, was die Rasperry Pi Foundation erschaffen hat.

EINE andere von den Neunen ist diese Rasperry Pi Foundation, welche ihre Raspi-Einplatinen-Computer creierte und die sind – von dem genannten anfänglichen (2006) Atmel-Fehlgriff abgesehen mit ARM-CPUs bestückt.

Bei der Gelegenheit: in dem von mir eröffneten Fred schrieb ich von Anfang an nichts über 8-Bitter, sondern stellte gleich den Raspberry Pi Pico als meine neue Maschine vor. Und dieser Pi Pico ist definitiv von der Raspi Pi Poundation entwickelt worden und wird ausschließlich als Lizenzprodukt hergestellt von den am Bau beteiligten  Firmen Broadcom und ARM. Die sonstige Hardware zu diesem Produkt stammt von der Raspberry Pi Trading.
Grüße, picass

Similar topics (3)